在数据分析的实际场景中,冷热数据往往面临着不同的查询频次及响应速度要求。例如在电商订单场景中,用户经常访问近 6 个月的订单,时间较久远的订单访问次数非常少;在行为分析场景中,需支持近期流量数据的高频查询且时效性要求高,但为了保证历史数据随时可查,往往要求数据保存周期更为久远;在日志分析场景中,历史数据的访问频次很低,但需长时间备份以保证后续的审计和回溯的工作…往往历史数据的应用价值会随着时间推移而降低,且需要应对的查询需求也会随之锐减。而随着历史数据的不断增多,如果我们将所有数据存储在本地,将造成大量的资源浪费。
为了解决满足以上问题,冷热数据分层技术应运而生,以更好满足企业降本增效的趋势。顾名思义,冷热分层是将冷热数据分别存储在成本不同的存储介质上,例如热数据存储在成本更高的 SSD 盘上、以提高时效数据的查询速度和响应能力,而冷数据则存储在相对低成本的 HDD 盘甚至更为廉价的对象存储上,以降低存储成本。我们还可以根据实际业务需求进行灵活的配置和调整,以满足不同场景的要求。
冷热分层一般适用于以下需求场景:
- 数据存储周期长:面对历史数据的不断增加,存储成本也随之增加;
- 冷热数据访问频率及性能要求不同:热数据访问频率高且需要快速响应,而冷数据访问频率低且响应速度要求不高;
- 数据备份和恢复成本高:备份和恢复大量数据需要消耗大量的时间和资源。
- …
冷热分层成本对比
我们按照不同比例将冷数据迁移到对象存储,来计算一下如果使用冷热分层之后,相较于全量使用普通云盘、SSD 云盘 可节约 多少 成本。
- 阿里云 OSS 标准存储成本是 120 元/ T /月
- 阿里云普通云盘的价格是 300 元/ T /月
- 阿里云 SSD 云盘的价格是 1000 元/ T /月
Doris
技术点
- 存储方式的优化
- 冷数据 Compaction
- 冷数据 Cache
性能
在充分预热之后(数据已经缓存在 Cache 中),冷热分层表共耗时 5.799s,非冷热分层表共耗时 5.822s,由此可知,使用冷热分层查询表和非冷热分层表的查询性能几乎相同。这表明,使用 Doris 2.0 提供的冷热分层功能,不会对查询性能造成的影响。
https://doris.apache.org/zh-CN/blog/HCDS/