2016-11-24 12 views
0

私は小さなファイル(2MB)を持っています。私はこのファイルの上に外部のハイブテーブルを作成しました(テキストファイルとして保存されています)。別のテーブル(ORCとして保存されている)を作成し、前のテーブルのデータをコピーしました。 ORCテーブルのデータサイズを確認したところ、2MB以上でした。
ORCは圧縮されたファイル形式なので、データサイズはそれ以下であるべきですか?異なるファイル形式のハイブのファイルサイズ

+0

誰でもこの質問に回答できますか –

答えて

1

ソースファイルが小さすぎるからです。 ORCは、内部インデックス、ヘッダー、フッター、ポストスクリプト、圧縮コーデックもいくつかの構造体などを追加する複雑な構造を持っています。 これらのすべてのサポート構造体は、データよりも多くの領域を消費します。このような小さなファイルの場合、ファイルがメモリに収まるので、列の最小値/最大値を格納する必要はありません。また、ブラムフィルタなどは必要ありません。この場合に最適なストレージは、圧縮されていないテキストファイルです。また、ソースファイルをgzipしてサイズを確認することもできます。小さすぎるgzipファイルは、圧縮されていないファイルよりも大きくなることがあります。ファイルが大きければ大きいほど、orcの圧縮と使用のメリットが大きくなります。

1

Hive 0.14では、ユーザーはテーブルまたはパーティションでCONCATENATEコマンドを発行することにより、小さなORCファイルの効率的なマージを要求できます。ファイルは再シリアライズせずにストライプレベルでマージされます。

ALTER TABLE istari [PARTITION partition_spec] CONCATENATE;

関連する問題