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