

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用資料壓縮
<a name="EMRforDynamoDB.CopyingData.Compression"></a>

在使用 Hive 在不同的資料來源之間複製資料時，您可以要求即時資料壓縮。Hive 提供了幾個壓縮解碼器。您可以在 Hive 工作階段期間選擇一個。在執行此操作時，會以指定格式來壓縮資料。

以下範例會使用 Lempel-Ziv-Oberhumer (LZO) 演算法壓縮資料。

```
 1. SET hive.exec.compress.output=true;
 2. SET io.seqfile.compression.type=BLOCK;
 3. SET mapred.output.compression.codec = com.hadoop.compression.lzo.LzopCodec;
 4. 
 5. CREATE EXTERNAL TABLE lzo_compression_table (line STRING)
 6. ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
 7. LOCATION 's3://bucketname/path/subpath/';
 8. 
 9. INSERT OVERWRITE TABLE lzo_compression_table SELECT *
10. FROM hiveTableName;
```

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`