Doris如何实现部分列更新?

提问者:帅平 问题分类:面试刷题
Doris如何实现部分列更新?
2 个回答
你我这辈子最的依靠
你我这辈子最的依靠
Doris的部分列更新通过Unique Key模型和Aggregate Key模型实现。
1、Unique Key模型:
用户通过正常的导入方式将一部分列的数据写入Doris的Memtable,此时Memtable中并没有整行数据。
在Memtable下刷的时候,会查找历史数据,用历史数据补齐一整行,并写入数据文件中,同时将历史数据文件中相同key的数据行标记删除。
当出现并发导入时,Doris会利用MVCC机制来保证数据的正确性。如果两批数据导入都更新了一个相同key的不同列,则其中系统版本较高的导入任务会在版本较低的导入任务成功后,使用版本较低的导入任务写入的相同key的数据行重新进行补齐。
2、Aggregate Key模型:
将聚合函数设置为 REPLACE_IF_NOT_NULL 即可实现部分列更新的支持。
发布于:2个月前 (02-08) IP属地:四川省
忆雪
忆雪
注意事项:
1、2.0.0版本仅在Unique Key的Merge-on-Write实现中支持了部分列更新能力
2、2.0.2版本支持使用INSERT INTO进行部分列更新
3、2.1.0版本将支持更为灵活的列更新,见下文“使用限制”部分的说明
发布于:2个月前 (02-08) IP属地:四川省
我来回答