【发布时间】:2014-01-22 17:52:03
【问题描述】:
我正在使用 Impala JDBC 驱动程序(或者我猜它实际上是 Hive Server 2 JDBC 驱动程序)。我在另一个数据库中创建了一个视图——我们称之为“store55”。
假设我的视图定义如下:
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;
但是,我希望视图定义不包含数据库名称。
谢谢!
【问题讨论】:
-
你发现了吗?如果是,请发表答案
标签: impala