TBPROPERTIES
是 Impala(Hive) 中关键字,用于在创建表时来自定义写参数。
下面我们创建一个内部表:
CREATE TABLE IF NOT EXISTS test.studets(
name STRING,
age INT,
gender STRING,
birth STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS textfile
加上 TBPROPERTIES
自定义参数后,可以将其变成外部表:
CREATE TABLE IF NOT EXISTS test.studets(
name STRING,
age INT,
gender STRING,
birth STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS textfile
TBLPROPERTIES("EXTERNAL"="TRUE")
常用的其他参数还有:
- auto.purge:当设置为
ture
时,删除或者覆盖的数据会不经过回收站,直接被删除。配置了此属性会影响到这些操作:Drop Table
,Drop Partitions
,Truncate Table
,Insert Overwrite
- immutable:当表的这个属性为
true
时,若表中无数据时可以insert
数据,但是当表已经有数据时,insert 操作会失败。不可变表用来防止意外更新,避免因脚本错误导致的多次更新,而没有报错 - orc.compress: 用来指定 orc 存储的压缩方式