我正在使用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