随着业务的发展,在线表中的数据会逐渐增加。常规业务都有冷热数据现象明显的特性(需要访问的都是近期产生的
热数据
;时间久远的
冷数据
出于备份、备案溯源等诉求会进行在线保留)。在业务表数据量可控、数据库服务性能有足够余量时,一般不会对冷数据进行处理。在需要进行频繁的数据、结构变更时,如果能够及时、有效的分离冷热数据,可以极大的优化变更时间、变更性能开销等方面。
在没有
数仓开发
功能之前,常规的数据归档方式如下:
开发:写个转储逻辑、写个清理逻辑,部署在某个应用服务器,周期调度这段代码。
DBA/运维:写个转储SQL、写个清理SQL,提交crontab部署在数据库服务器,周期调度这个脚本。
常规的数据归档方式不足之处如下:
每个业务表都需要重复一次这样的开发与配置。
无法有效全局管控,如遇到大促、变更等重要窗口无法有效的暂停任务的调度。
任务未有效调度时无法及时、有效的通知介入,容易造成在线表数据量过大的问题降级服务性能。
执行日志无法统一管理,有效溯源查看。
使用
数仓开发
进行在线数据归档有如下优势:
每个业务的数据表都可以按需随时进行归档逻辑的配置。
所有任务流配置清晰可见,如遇大促等重保需求可便捷的进行调度的暂停处理。
研发、DBA、运维等角色都可以直接在功能模块内进行统一的可视化配置,减少研发工作量。
统一操作入口后,调度执行日志随时可查看。
在任务执行失败后可以及时接收到通知进行介入处理。