У меня есть стол улей, как
CREATE TABLE beacons
(
foo string,
bar string,
foonotbar string
)
COMMENT "Digest of daily beacons, by day"
PARTITIONED BY ( day string COMMENt "In YYYY-MM-DD format" );
Чтобы заполнить, я делаю что-то вроде:
SET hive.exec.compress.output=True;
SET io.seqfile.compression.type=BLOCK;
INSERT OVERWRITE TABLE beacons PARTITION ( day = "2011-01-26" ) SELECT
someFunc(query, "foo") as foo,
someFunc(query, "bar") as bar,
otherFunc(query, "foo||bar") as foonotbar
)
FROM raw_logs
WHERE day = "2011-01-26";
Это создает новый раздел с отдельными продуктами, сжатыми с помощью deflate, но идеальным вариантом здесь будет вместо этого использовать кодек сжатия LZO.
К сожалению, я не совсем уверен, как это сделать, но я предполагаю, что это одна из многих настроек времени выполнения или, возможно, просто дополнительная строка в CREATE TABLE DDL.