Kudu 表中具有两列的按范围分区

问题描述

我正在尝试使用 2 个变量(年、月)创建一个按哈希分区和按范围分区的 kudu 表,我的问题是我想进行两年一次的范围分区,而不在表中添加更多列。

链接中:

https://kudu.apache.org/docs/kudu_impala_integration.html

指定平板电脑分区

部分

他们建议按一列进行范围分区,但我们可以阅读以下内容

If you have multiple primary key columns,you can specify partition bounds using tuple Syntax: ('va',1),('ab',2). The expression must be valid JSON.

然后,我尝试了下一个查询

CREATE TABLE pruebas.partwithrang ( 
   year int COMMENT 'año',month int COMMENT 'mes',day int COMMENT 'dia',id string COMMENT 'id',name string COMMENT 'nombre',PRIMARY KEY (year,month,day,id))       
   PARTITION BY HASH (id) PARTITIONS 3,RANGE(year,month) ( 
   PARTITION (2020,1) <= VALUES <= (2020,6),PARTITION (2020,7) <= VALUES <= (2020,12),PARTITION (2021,1) <= VALUES <= (2021,7) <= VALUES <= (2021,12) 
) 
COMMENT "Probando particion por rango" 
STORED AS KUDU tblproperties ('kudu.master_addresses'='localhost:7051','kudu.num_tablet_replicas'='1')

但我收到下一个错误

错误:AnalysisException:第 10 行中的语法错误
PARTITION (2020,7),
' ^
遇到:逗号
预期:AND、BETWEEN、DIV、ILIKE、IN、IREGEXP、IS、LIKE、NOT、OR、REGEXP、RLIKE 原因:异常:语法错误

我没有找到关于这种范围分区的任何信息。你能帮我吗?

我也回顾了这个链接https://docs.cloudera.com/documentation/enterprise/5-12-x/topics/impala_create_table.html

kudu_partition_clause

部分

我不确定,但我知道只有这两种方法可以定义范围分区:

PARTITION constant_expression range_comparison_operator VALUES range_comparison_operator constant_expression | PARTITION VALUE = constant_expression_or_tuple

那么,我建议的分区方式有可能吗?

谢谢!!!

解决方法

问题是impala https://issues.apache.org/jira/browse/IMPALA-6929 中存在错误,您无法使用“

解决方法可能是使用“=”而不是“

在 CDH 6.x 中,问题是修复它 (Apache Impala 3.0.0)