本文介绍如何通过数据开发功能快速实现常见的数据归档需求。
背景信息
随着业务的发展,在线表中的数据会逐渐增加。常规业务都有冷热数据现象明显的特性(需要访问的都是近期产生的热数据;时间久远的冷数据出于备份、备案溯源等诉求会进行在线保留)。在业务表数据量可控、数据库服务性能有足够余量时,一般不会对冷数据进行处理。在需要进行频繁的数据、结构变更时,如果能够及时、有效的分离冷热数据,可以极大的优化变更时间、变更性能开销等方面。
在没有数仓开发功能之前,常规的数据归档方式如下:
开发:写个转储逻辑、写个清理逻辑,部署在某个应用服务器,周期调度这段代码。
DBA/运维:写个转储SQL、写个清理SQL,提交crontab部署在数据库服务器,周期调度这个脚本。
常规的数据归档方式不足之处如下:
每个业务表都需要重复一次这样的开发与配置。
无法有效全局管控,如遇到大促、变更等重要窗口无法有效地暂停任务的调度。
任务未有效调度时无法及时、有效的通知介入,容易造成在线表数据量过大的问题降级服务性能。
执行日志无法统一管理,有效溯源查看。
优势说明
使用数仓开发进行在线数据归档有如下优势:
每个业务的数据表都可以按需随时进行归档逻辑的配置。
所有任务流配置清晰可见,如遇大促等重保需求可便捷地进行调度的暂停处理。
研发、DBA、运维等角色都可以直接在功能模块内进行统一的可视化配置,减少研发工作量。
统一操作入口后,调度执行日志随时可查看。
在任务执行失败后可以及时接收到通知进行介入处理。
操作步骤
- 登录数据管理DMS 5.0。
在顶部菜单栏中,选择 。
说明数仓开发(老)已不支持新增任务流。
可选:新建项目空间。具体操作,请参见创建项目空间。
说明若您在数仓开发中已创建项目空间,且本次需创建的任务流也可创建在已有空间中,无需新建项目空间。
选择目标项目空间行,单击操作列下的进入空间。
新增数仓开发任务流。
说明您也可以在刚进入空间的界面,直接单击新建任务流。
- 在项目空间的左侧导航栏中,选择 。
- 在新建业务场景对话框中,输入业务场景名称和描述。
- 单击确认。
- 右键单击目标业务场景,选择新增任务流。
- 在新建任务流对话框中,输入任务流名称和描述。
- 单击确认。
将左侧任务类型中单实例SQL拖拽到页面中空白区域。
说明若转储的数据和在线数据不在一个实例存储的场景请使用跨库Spark SQL节点。
配置任务节点。
右键单击单实例SQL节点,选择编辑当前节点配置。
在该页面编辑转储数据逻辑。
单击属性面板中的变量配置,选择节点变量页签,设置变量。
完成SQL、变量配置之后,单击预览确认编写的SQL是否满足预期。
说明若选中自动保存,则无需手动保存。
重复步骤6、7的操作,再拖拽一个任务节点进行在线表的数据清理。
返回到DAG图中,将两个任务节点之间上用线连接。
说明数据归档需要先完成转储才可以进行数据清理。
完成DAG图的流程走向操作后,在任务流页面下方的属性面板中开启调度,完成配置。
说明系统默认选中自动保存,无需您手动保存修改的内容。
后续步骤
在数仓开发功能页面,单击目标空间行操作列下的运维,查看任务流的运行状态。
若任务执行失败,将会通知任务流的责任人(责任人默认为创建者、管理员和DBA)。