2012-03-14 10 views
3

私はHiveの新人です。私はさまざまなウェブサイトを検索しようとしましたが、誰も私に以下の明確な画像を与えることはできませんでした: A>外部キー:一般的なハイブの概念は、外部キーについて何も言及しません。次に、参照制約をどのように施行しますか? (私はJOIN ONの構文を認識しています。つまり、2つのテーブルにプライマリキーがあります:外部キーの関係?)外部キーをサポートしないという目的が高まっていますか? B>浮動等価比較:これに問題があるようです。たとえば、A = 3.5 =>「A> 3.49」と「A < 3.51」かどうかを確認する。これは正しい方法ですか?ハイブの外部キー?

HQLの実装に役立つ参照/資料はありますか?

任意の助けに感謝

おかげ -Shiree

答えて

5

ハイブは、スキーマオンリードとして実装されているので、データセットでハイブによって実行は固有の参照整合性がありません。代わりに、ソースシステムで整合性を実行する必要があります。さらに重要なのは、Hiveで実行されるすべてのクエリです。

+0

返信いただきありがとうございます。それは助けになった! – Shiree

0

通常、データウェアハウスのベストプラクティスは、オーバーヘッドを避けるために、参照整合性を強制するのを避けることです。したがって、必要が生じた場合は、クエリで明示的に適用することができます。

3

ハイブは現在、FK/PK制約をサポートしていません。

これは将来の場合があります。それはハイブCBOより良いカーディナリティの見積りを行うために多くの情報を提供し、より良いクエリがリライトし:

https://issues.apache.org/jira/browse/HIVE-13019

https://issues.apache.org/jira/browse/HIVE-6905

MoのKさんの回答に応じて、制約が必ずしもオーバーヘッドを意味します。たとえば、Oracleでは「RELY NOVALIDATE」制約があります.CBO(またはこの場合はHive CBO)は、その制約の最適化にその制約を使用しますが、その制約が真であるかどうかを実際に確認する必要はありません。

編集02/18/2016:私はhttps://issues.apache.org/jira/browse/HIVE-13076を作成しました。その機能に興味があれば、投票してください。

編集07/25/2016:https://issues.apache.org/jira/browse/HIVE-13076は06/2016の時点で解決され、ハイブ2.1に上陸する必要があります。私は公式の文書ではまだ更新が見られません。

0

プライマリ/外部キー制約のサポートは、Hive 2.1.0で利用できます。 2.1.0 release notesを参照してください。