

# 데이터 압축 사용
<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`