2016-01-06 2 views
6

いずれかのハイブテーブルでDESCRIBE EXTENDEDコマンドを実行すると、出力の末尾付近にtotalSize値とrawDataSize値が表示されます。次のフィールドは何ですか: 'totalSize'と 'rawDataSize'は、ハイブのDESCRIBE EXTENDEDクエリ出力の意味ですか?

これらのフィールドは何を意味していますか?

例:

hive > DESCRIBE EXTENDED <TableName> 

Output Results: 

Table(tableName:TablenameXXXXX, dbName:XXxXXX, 
..........  ....................... 
numRows=116429472, totalSize=3835205544, rawDataSize=35040221600}) 

答えて

6

rawDataSizeは、元のデータセットのサイズであり、totalSizeは、かかるストレージの量です。これは、totalSizeがrawDataSizeよりも小さいデータを圧縮するため、ORCファイル形式に適用できます。

+0

totalSizeは、使用されたデータ部分のみで使用されたスペースを反映しているか、使用されたデータ部分とHDFSブロックの未使用部分を含んでいますか? –

+0

totalSizeはHDFSブロックサイズの倍数ですか? –

+0

ブロックサイズの倍数である必要はありません。 HDFSはファイルの最後のブロックにストレージを浪費しません。ファイルサイズが200 MBでブロックサイズが128 MBの場合、最初のブロックのサイズは128 MB、2番目のブロックのサイズは72 MBです –

1

データのサイズは二つの統計によって記述される:

  • totalSize - ディスク上のデータのおおよそのサイズ
  • rawDataSize - MapReduceの上のメモリ内のデータのおおよそのサイズ

ハイブがtotalSizeを使用。両方とも使用可能な場合、Hive on SparkはrawDataSizeを使用します。圧縮とシリアライゼーションのために、同じデータセットに対してtotalSizeとrawDataSizeの大きな違いが生じる可能性があります。