2017-05-07 5 views
0

を誤動作ビュー定義は、(細かい実行ビューが作成されます。)されHadoopのビューがここ

CREATE OR REPLACE VIEW my_view 
AS WITH Q1 
AS (SELECT MAX(LOAD_DT) AS LOAD_DT FROM load_table WHERE UCASE(TBL_NM) = 'FACT_TABLE') 
SELECT F.COLUMN1 
, F.COLUMN2 
FROM Q1, FACT_TABLE F 
WHERE Q1.LOAD_DT = F.TRAN_DT 
; 

ただし、次のエラーメッセージ取得

SELECT * from my_view; 

を実行すると: に失敗しました:SemanticExceptionラインをN:Mテーブルが見つかりません。ビューの定義で「Q1」が表示されています。my_view ....など

ハイブはQ1(CTEである)を物理テーブルとして扱うように見えます。これを回避する方法は?

たちは私たちの環境で同様の問題に直面している、 ナタリア

答えて

0

をありがとうございました。あなたの質問に答えるために、それはハイブのバグです。幸いにも、私たちはそれを動作させるための回避策を持っています。インパラとハイブを使用していて、どちらも同じメタストアを使用している場合。 Impalaでビューを作成すると、ハイブとインパラの両方で機能します。

理由: ハイブは、問題を引き起こしている作成されたCTE参照にデータベース名を追加しています。

ありがとう、 Neo

関連する問題