由于数据存储在Hbase上,并且上层使用了Phoenix来读写数据。并且由于数据的列字段不固定,并且可能由于Hbase表列和Phoenix的表列字段不一致,使用Phoenix写入的数据会导致写出报错的问题出现。所以这里直接使用HbaseClient写入到Hbase表中,再使用Phoenix查询就能查询到数据。
CREATE TABLE IF NOT EXISTS MIS_TEST.TEST_INSERTINTO2 (
"rowkey" VARCHAR PRIMARY KEY,
"info"."ID" VARCHAR,
"info"."NAME" VARCHAR,
"info"."DATA_DATE" VARCHAR
) COLUMN_ENCODED_BYTES=0;
建表语句如上,其中 COLUMN_ENCODED_BYTES = 0 是表示禁用Phoenix表的列映射,并且不加的话,会导致Phoenix写入的和HbaseClient写入的,字段的编码不一致,导致Phoenix读取的时候读取不到数据。
参考文章:
Storage Formats | Apache Phoenix
Phoenix 关联映射 Hbase表 获取不到数据,upsert hbase 列名为16进制字符_wx5ae1cd41f3d21的技术博客_51CTO博客文章来源:https://www.toymoban.com/news/detail-698012.html
解决Hbase数据更新Phoenix对应索引表不更新问题_TracyGao01的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-698012.html
到了这里,关于通过HbaseClient来写Phoenix表实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!