hadoop - 使用常见名称的现有Hbase表创建Phoenix TableView

标签 hadoop hbase phoenix

我已经克隆了一个表,并根据https://phoenix.apache.org/faq.html#How_I_map_Phoenix_table_to_an_existing_HBase_table尝试为其创建Phoenix View 。

假设我下面有两个HBase表。

hbase(main):008:0> describe 'USERINFO'
Table USERINFO is ENABLED                                                                                                                                                                                                           
USERINFO, {TABLE_ATTRIBUTES => {coprocessor$1 => '|org.apache.phoenix.coprocessor.ScanRegionObserver|805306366|', coprocessor$2 => '|org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver|805306366|', coprocessor$3 => '
|org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver|805306366|', coprocessor$4 => '|org.apache.phoenix.coprocessor.ServerCachingEndpointImpl|805306366|', coprocessor$5 => '|org.apache.phoenix.hbase.index.Indexer|80530
6366|index.builder=org.apache.phoenix.index.PhoenixIndexBuilder,org.apache.hadoop.hbase.index.codec.class=org.apache.phoenix.index.PhoenixIndexCodec', coprocessor$6 => '|org.apache.hadoop.hbase.regionserver.LocalIndexSplitter|80
5306366|'}                                                                                                                                                                                                                          
COLUMN FAMILIES DESCRIPTION                                                                                                                                                                                                         
{NAME => '0', DATA_BLOCK_ENCODING => 'FAST_DIFF', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'SNAPPY', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '6553
6', IN_MEMORY => 'false', BLOCKCACHE => 'true'}

hbase(main):006:0> describe 'USERPREFERENCE'
Table USERPREFERENCE is ENABLED                                                                                                                                                                                                     
USERPREFERENCE, {TABLE_ATTRIBUTES => {coprocessor$1 => '|org.apache.phoenix.coprocessor.ScanRegionObserver|805306366|', coprocessor$2 => '|org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver|805306366|', coprocessor$
3 => '|org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver|805306366|', coprocessor$4 => '|org.apache.phoenix.coprocessor.ServerCachingEndpointImpl|805306366|', coprocessor$5 => '|org.apache.phoenix.hbase.index.Indexer
|805306366|index.builder=org.apache.phoenix.index.PhoenixIndexBuilder,org.apache.hadoop.hbase.index.codec.class=org.apache.phoenix.index.PhoenixIndexCodec', coprocessor$6 => '|org.apache.hadoop.hbase.regionserver.LocalIndexSplit
ter|805306366|'}                                                                                                                                                                                                                    
COLUMN FAMILIES DESCRIPTION                                                                                                                                                                                                         
{NAME => '0', DATA_BLOCK_ENCODING => 'FAST_DIFF', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION => 'SNAPPY', VERSIONS => '1', TTL => 'FOREVER', MIN_VERSIONS => '0', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '6553
6', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                                                                                                                     

我会运行以下命令在Phoenix中创建表 View 吗?
CREATE VIEW USERINFO ( pk VARCHAR PRIMARY KEY, "0".team VARCHAR, "0".firstname, "0".lastname )
CREATE VIEW USERPREFERENCE ( pk VARCHAR PRIMARY KEY, "0".firstname VARCHAR, "0".lastname )

这似乎不正确。如何根据这种情况创建表格 View ?

最佳答案

因此,我相信您缺少的是您需要指定每列将是哪种变量。因此,从技术上讲,您需要提及变量名将是的列的类型,依此类推。

我尝试并测试了此代码。首先,我启动了我的hbase-shell(不用担心DCDR,它只是我的命名空间,我们的DBA几乎已经锁定了它):

create 'DCDR:USERINFOV2', {NAME => '0', VERSIONS => 5}

create 'DCDR:USERPREFERENCEV2', {NAME => '0', VERSIONS => 5}

然后我启动我的凤凰壳:
CREATE VIEW "DCDR:USERINFOV2" ( pk VARCHAR PRIMARY KEY, "0".team VARCHAR, "0".firstname VARCHAR, "0".lastname VARCHAR);

CREATE VIEW "DCDR:USERPREFERENCEV2" ( pk VARCHAR PRIMARY KEY, "0".firstname VARCHAR, "0".lastname VARCHAR);

这给了我看法。希望这对您有用。让我知道是否可以。

关于hadoop - 使用常见名称的现有Hbase表创建Phoenix TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869400/

相关文章:

java - 比较hbase中的2个表,并使用TableMapReduceUtil将摘要写入第三个表

hadoop - "Encountered: <EOF> after : "“”是什么意思使用 pig

hadoop - hadoop中多个小文件存放在什么地方最好

java - Phoenix连接运行一段时间后抛出错误消息 “Failed to find any Kerberos tgt”

hadoop - 是否可以保存 Hive UDTF 生成的值?

hadoop - 为什么 Hadoop 需要那么大的 RAM?

memory-management - Hbase 响应大小

hadoop - 从Map Reduce填充Neo4j中的数据

csv - Phoenix 通过上传批量csv文件的命令不明白吗?

hadoop - Phoenix JDBC连接时间太长