Hive 使用dervied列进行动态分区

Hive 使用dervied列进行动态分区,hive,hiveql,Hive,Hiveql,我试图通过动态分区将数据插入配置单元表中,该表是 创建带有分区的外部表target\u tbl\u( booking\u idstring, codestring, txn\u日期时间戳, 记录器字符串, ) 分区依据(txn_日期,txn_小时整数) 价值观 txn_日期=20160216 txn_小时=12 创建带有分区的外部表stg\u target\u tbl\u( booking\u idstring, codestring, txn\u日期时间戳, 记录器字符串, ) 插入覆盖表目标

我试图通过动态分区将数据插入配置单元表中,该表是

创建带有分区的外部表
target\u tbl\u
(
booking\u id
string,
code
string,
txn\u日期
时间戳,
记录器
字符串, ) 分区依据(txn_日期,txn_小时整数)

价值观

txn_日期=20160216 txn_小时=12

创建带有分区的外部表
stg\u target\u tbl\u
(
booking\u id
string,
code
string,
txn\u日期
时间戳,
记录器
字符串, )

插入覆盖表目标分区(txn\u日期,小时(txn\u日期)) 从stg_target_tbl_和分区中选择预订id、代码、txn_日期、记录器

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

问候,,
拉凯什

我建议你从这样的事情开始

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
;

…并使其发挥作用;然后,您可以开始试验一些奇怪且不受支持的语法,看看哪些有效,哪些无效。

我建议您阅读几篇关于配置单元如何存储分区数据、外部配置单元表和托管配置单元表之间的区别、如何为分区表编写插入查询以及预期的日期文本格式的文章。但我想你无论如何也不会那么做的。谢谢你。事实上,我是在阅读了所有的文档之后才这么做的。最后一列是分区值,这是开源的,文档不是优先考虑的。每个版本都有它的错误,回归。。。因此,需要进行实验>从简单开始,然后精心设计。