通过HbaseClient来写Phoenix表实现

由于数据存储在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博客

解决Hbase数据更新Phoenix对应索引表不更新问题_TracyGao01的博客-优快云博客

### HBasePhoenix集成及其使用 #### 集成概述 Apache Phoenix是一个开源的SQL层,它允许通过标准JDBC接口访问HBase数据Phoenix完全采用Java并作为HBase内嵌的JDBC驱动程序工作[^2]。 #### 安装配置过程 为了使Phoenix能够正常运行于HBase之上,需设置环境变量`HADOOP_CLASSPATH`指向必要的jar包路径以及配置文件位置。例如,在命令行环境中可以这样操作: ```bash [root@hadoop1 phoenix-4.9.0-HBase-1.1]# HADOOP_CLASSPATH=/opt/hbase-1.2.1/lib/hbase-protocol-1.2.1.jar:/etc/hbase/conf/ ``` 接着利用`hadoop jar`指令来启动批量加载工具CsvBulkLoadTool,指定目标格名称和输入CSV文件的位置: ```bash hadoop jar /opt/phoenix-4.8.2-HBase-1.2/phoenix-4.8.2-HBase-1.2-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool --table SP_ADDRESS --input /tmp/sp_address/* ``` 上述命令实现了将位于/tmp/sp_address目录下的所有文件中的数据导入到名为SP_ADDRESS的HBase中[^1]。 #### SQL查询支持 当涉及到实际的数据检索时,Phoenix提供了强大的功能——它可以接收SQL语句并将这些请求转化为底层HBase的操作序列;对于简单的查询而言响应时间通常处于毫秒级别,而对于涉及大量记录(比如上百万条)的情况则可能达到几秒钟的时间范围之内完成处理。 #### 数据分析能力增强 除了基本CRUD之外,借助于内置的支持特性如索引创建等功能模块,还可以进一步提升应用程序性能现。同时由于兼容JDBC协议的缘故,使得开发者能够在多种编程语言环境下轻松调用API实现复杂业务逻辑开发需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值