暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AntDB数据冷热分离方案

北陌 2024-04-07
106

数据冷热分离

数据的存在价值,在于其被使用的程度,即被查询或更新的频率。在不同的业务系统中,人们对处于不同时期的数据有着不同的使用需求。比如,在网络流量行为分析系统中,客户会对最近一个月公司发生的安全事件和网络访问情况感兴趣,而很少关注几个月前的数据;在电商订单系统中,用户会经常访问最近三个月的订单,而更久远的数据则几乎不会去关注。针对这样一些业务场景,我们将数据按照时间纬度划分为二个阶段:Hot、Cold。



区分冷热数据的根本目的,在于控制成本。

为什么这么说?

因为通常情况下,为了支持热数据的操作特性,需要有较好的硬件配置,比如高性能CPU、大内存、SSD硬盘等等。随着时间的推移,系统里会积累越来越多的历史数据,如果依然采用高配置机器来存放这些使用频率非常低的数据,势必会带来非常高的成本。

目前比较常见的冷热分离方案是将冷热数据分离到两套不同的系统,这两套系统拥有不同的存储特性、访问方式等,从而在保证热数据访问性能的同时,将冷数据的成本降低下来。而随着冷热分离方案的普及,很多框架也开始考虑类似的事情,尝试在自己的体系下支持将数据进行冷热分离,避免两套系统带来的复杂性。我们姑且将这两种方案分别称为“冷热分离异构系统”和“冷热分离同构系统”。酬金项目建议使用冷热分离同构系统。



实践中,通常需要结合具体的业务,考虑下面几件事:

  • 冷热数据存储的选型
  • 确定冷热数据分割线
  • 如何进行数据的迁移

冷热数据存储的选型


绝大部分场景,数据都可以分为“冷数据”和“热数据”。数据划分的原则,可以根据时间远近、热点/非热点数据等等。例如在以往项目中的实例,用户通常只访问一段时间之内的数据,例如近一周或一个月。如果数据不做划分,必然会导致一定程度上的性能、成本损耗。

在存储选型上,对于热数据存储,需要重点考虑读写的性能问题,诸如闪存、SSD等会成为首选;而对于冷数据存储,则重点关注低成本存储问题,通常会选择存储在低端磁盘阵列中。

确定冷热数据分割线

数据有冷热划分,那么就会有界限、生命周期。新的数据写入时,其属性是“热”的;当到达某个时间节点或预设阈值时,就需要把数据迁移到“冷”数据存储。

浙江移动酬金项目的冷热数据是按照时间推移来区分的,因此必然要敲定一个时间分割线,即多久以内的数据为热数据,这个值通常会结合业务与历史访问情况来综合考量。对于超过时间线的数据,会被迁移到冷数据中,迁移过程需要确保两点:

  • 不能对热数据产生性能影响
  • 不能影响数据查询

冷热数据标记

酬金业务的数据库模型中,大部分的表名都加上了月份,可以根据表名轻易标记冷热数据。根据酬金业务统计,95%以上的请求访问的是最近3个月的数据,因此热数据保留3个月的数据,其他的迁移到冷数据存储。

如何进行数据的迁移

冷热数据已经根据月份表做了标记,只需要将这部分月表迁移至冷数据存储。

AntDB支持表级别和表空间级别的数据迁移,数据迁移时采用直接将源表空间的数据文件硬拷贝至目标表空间的方式,相比传统的新建临时表/导出导入数据/新建索引或者流复制的模式(增量数据怎么处理?),AntDB的迁移效率要快的多。


关于AntDB数据库

AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论