Doris多列分区的问题(v1.2.2)

文章探讨了一个数据库分区问题,其中分区基于日期和ID两个字段。按照分区定义,数据分配似乎首先基于日期,只有当日期不匹配时才会考虑ID。作者提到,这种分区方法可能导致ID列在某些情况下几乎不起作用,且存在一定的不合理性。经过测试和进一步学习,确认分区判断主要依赖第一列,即日期,如果满足条件则不再检查第二列,除非是区间上限的情况。

官网文档说如果Partition列有多个。分区列值会按照顺序依次比较,最终得到对应的分区。

date(DATE 类型) 和 id(INT 类型)

p201701_1000:    [(MIN_VALUE,  MIN_VALUE), ("2017-02-01", "1000"))
p201702_2000:    [("2017-02-01", "1000"),  ("2017-03-01", "2000"))
p201703_all:     [("2017-03-01", "2000"),  ("2017-04-01", MIN_VALUE))

* 数据  -->  分区
* 2017-01-01, 200     --> p201701_1000
* 2017-01-01, 2000    --> p201701_1000   
* 2017-02-01, 100     --> p201701_1000
* 2017-02-01, 2000    --> p201702_2000
* 2017-02-15, 5000    --> p201702_2000
* 2017-03-01, 2000    --> p201703_all
* 2017-03-10, 1       --> p201703_all
* 2017-04-01, 1000    --> 无法导入
* 2017-05-01, 1000    --> 无法导入

(2017-01-01, 2000)是在p201701_1000分区上。

那按照语句p201701_1000不是应该是date<=2017-02-01 and id<=1000吗?

2000比1000大,那这个分区列加上id(INT 类型) 就没意义啊,只用到date(DATE 类型)。加上id

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值