1. 創建parquet table :
create table mytable(a int,b int) STORED AS PARQUET;
2. 創建帶壓縮的parquet table:
create table mytable(a int,b int) STORED AS PARQUET TBLPROPERTIES('parquet.compression'='SNAPPY');
3. 如果原來創建表的時候沒有指定壓縮,后續可以通過修改表屬性的方式添加壓縮:
ALTER TABLE mytable SET TBLPROPERTIES ('parquet.compression'='SNAPPY');
或者在寫入的時候
set parquet.compression=SNAPPY;
不過只會影響后續入庫的數據,原來的數據不會被壓縮,需要重跑原來的數據。
采用壓縮之后大概可以降低1/3的存儲大小。
-------------------------------------------------------- 合並 -------------------------------------------------------- -- set hive.execution.engine=tez; -- set tez.queue.name=dtb_matter; set hive.execution.engine=mr; set mapred.job.queue.name=dw; set hive.exec.parallel=true; set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; drop table tmp_dim.dim_ch; create table tmp_dim.dim_ch stored as parquet as select ... -- 臨時表 保留7天分區 -- alter table dim.dim_tb_name drop partition (inc_day = '$[time(yyyyMMdd,-7d)]');