HIVE Temporary Table&Constraint
这两介绍下hive的临时表和表约束。
Temporary Table
创建的临时表仅仅在当前会话是可见的,数据将会被存储在用户的暂存目录中,并在会话结束时被删除。如果创建临时表的名字与当前数据库下的一个非临时表相同,则在这个会话中使用这个表名字时将会使用的临时表,而不是非临时表,用户在这个会话内将不能使用原表,除非删除或者重命名临时表。
临时表有如下限制:
- 不支持分区字段
- 不支持创建索引
在Hive1.1.0之后临时表可以存储到memory,ssd或者default中,可以通过配置 hive.exec.temporary.table.storage来实现,存储策略可以参考文献3。
一般使用CREATE TEMPORARY TABLE ….来创建临时表。临时表也支持多种创建操作和insert操作。
CREATE TEMPORARY TABLE ….,CTAS, CTL, INSERT INTO。
Constraints
Hive包含对未经验证的主键和外键约束的支持,一些sql工具在存在约束时会生成更加高效的查询,由于这些限制条件未经验证,上游系统在加载到Hive之前需要确保数据的完整性。
常用的PK( PRIMARY KEY)和FK(FOREIGN KEY)约束使用如下:
CREATE TABLE product
(
product_id INTEGER,
product_vendor_id INTEGER,