9

私はハイブを学んでいて、歪んだテーブルに出くわしました。それを理解するのを手伝ってください。

Hive の歪んだテーブルとは何ですか?

歪んだテーブルを作成するにはどうすればよいですか?

パフォーマンスにどのように影響しますか?

4

2 に答える 2

17

Hive の歪んだテーブルとは何ですか?

歪んだテーブルは特殊なタイプのテーブルで、非常に頻繁に表示される (大きな歪曲) 値が個別のファイルに分割され、残りの値は別のファイルに移動します。

歪んだテーブルを作成するにはどうすればよいですか?

create table <T> (schema) skewed by (keys) on ('value1', 'value2') [STORED as DIRECTORIES];

例 :

create table T (c1 string, c2 string) skewed by (c1) on ('x1')

パフォーマンスにどのように影響しますか?

歪んだ値を指定することにより、Hive はそれらを自動的に個別のファイルに分割し、クエリ中にこの事実を考慮して、可能であればファイル全体をスキップ (または含める) してパフォーマンスを向上させます。

編集 :

x1 は、実際には列 c1 が歪んでいる値です。複数の列に対して複数のそのような値を持つことができます。例えば、

create table T (c1 string, c2 string) skewed by (c1) on ('x1', 'x2', 'x3')

このようなセットアップの利点は、他の値よりも頻繁に表示される値が個別のファイル (または STORED AS DIRECTORIES 句を使用している場合は個別のディレクトリ) に分割されることです。この情報は、クエリの実行中に実行エンジンによって使用され、処理がより効率的になります。

于 2013-09-12T18:14:46.713 に答える