我正在使用Impala JDBC驱动程序(或者我猜它实际上是Hive Server 2 JDBC驱动程序)。我在另一个数据库中创建了一个视图 - 我们称之为“store55”。使用Impala JDBC驱动程序指定非默认数据库
比方说,我的看法如下定义:
CREATE VIEW good_customers AS
SELECT * from customers WHERE good = true;
当我尝试查询使用JDBC如下这样的观点:
SELECT * FROM store55.good_customers LIMIT 10
我得到一个错误,如:
java.sql.SQLException: AnalysisException: Table does not exist: default.customers
理想情况下,我想在JDBC URL中指定数据库名称或作为参数,但是当我尝试使用这个JDBC URL,我仍然得到了同样的错误:
jdbc:hive2://<host>:<port>/store55;auth=noSasl
能源部Hive2 JDBC驱动程序忽略该URL的数据库部分,并承担所有查询都对默认数据库执行?
我能够有查询返回的唯一方法就是改变视图定义本身,包括数据库名:
CREATE VIEW good_customers AS
SELECT * from store55.customers WHERE good = true;
不过,我想保持视图定义免费的数据库名称。
谢谢!
你发现了吗?如果是,请发布答案 – Tony