全部产品
云市场
云游戏

数据开发之数据归档

更新时间:2020-06-18 13:52:09

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

背景信息

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

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

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

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

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

数据开发简介

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

操作步骤

  1. 登录DMS控制台

  2. 单击上方菜单栏中数据工厂 > 任务编排

  3. 任务编排页面,单击新建任务流添加任务流

  4. 新建任务流对话框,自定义填写任务流名称描述后,单击确认

    新建任务流

  5. 单击页面中间添加任务,将左侧任务类型单实例SQL拖拽到页面中空白区域。

    若转储的数据和在线数据不在一个实例存储的场景请使用跨实例SQL

    任务节点

  6. 配置任务节点。

    1. 单击步骤5中新建的任务节点,在右侧属性面板中单击内容设置,进入到任务节点的SQL编辑页面。

    2. 内容设置页签编辑转储数据逻辑。

      • 每个月的表您可以通过结构设计-逻辑表结构变更一次性完成多年表的创建;也可以在当前SQL任务中使用create命令新建。
      • 下图方案1中每个月对一张表进行存储,insert的目标表需要变量指定,变量格式为${变量名},支持无引号或者单引号处理。

        内容设置

    3. 单击属性面板中的变量设置,设置变量。

      变量设置

    4. 完成SQL、变量配置之后,单击SQL预览确认是否满足预期。

    5. 确认无误后,单击属性面板右下角保存

7.重复步骤5和步骤6,再拖拽一个任务节点进行在线表的数据清理。

8.返回到DAG图中,在两个任务节点上画线。

数据归档需要先完成转储才可以进行数据清理,画线方式如下图所示。

DAG图连线

9.完成DAG图的流程走向编辑后,在右侧属性面板中开启调度,完成配置后单击保存即可。

任务流调度周期支持每月、每周、每天多维度配置,您可以按需求选择调度周期。

开启调度

查看运行状态

数据开发页面,单击左侧运行管理页签即可查看(本例中配置为每月19号调度,暂无记录)。

运行管理

若任务执行失败,将会通知给到任务流的责任人(责任人默认为创建者,管理员和DBA可转交责任人)。