问题描述
我正在尝试使用 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)