Usando a compactação de dados
Ao usar o Hive para copiar dados entre diferentes fontes de dados, você pode solicitar a compactação de dados durante o processo. O Hive fornece vários codecs de compactação. É possível escolher um durante a sessão do Hive. Quando você faz isso, os dados são compactados no formato especificado.
O exemplo a seguir compacta os dados usando o algoritmo Lempel-Ziv-Oberhumer (LZO).
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
;
O arquivo resultante no Amazon S3 terá um nome gerado pelo sistema com .lzo
no final (por exemplo, 8d436957-57ba-4af7-840c-96c2fc7bb6f5-000000.lzo
).
Os codecs de compactação disponíveis são:
-
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