私はパーティションを持っているし、ハイブテーブルをクラスタ化(ハイブ1.2を使用して):ハイブバケット処理で予想以上に多くのファイルが生成されているのはなぜですか?
hive> describe formatted myClusteredTable;
# col_name data_type
utc_timestamp timestamp
...
clusteredId bigint
# Partition Information
# col_name data_type
datePartition string
# Detailed Table Information
Num Buckets: 100
Bucket Columns: [clusteredId]
Sort Columns: [Order(col:clusteredId, order:1), Order(col:utc_timestamp, order:1)]
Storage Desc Params:
serialization.format 1
そして、私はこのようにそれにデータを挿入します。
SET hive.enforce.bucketing=true;
SET hive.enforce.sorting=true;
INSERT OVERWRITE TABLE myClusteredTable PARTITION (datePartition)
SELECT ...
utcTimestamp,
clusteredId,
datePartition
FROM (
... subquery ...
) subquery
SORT BY datePartition, clusteredId, utcTimestamp;
私はそれは、パーティションごとに100個のファイルを生成することを期待しています。 は、その代わりに、より多く生成されています
$ find /path/to/partition/dt=2017-01-01 -type f | wc -l
1425
$ find /path/to/partition/dt=2017-01-02 -type f | wc -l
1419
$ find /path/to/partition/dt=2017-01-03 -type f | wc -l
1427
は、私はこれが起こって、どのように私はそれを避けることができるかもしれない理由を理解するのに役立ちます。
テーブルの形式は何ですか? – hlagos
ORC、スナッピング圧縮 – zemekeneng