Phoenix-选择HBase表-0行

问题描述

我想使用Phoenix服务从hbase中选择行。我收到以下错误错误错误1036(42J04):如果父级的最后一个PK列的长度可变,则无法修改VIEW的主键。 columnName = tbl1.pk(状态= 42J04,代码= 1036)

我使用了以下来源的参考: https://godbolt.org/ https://phoenix.apache.org/faq.html#How_I_map_Phoenix_table_to_an_existing_HBase_table

我做了什么:

hbase> describe 'tbl1'

tbl1,{TABLE_ATTRIBUTES => {coprocessor $ 1 =>'| org.apache.phoenix.coprocessor.ScanRegionObserver | 805306366 |',cop rocessor $ 2 =>'| org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver | 805306366 |',coprocessor $ 3 =>'| org.apac he.phoenix.coprocessor.GroupedAggregateRegionObserver | 805306366 |',协处理器$ 4 =>'| org.apache.phoenix.coprocessor.Ser verCachingEndpointImpl | 805306366 |'}
列系列说明
{NAME =>'C',VERSIONS =>'1',evict_BLOCKS_ON_CLOSE =>'false',NEW_VERSION_BEHAVIOR =>'false',KEEP_DELETED_CELLS => 'FALSE',CACHE_DATA_ON_WRITE =>'false',DATA_BLOCK_ENCODING =>'NONE',TTL =>'8035200 SECONDS(93 DAYS)',MIN_VERSIONS =>'0',REPLICATION_ScopE =>'0',BLOOMFILTER =>'ROW',CACHE_INDEX_ON_WRITE =>'false',IN_MEMORY =>'false',CACHE_BL OOMS_ON_WRITE =>'false',PREFETCH_BLOCKS_ON_OPEN =>'false',COMPRESSION =>'GZ',BLOCKCACHE =>'true',BLOCKSIZE =>'6 5536'}

hbase> scan 'tbl1',{LIMIT=>2}

00123 | 9223370438236964192 | 376f38c6-e92a-11ea-9c9b-0242ac130002列= C:t,时间戳= 1598617869297,值= \ x00 \ x00

00337 | 9223370438236964198 | 376e38c6-e92a-11ea-9c9b-0242ac130002列= C:s,时间戳= 1598617869297,值= 123 ctx_userid =“ abc” ctx_id =“ 12345”

phoenix>create table "tbl1" ( "pk" VARCHAR PRIMARY KEY,"C"."s" VARCHAR,"C"."t" VARCHAR);
phoenix>create view "CanonicalId_view_s" ( "pk" VARCHAR PRIMARY KEY,"C"."t" VARCHAR) as select * from "CanonicalId";

我收到以下错误

java.sql.sqlException: ERROR 1036 (42J04): Cannot modify the primary key of a VIEW if last PK column of parent is variable length. columnName=tbl1.pk
        at org.apache.phoenix.exception.sqlExceptionCode$Factory$1.newException(sqlExceptionCode.java:497)
        at org.apache.phoenix.exception.sqlExceptionInfo.buildException(sqlExceptionInfo.java:150)
        at org.apache.phoenix.schema.MetaDataClient.throwIfLastPKOfParentIsFixedLength(MetaDataClient.java:4037)
        at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:2410)
        at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:1114)
        at org.apache.phoenix.compile.CreateTableCompiler$1.execute(CreateTableCompiler.java:198)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:408)
        at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:390)
        at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
        at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1825)
        at sqlline.Commands.execute(Commands.java:822)
        at sqlline.Commands.sql(Commands.java:732)
        at sqlline.sqlLine.dispatch(sqlLine.java:813)
        at sqlline.sqlLine.begin(sqlLine.java:686)
        at sqlline.sqlLine.start(sqlLine.java:398)
        at sqlline.sqlLine.main(sqlLine.java:291)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)