mam ula stół jakOkreślanie kodek kompresji dla INSERT OVERWRITE SELECT w Ulu
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");
Aby wypełnić, robię coś takiego:
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";
To buduje nową partycję z jednostki produkty skompresowane przez deflate, ale idealnym rozwiązaniem byłoby przechodzenie przez kodek kompresji LZO.
Niestety nie jestem do końca pewien, jak to osiągnąć, ale zakładam, że jest to jedno z wielu ustawień środowiska wykonawczego lub może po prostu dodatkowa linia w CREATE TABLE DDL.