データ圧縮を使用する
Hive を使用して異なるデータソース間でデータをコピーする際には、オンザフライのデータ圧縮を要求できます。Hive では、いくつかの圧縮コーデックが利用可能です。その中の 1 つを 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 TABLElzo_compression_table(line STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' LOCATION 's3://bucketname/path/subpath/'; INSERT OVERWRITE TABLElzo_compression_tableSELECT * 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