本文主要是介绍java操作phoenix查询指定table_schema中的数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原因:
1.phoenix映射hbase表的时候,如果hbase表是存放在某个命名空间下面的话,phoenix创建表的时候必须创建table_schema以后在取创建表,然后才能映射成功
解决方法:
1.如果用./sqlline.py 命令去启动的话,访问schema中的表数据的时候要先使用use <table_schema>命令先指定特定的schema,然后在去访问你想要访问的表
2.如果用java操作去访问的特定schema的话,有两步
a.开启配置文件
Properties props = new Properties(); props.setProperty(QueryServices.IS_NAMESPACE_MAPPING_ENABLED, Boolean.toString(true)); props.setProperty(QueryServices.IS_SYSTEM_TABLE_MAPPED_TO_NAMESPACE, Boolean.toString(true));
b.设置table_schema
PhoenixDriver phoenixDriver = new PhoenixDriver(); Connection connect = phoenixDriver.connect("jdbc:phoenix:centos-4,centos-5,centos-6:2181", props); connect.setSchema("\"bc\"");
注意:
1.获取连接的时候PhoenixDriver去获取,用sql中的DriverManager获取的话设置schema会出错
2.设置schema的时候注意加上双引号,不然的话phoenix会默认大写,导致找不到指定的表
这篇关于java操作phoenix查询指定table_schema中的数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!