本文介绍如何通过数据开发功能快速实现常见的数据归档需求。

背景信息

随着业务的发展,在线表中的数据会逐渐增加。常规业务都有冷热数据现象明显的特性(需要访问的都是近期产生的热数据;时间久远的冷数据出于备份、备案溯源等诉求会进行在线保留)。在业务表数据量可控、数据库服务性能有足够余量时,一般不会对冷数据进行处理。在需要进行频繁的数据、结构变更时,如果能够及时、有效的分离冷热数据,可以极大的优化变更时间、变更性能开销等方面。

在没有数仓开发功能之前,常规的数据归档方式如下:

  • 开发:写个转储逻辑、写个清理逻辑,部署在某个应用服务器,周期调度这段代码。
  • DBA/运维:写个转储SQL、写个清理SQL,提交crontab部署在数据库服务器,周期调度这个脚本。

常规的数据归档方式不足之处如下:

  • 每个业务表都需要重复一次这样的开发与配置。
  • 无法有效全局管控,如遇到大促、变更等重要窗口无法有效的暂停任务的调度。
  • 任务未有效调度时无法及时、有效的通知介入,容易造成在线表数据量过大的问题降级服务性能。
  • 执行日志无法统一管理,有效溯源查看。

优势说明

使用数仓开发进行在线数据归档有如下优势:
  • 每个业务的数据表都可以按需随时进行归档逻辑的配置。
  • 所有任务流配置清晰可见,如遇大促等重保需求可便捷的进行调度的暂停处理。
  • 研发、DBA、运维等角色都可以直接在功能模块内进行统一的可视化配置,减少研发工作量。
  • 统一操作入口后,调度执行日志随时可查看。
  • 在任务执行失败后可以及时接收到通知进行介入处理。

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择集成与开发(DTS) > 数据开发 > 数仓开发
    说明 数仓开发(老)已不支持新增任务流。
  3. 可选:新建项目空间。具体操作,请参见创建项目空间
    说明 若您在数仓开发中已创建项目空间,且本次需创建的任务流也可创建在已有空间中,无需新建项目空间。
  4. 选择目标项目空间行,单击操作列下的进入空间
  5. 新增数仓开发任务流。
    说明 您也可以在刚进入空间的界面,直接单击新建任务流
    1. 在项目空间的左侧导航栏中,选择jai > 业务场景
    2. 新建业务场景对话框中,输入业务场景名称和描述。
    3. 单击确认
    4. 右键单击目标业务场景,选择新增任务流
    5. 新建任务流对话框中,输入任务流名称和描述。
    6. 单击确认
  6. 将左侧任务类型中单实例SQL拖拽到页面中空白区域。
    说明 若转储的数据和在线数据不在一个实例存储的场景请使用跨库Spark SQL节点。
  7. 配置任务节点。
    1. 右键单击单实例SQL节点,选择编辑当前节点配置
    2. 在该页面编辑转储数据逻辑。
      • 每个月的表您可以通过结构设计逻辑表结构设计一次性完成多年表的创建,也可以在当前SQL任务中使用CREATE命令新建。
      • 每个月对一张表进行存储,INSERT的目标表需要变量指定,变量格式为${变量名}。
    3. 单击属性面板中的变量配置,选择节点变量页签,设置变量。
    4. 完成SQL、变量配置之后,单击预览确认编写的SQL是否满足预期。
      说明 若选中自动保存,则无需手动保存。
  8. 重复步骤6、7的操作,再拖拽一个任务节点进行在线表的数据清理。
  9. 返回到DAG图中,将两个任务节点之间上用线连接。
    说明 数据归档需要先完成转储才可以进行数据清理。
  10. 完成DAG图的流程走向操作后,在任务流页面下方的属性面板中开启调度,完成配置。
    说明 系统默认选中自动保存,无需您手动保存修改的内容。

后续步骤

数仓开发功能页面,单击目标空间行操作列下的运维,查看任务流的运行状态。
说明 若任务执行失败,将会通知任务流的责任人(责任人默认为创建者、管理员和DBA)。