TBPROPERTIES 是 Impala(Hive) 中关键字,用于在创建表时来自定义写参数。

    下面我们创建一个内部表:

    1. CREATE TABLE IF NOT EXISTS test.studets(
    2. name STRING,
    3. age INT,
    4. gender STRING,
    5. birth STRING
    6. )
    7. ROW FORMAT DELIMITED
    8. FIELDS TERMINATED BY ','
    9. STORED AS textfile

    加上 TBPROPERTIES 自定义参数后,可以将其变成外部表:

    1. CREATE TABLE IF NOT EXISTS test.studets(
    2. name STRING,
    3. age INT,
    4. gender STRING,
    5. birth STRING
    6. )
    7. ROW FORMAT DELIMITED
    8. FIELDS TERMINATED BY ','
    9. STORED AS textfile
    10. TBLPROPERTIES("EXTERNAL"="TRUE")

    常用的其他参数还有:

    • auto.purge:当设置为 ture 时,删除或者覆盖的数据会不经过回收站,直接被删除。配置了此属性会影响到这些操作: Drop Table, Drop Partitions, Truncate Table, Insert Overwrite
    • immutable:当表的这个属性为 true 时,若表中无数据时可以 insert 数据,但是当表已经有数据时,insert 操作会失败。不可变表用来防止意外更新,避免因脚本错误导致的多次更新,而没有报错
    • orc.compress: 用来指定 orc 存储的压缩方式