gpt4 book ai didi

java - Phoenix 正在改变 HBase 表的元信息

转载 作者:可可西里 更新时间:2023-11-01 14:47:10 25 4
gpt4 key购买 nike

我正在尝试使用 Apache Phoenix在 HBase 表上运行 SQL 查询。基于official documetation ,需要使用 SQL 查询为现有表创建模式:

CREATE TABLE TABLE_NAME (....)

我试图通过 phoenix API 直接连接到现有表(使用 HBase API 创建)来避免这种情况,但我遇到了异常。问题是当 Phoenix 执行这个查询时,它会在表上创建很多东西。例如,在 hbase 仪表板的 tables 部分,我可以看到 phoenix 添加到我的表中的以下元数据:

'QUOTES', {METHOD => 'table_att', coprocessor$1 => '|org.apache.phoenix.coprocessor.ScanRegionObserver|1|', coprocessor$2 => '|org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver|1|', coprocessor$3 => '|org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver|1|', coprocessor$4 => '|org.apache.phoenix.coprocessor.ServerCachingEndpointImpl|1|', coprocessor$5 => '|org.apache.phoenix.hbase.index.Indexer|1073741823|index.builder=org.apache.phoenix.index.PhoenixIndexBuilder,org.apache.hadoop.hbase.index.codec.class=org.apache.phoenix.index.PhoenixIndexCodec'}, {NAME => '0', DATA_BLOCK_ENCODING => 'FAST_DIFF', KEEP_DELETED_CELLS => 'true'}

听起来 pheonix 正在更改表的元信息(它创建了一些协处理器和索引构建器),这是否会造成生产问题(干扰使用 HBase API 的代码)?如果是,如何避免?

最佳答案

是的,当您执行 CREATE TABLECREATE VIEW 时,Apache Phoenix 会将协处理器添加到底层 HBase 表的元数据中,如记录 here .这些不会干扰使用 HBase API 的代码,因为协处理器完成的任何处理只会在调用 API 的客户端设置特定于 Phoenix 的属性时触发。

对于 Phoenix VIEW,仅进行这些元数据更改。对于 Phoenix TABLE,除了这些元数据更改之外,还会向表的每一行添加一个空的 KeyValue。这样做是为了提高性能,并防止在所有列都设置为空时该行“消失”。更多详情 here .

关于java - Phoenix 正在改变 HBase 表的元信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25650815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com