问题
在自主查询的功能(可在多个数据源中执行sql)中,会将查询结果中的列名及数据都返回给前端。使用hive jdbc从hive数据源查询数据时,得到的ResultSet中列名带有表名前缀。
而pg数据源就没有这样的现象,为了统一风格,产品希望去掉列名中包含的表名前缀
解决方式
- 程序中处理,截取只保留列名中”.“后面的内容
- 给hive设置参数
set hive.resultset.use.unique.column.names=false
而设置参数的方式也有很多
① 在hive-site.xml
文件中设置(没有验证过该方式,或许只在hive cli中生效)
② 使用jdbc执行该设置(已验证)<property> <name>hive.resultset.use.unique.column.names</name> <value>false</value> </property>
使用connection执行用户的sql前,先使用该connection执行set hive.resultset.use.unique.column.names=false
,之后再执行用户sql