【 Doris】Apache Doris 冷热数据存储(一)

1. 前言

对于任何一种数据库类软件来说,无论其基于传统数据库模型还是基于分布式结构,作为核心的永远是数据本身。而数据的生命周期,则体现在CRUD操作(创建、查询、更新、删除)上。任何一条数据从其生成的时刻开始,数据价值随着时间的推移而逐渐降低,直至成为无用数据,最终删除。

作为使用数据的主体——用户,对于各种数据的需求程度是不同的,人们往往对重要的数据有更高效、稳定的访问需求;而对于不重要的数据则没有这么高的要求,而前者存储的代价往往是远高于后者的。用户在满足了自身对于数据使用要求的情况下,自然会开始考虑数据存储成本等方面的问题,对于那些很少访问甚至基本不访问的数据,使用成本更低的存储方式将是一种更好的选择。

针对这样的使用场景,我们将数据根据用户需求分为“热数据”与“冷数据”。顾名思义,“热数据”代表着用户对其有着更频繁的访问需求,“冷数据”则很少访问。一般数据在新创建的时候往往都是“热数据”,而随着时间的推移逐步变成“冷数据”。

图片

3. DORIS****的冷热数据存储方案

3.1. 本地冷热数据存储(旧的冷热数据方案)

DORIS在实现冷热数据存储方面早已进行过尝试,最早的冷热数据存储使用的是本地冷热数据模型,其核心思路是:在集群中的BE节点上挂载多张硬盘,一部分是用于存储热数据的SSD盘,另一部分是存储冷数据的HDD盘。在CREATE TABLE时,用户根据自身需求,指定TABLE为热数据表,并指定其转为冷数据的时间。

如下图所示,当创建一个热数据表时,FE将会从挂载了SSD盘的BE节点(BE1,BE2,BE3)上随机选择多个来创建数据分片。当到达指定的冷却时间时,SSD盘上的数据将会复制到HDD盘,并更新其元数据信息。

图片

对于冷数据,其使用的频率是很低的,这样可以做到使用有限的BE节点来管理更多的数据,成本将远远低于纯本地存储的方案。

4. 总结

本文介绍了DORIS实现冷热数据的整体方案,篇幅有限,冷热数据管理还有很多没有说到的方面。比如冷数据分片有新数据写入时如何处理、冷数据遇到表结构修改时如何处理,数据本地缓存的清理策略等。这些问题将在后续文章中逐步展开,请持续关注。

– 作者介绍 –

彭翔宇
百度 PALO 团队资深研发工程师,丰富的大数据工程研发经验,Apache Doris 冷热存储模块主要实现者,擅长 Doris 生态化组件研发。

Apache Doris 开源社区链接参考

Apache Doris****官方网站:

http://doris.apache.org

Apache Doris Github**:**

https://github.com/apache/incubator-doris

Apache Doris 开发者邮件组:

dev@doris.apache.org

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成32065 人正在系统学习中

来源:九层之台起于累土

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月8日
下一篇 2022年6月8日

相关推荐