数据管理DMS的T+1全量数据快照功能支持将业务表的数据按照每天或每小时1次的频率在数据仓库中形成数据快照,方便您以小时、日、月等时间维度对数据进行统计分析。本文介绍创建T+1全量数据快照工单的方法。

前提条件

  • 快照引擎:存储快照的目标数据库。
    • 数据库类型:AnalyticDB MySQL版
    • 实例的管控模式为安全协同,查看管控模式,请参见查看管控模式
  • 快照数据源:生成快照的源数据库。
    • 数据库类型:RDS MySQLPolarDB MySQL引擎或由PolarDB MySQL引擎组成的逻辑库。
      说明 如需使用逻辑库,您需要先配置逻辑库和逻辑表,具体操作,请参见逻辑库逻辑表
    • 实例的管控模式为安全协同,查看管控模式,请参见查看管控模式
  • 您使用的是阿里云账号或拥有AliyunDTSFullAccess权限策略的RAM用户。
    说明 如果RAM用户没有被授权AliyunDTSFullAccess,界面会出现提示授权对话框。使用主账号或拥有AdministratorAccess权限策略的RAM用户进行授权,添加权限策略,请参见为RAM用户授权

背景信息

传统数据快照需要在某个时间点对整个库、部分表做全量备份,在数据量较大的情况下,不仅拿不到某个准确时间点的快照,还可能对线上业务库造成压力。

T+1全量数据快照先通过DTS实时解析日志获取业务侧数据变化(对生产影响极小),形成增量拉链表,然后在DMS中按照客户需求进行任务调度,在云原生数仓AnalyticDB MySQL版中生成全量数据快照。数据快照按天或小时进行分区,每个分区中包含历史全量数据。

说明 不同于传统拉链表,DMS提供的拉链表不仅能够记录增量数据,还会记录数据实时变化信息,通过拉链表能够准确查询任意时间点的快照数据。

应用场景

T+1全量数据快照是数仓建设过程中业务数据入仓的常用方式,以天或小时为周期将业务表的全量数据入仓,方便以日或月为维度进行统计分析:

  • 记录用户的每日余额,用于财务系统的账单、对账等场景。
  • 记录某个商品的每日价格,用于跟踪当前商品的价格是否处于历史低位,可用于促销提醒等场景。
  • 统计截止前一天的订单总额,了解业务运行情况。

使用限制

如果快照数据源中的表结构发生了改变,可能会影响同步链路的可用性,目前只支持新增列。

说明 新建表、删除表、清空表、重命名表、删除列、重命名列、修改列类型等DDL都会使链路中断,如果链路中断,您需要在运维中心进行修复或者提交工单

收费策略

DTS数据同步链路涉及收费,链路规格为small,计费方式为按量付费。费用详情,请参见产品定价
说明 数据同步到自研数据库AnalyticDB MySQL、PostgreSQL,可免费使用DTS后付费实例2年,限购买10次,每次只能购买1个DTS实例。
  • 限DTS同步实例,限micro和small规格,期间规格变配收费。
  • 如果已经购买了10次,释放已购买的实例,再次购买,则不会享受优惠。

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > T+1全量数据快照
  3. 在页面右上角,单击T+1全量数据库快照
  4. T+1全量数据快照工单申请页面,输入工单信息。
    项目 描述
    工单名称 输入工单名称。
    快照引擎 选择存储快照的目标数据库。
    快照数据源 选择需要创建快照的源数据库。
    快照表配置 添加快照表:
    1. 在左侧原表中,选中需要创建快照的表。
    2. 单击5添加,将选中的表添加到快照列表中。
    3. 快照粒度中,选中生成快照的周期。
      • 小时:每小时生成一张快照。
      • 天:每天生成一张快照。
    4. 时间字段下拉框中,选择时间类型的字段。字段类型为必须为datetime、timestamp或date。
      说明 系统按照选定字段的时间为标准创建数据快照,而不是系统时间。
    小时表表名配置 如果您配置了小时级快照粒度,需要设置小时快照表的前缀和后缀,默认小时表的前缀为ods_,后缀为_dltahh
    天表表名配置 如果您配置了天级快照粒度,需要设置天快照表的前缀和后缀,默认天表的前缀为ods_,后缀为_dlta
    快照数据全量保留 设置快照数据的分区数。
    • 是:快照数据全量保留,默认为每个快照表创建10240个分区,快照最多保留426天。
    • 否:自定义每个快照表的分区数。小时表分区数=天数*24。天表分区数=天数。
  5. 单击提交申请
  6. 购买DTS数据同步链路。
    1. 确认购买页信息后,选中《数据传输(按量付费)服务条款》
    2. 单击购买并启动
    3. 确认对话框中,单击确认
    待工单审批通过后:
    • 天任务会在每天01时00~10分启动,例如,2021年12月13日零时以后,在快照引擎中写入一个2021-12-13的分区,包含2021-12-13之前的所有数据。
    • 小时任务会在每个小时的0~5分启动,例如,在2021年12月13日16时以后,在快照引擎中写入一个2021-12-13 16:00:00的分区,包含2021-12-13 16:00:00之前的所有数据。
  7. 可选:查看数据快照结果。
    在快照引擎的SQL窗口,查看快照数据。

    例如,查看小时表中2021年12月13日16时之前的全部数据快照,SQL查询语句如下:

    SELECT * FROM `前缀_tablename_后缀` WHERE ds='2021-12-10 16:00:00';
    快照查询
    说明
    • 您可以根据设置的小时表、天表的前缀、后缀查找您需要的表。
    • 快照表的分区键为ds,您可以通过分区键ds过滤数据,查询目标时间以前的全量数据。
  8. 可选:T+1全量数据快照工单申请页面,单击工单号右侧操作列中的运维,查看工单执行情况。
    • 查看任务执行情况:
      • 天任务:如果工单配置了天级快照粒度,您可以在天任务页签中,查看每一天的任务列表,您还可以终止或重跑该任务。
      • 小时任务:如果工单配置了小时级快照粒度,您可以在小时任务页签中,查看每小时的任务列表,您还可以终止或重跑该任务。
    • 查看同步链路状态:单击中间表同步链路,页面跳转到集成与开发(DTS) > 数据集成 > 数据同步页面,您可以在该页面查看同步链路的状态和维护该同步链路。