使用派生列进行动态分区

Dynamic partitioning with dervied column

我正在尝试通过动态分区将数据插入 Hive table table is

创建外部 TABLE target_tbl_wth_partition( booking_id 字符串, code 字符串, txn_date 时间戳, logger 字符串, ) 按 (txn_date date,txn_hour int)

划分

txn_date=20160216 txn_hour=12

创建外部 TABLE stg_target_tbl_wth_partition( booking_id 字符串, code 字符串, txn_date 时间戳, logger 字符串, )

插入覆盖 table target_tbl_wth_partition 分区(txn_date,小时(txn_date)) select booking_id,代码,txn_date,来自 stg_target_tbl_wth_partition 的记录器;

我无法在动态分区中插入派生列。任何有关如何处理此类案件的帮助都会有所帮助。

此致, 拉凯什

我建议你从类似的事情开始...

CREATE TABLE blahblah (...)
PARTITIONED BY (aaa STRING, bbb STRING)
;
SET hive.exec.dynamic.partition = true
;
SET hive.exec.dynamic.partition.mode = nonstrict
;
INSERT INTO TABLE blahblah PARTITION (aaa, bbb)
SELECT ...,
  SUBSTRING(aaabbb,1,5) as aaa,
  SUBSTRING(aaabbb,7,2) as bbb
FROM sthg
;

...让它发挥作用;然后你可以开始尝试一些奇怪的和不受支持的语法,看看哪些有效,哪些无效。