我们给3张表分别插入相同的7条数据,但是查询结果是:
Duplicate模型表显示7条、Aggregate模型表显示4条、Unique模型表显示5条。
通过对比,我们可以看出3个数据模型的差异。
1.Duplicate模型保留全部数据。
2.Aggregate模型按照主键聚合。
3.Unique模型按照主键进行数据去重,保留最后一次插入的数据(即最新数据),对于REPLACE操作,同一个导入批次的数据替换顺序不能保证;而不同导入批次的数据,替换顺序可以保证,后一批次的数据会替换前一批次的数据。
4.Aggregate模型由于对数据按照指定维度列做了聚合,因此明细数据会丢失。
5.Aggregate模型要想保留全部明细数据,需要导入数据中每一行的Key组合都不完全相同。
针对Aggregate模型和Unique模型,Doris通过3个阶段进行不同层次的数据聚合。
1.数据写入阶段。针对每一个批次的导入数据,Doris会先在批次内进行数据合并。
2.节点数据压实阶段。在数据写入后,BE节点不定期进行跨批次的数据合并,这个过程也叫压实。
3.数据查询阶段。在数据查询时,对于查询涉及的数据Doris会进行进一步聚合,避免返回错误的结果。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




