我有一个基于 avro 模式的配置单元表。该表是使用以下查询创建的
CREATE EXTERNAL TABLE datatbl
PARTITIONED BY (date String, int time)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
WITH SERDEPROPERTIES (
'avro.schema.url'='path to schema file on HDFS')
STORED as INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION '<path on hdfs>'
到目前为止,我们一直通过设置以下属性将数据插入到表中
hive> set hive.exec.compress.output=true;
hive> set avro.output.codec=snappy;
但是,如果有人忘记设置上述两个属性,则无法实现压缩。我想知道是否有一种方法可以对表本身强制压缩,这样即使没有设置上述两个属性,数据也总是被压缩?