我想将我们的摄取时分区表聚集在一起,而不必更改用于更新它们的ETL脚本。我们所有的表都在伪字段_PARTITIONTIME上分区,现在当我尝试使用DML对表进行群集时,出现以下错误:
无效的字段名称“ _PARTITIONTIME”。字段名称不允许以(不区分大小写)前缀_PARTITION, TABLE , FILE 和_ROW_TIMESTAMP
开头
这是DML脚本的样子:
CREATE TABLE `table_target`
PARTITION BY DATE(_PARTITIONTIME)
CLUSTER BY a, b, c
AS
SELECT
*, _PARTITIONTIME
FROM
`table_source`
我应该怎么做?有没有办法与分区字段保持相同的伪字段,我应该重新处理分区字段,还是在这里丢失某些内容?
答案 0 :(得分:0)
无法根据查询结果创建提取时间分区表。而是使用CREATE TABLE DDL语句创建表,然后使用INSERT DML语句在表中插入数据。
对于您而言,您需要先使用CREATE TABLE
和target_table
创建CLUSTER BY
,然后再迁移数据。