

# データ圧縮を使用する
<a name="EMRforDynamoDB.CopyingData.Compression"></a>

Hive を使用して異なるデータソース間でデータをコピーする際には、オンザフライのデータ圧縮を要求できます。Hive では、いくつかの圧縮コーデックが利用可能です。その中の 1 つを Hive セッション中に選択します。これにより、データは指定した形式で圧縮されます。

次の例では、LZO(Lempel-Ziv-Oberhumer)アルゴリズムを使用してデータを圧縮します。

```
 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`