本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用資料壓縮
當您使用 Hive 在不同資料來源之間複製資料時,您可以請求 on-the-fly資料壓縮。Hive 提供了幾個壓縮解碼器。您可以在 Hive 工作階段期間選擇一個。在執行此操作時,會以指定格式來壓縮資料。
下列範例使用 (LZO) Lempel-Ziv-Oberhumer演算法壓縮資料。
SET hive.exec.compress.output=true; SET io.seqfile.compression.type=BLOCK; SET mapred.output.compression.codec = com.hadoop.compression.lzo.LzopCodec; CREATE EXTERNAL TABLE
lzo_compression_table
(line STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' LOCATION 's3://bucketname/path/subpath/
'; INSERT OVERWRITE TABLElzo_compression_table
SELECT * FROMhiveTableName
;
Amazon S3 中產生的檔案會具有系統產生的名稱,且以 .lzo
結尾 (例如,8d436957-57ba-4af7-840c-96c2fc7bb6f5-000000.lzo
)。
可用的壓縮轉碼器為:
-
org.apache.hadoop.io.compress.GzipCodec
-
org.apache.hadoop.io.compress.DefaultCodec
-
com.hadoop.compression.lzo.LzoCodec
-
com.hadoop.compression.lzo.LzopCodec
-
org.apache.hadoop.io.compress.BZip2Codec
-
org.apache.hadoop.io.compress.SnappyCodec