1

ハイブのパーティション列として col4 を持つ 4 列のテーブルがあります。これは、5 時間ごとに最大 900 万行が挿入される巨大なテーブルです。このテーブルは他のレポートにも使用されているため、デザインを変更できないという制限があります。

CREATE EXTERNAL TABLE testdb.table1(col1 string, col2 int, col3 int)
PARTITIONED BY (col4 string)
ROW FORMAT DELIMITED
STORED AS TEXTFILE
LOCATION '/path/to/input/';

ユース ケースの 1 つとして、col4 の各値のデータ ポイントを特定するルックアップ テーブルを作成しようとしています。

select col1, col4 from testdb.table1 group by col1, col4;

質問:

  1. パーティション化された列で Group By を実行すると、パフォーマンスが低下しますか? この場合は Col4 です。

  2. col4 で Group By を実行しても、完全なテーブル スキャンになりますか?

  3. 最小限のフル テーブル スキャンでパーティション分割された列のルックアップを作成する最良の方法は何ですか?

この投稿に出くわしましたが、Impala 用でした。Impala と Hive が同じ MR エンジンを内部でデータ処理に使用しているかどうかはわかりません。したがって、これを新しい質問として投稿してください。

4

1 に答える 1