MySQL整库离线同步到OSS数据湖

数据集成目前支持将AnalyticDB for MySQL 3.0、MySQL、Oracle、PolarDB、PostgreSQL等源头的数据整库离线同步至OSS。本文以MySQL为源端,OSS为目标端场景为例,为您介绍如何将MySQL整个数据库的数据离线同步到OSS数据湖。

前提条件

操作步骤

一、选择同步任务类型

  1. 进入数据集成页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据集成 > 数据集成,在下拉框中选择对应工作空间后单击进入数据集成

  2. 在左侧导航栏单击同步任务,然后在页面顶部单击新建同步任务,进入同步任务的创建页面,配置如下基本信息。

    • 数据来源和去向MySQLOSS

    • 新任务名称:自定义同步任务名称。

    • 同步类型整库离线

    • 同步步骤:选中全量同步增量同步

二、网络与资源配置

  1. 网络与资源配置区域,选择同步任务所使用的资源组。您可以为该任务分配任务资源占用CU数。

  2. 来源数据源选择已添加的MySQL数据源,去向数据源选择已添加的OSS数据源后,单击测试连通性image

  3. 确保来源数据源与去向数据源均连通成功后,单击下一步

三、目标侧基本配置

整库离线同步至OSS链路支持Paimonlcebergcsvtextparquetorc多种写入格式。

不同写入格式,配置参数存在差异,请按需配置:

Paimon、lceberg

参数

参数说明

存储路径选择

选择入湖后数据存储在OSS的哪个路径下。

选择元数据库自动构建位置

您可以选择是否要自动构建元数据库至DLF。

说明

仅支持将元数据库构建至同地域的DLF中。

csv、text

参数

参数说明

目标根路径

书写格式:di_to_oss_path/${bizdate}/,其中调度参数${bizdate}表示业务日期,调度值填写$bizdate。等于调度日期的前一天,更多调度参数详情请参见:调度参数支持的格式

说明

在使用调度参数$bizdate时,需要包含在全增量控制周期调度参数配置中。

列分隔符

数据的字段分割符号,例如逗号(,)。如果分隔符不可见,请填写Unicode编码,例如\\u001b\\u007c

前缀冲突

在进行数据写入时,若目标对象与待写入对象名称具有相同前缀,可以进行以下操作:

  • 替换原有文件:删除前缀相同的文件,重建新的文件替换原有文件。

  • 保留原有文件:保留原始文件,重建新文件,名称为原文件名加随机后缀。

  • 退出报错:同步任务停止执行。

输出表头

设置是否将表头作为内容输出。

parquet、orc

需配置参数

参数说明

目标根路径

书写格式:di_to_oss_path/${bizdate}/,其中调度参数${bizdate}表示业务日期,调度值填写$bizdate。等于调度日期的前一天,更多调度参数详情请参见:调度参数支持的格式

说明

在使用调度参数$bizdate时,需要包含在全增量控制周期调度参数配置中。

前缀冲突

在进行数据写入时,若目标对象与待写入对象名称具有相同前缀,可以进行以下操作:

  • 替换原有文件:删除前缀相同的文件,重建新的文件替换原有文件。

  • 保留原有文件:保留原始文件,重建新文件,名称为原文件名加随机后缀。

  • 退出报错:同步任务停止执行。

四、选择要同步的库表

此步骤中,您可以在源端库表区域选择源端数据源下需要同步的表,并单击image图标,将其移动至右侧已选库表

image

五、设置全增量控制

  1. 配置任务的全增量类型。

    • 如果您的同步步骤勾选了全量同步增量同步,此处默认展示一次性全量,周期性增量,不可更改。

    • 如果您的同步步骤选择了全量同步,此处可以选择任务的类型是一次性全量还是周期性全量。

    • 如果您的同步步骤选择了增量同步,此处可以选择任务的类型为一次性增量还是周期性增量。

      说明

      以下以一次性全量周期性增量为例,为您示例后续的配置要点。

  2. 配置周期调度参数。

    如果您的任务涉及周期性同步,则可单击周期调度参数配置进行配置。

六、目标表映射

在上一步骤选择完需要同步的表后,将自动在此界面展示当前待同步的表,但目标文件的相关属性默认为待刷新映射状态,需要您定义并确认源表与目标文件映射关系,即数据的读取与写入关系,然后单击刷新映射后才可进入下一步操作。您可以直接刷新映射,或自定义目标文件规则后,再刷新映射。

说明
  • 您可以选中待同步表后,单击批量刷新映射,未配置映射规则时,默认目标OSS文件名规则为${源表名}/data_${bizdate}

  • 由于需要进行周期性调度,所以需要在此定义周期性调度任务时的相关属性,包括调度周期重跑属性调度资源组等。当前同步的调度配置与数据开发中节点的调度配置一致,参数详情可参见节点调度

  • 同步步骤不同,您需要分别对应设置增量条件全量条件,对源端进行WHERE字句过滤,此处只需写WHERE子句,不需要写出WHERE关键字。如果启用了周期性配置,可以使用系统参数变量。

  • 您可以在目标路径映射自定义列和目标文件名映射自定义列,单击配置按钮自定义目标OSS文件的存放路径规则和命名规则,具体配置说明,请参见附录:最终目标OSS文件路径及名称说明

1. 编辑字段类型映射

同步任务存在默认的源端字段类型与目标端字段类型映射,您可以单击表格右上角的编辑字段类型映射,自定义源端表与目标端表字段类型映射关系,配置完后单击应用并刷新映射

2. 为目标文件添加字段并赋值

您可以为目标文件在原有表结构基础上新增字段。操作如下:

  • 单表添加字段并赋值:单击目标文件附加字段列的配置按钮,在附加字段页面,单击新增字段,为目标文件添加字段并赋值。

  • 批量赋值:选择多个表,在列表底部选择批量修改 > 目标文件附加字段,为目标表批量添加相同的字段并批量赋值。

    说明

    在赋值时支持赋值常量与变量,您可通过image图标切换赋值模式。

3. 自定义高级参数

如果需要对任务做精细化配置,达到自定义同步需求,可以单击自定义高级参数列的配置,修改高级参数。

重要

请在完全明白对应参数的含义情况下再进行修改,以免产生不可预料的错误或者数据质量问题。

4. 设置源端切分列

您可以在源端切分列中下拉选择源端表中的字段或选择不切分

七、报警配置

为避免任务出错导致业务数据同步延迟,您可以对同步任务设置报警策略。

  1. 单击页面右上方的报警配置,进入报警设置页面。

  2. 选择同步表的调度任务,然后为其设置报警。更多信息,请参见报警信息

八、高级参数配置

同步任务提供部分参数可供修改,您可以按需对该参数值进行修改,例如通过最大连接数上限限制,避免当前同步方案对数据库造成过大的压力从而影响生产。

说明

请在完全了解对应参数含义的情况下再进行修改,以免产生不可预料的错误或者数据质量问题。

  1. 单击界面右上方的高级参数配置,进入高级参数配置页面。

  2. 高级参数配置页面修改相关参数值。

九、资源组配置

您可以单击界面右上方的资源组配置,查看并切换当前的任务所使用的资源组。

十、执行同步任务

  1. 完成所有配置后,单击页面底部的完成配置

  2. 数据集成 > 同步任务界面,找到已创建的同步任务,单击操作列的启动

  3. 单击任务列表中对应任务的名称/ID,查看任务的详细执行过程。

同步任务运维

查看任务运行状态

创建完成同步任务后,您可以在同步任务页面查看当前已创建的同步任务列表及各个同步任务的基本信息。

image

  • 您可以在操作列启动停止同步任务,在更多中可以对同步任务进行编辑查看等操作。

  • 已启动的任务您可以在执行概况中看到任务运行的基本情况,也可以单击对应的概况区域查看执行详情。image

    MySQLOSS的整库离线同步任务中:

    • 如果您的任务同步步骤为全量同步,此处展示结构迁移以及全量同步。

    • 如果您的任务同步步骤为增量同步,此处展示结构迁移以及增量同步。

    • 如果您的任务同步步骤为全量同步+增量同步,此处展示结构迁移、全量同步以及增量同步。

任务重跑

  • 直接重跑:不修改任务配置,直接点击重跑操作。

    效果:重跑一次性任务、周期性任务属性做更新。

  • 修改后重跑(增减表场景):编辑任务,进行增减表的操作, 单击完成。这个时候任务的操作会变成应用更新,单击应用更新会直接触发修改后的任务重跑。

    效果:新增的表才会进行同步,之前同步过的表不会再同步。

  • 修改后重跑(修改表名信息):编辑任务,进行目标表的名称修改或者切换同步的目标表,点击完成。这个时候任务的操作会变成应用更新,单击应用更新会直接触发修改后的任务重跑。

    效果:同步修改过的表,没有修改的表不会再进行同步

数据开发相关场景

如果您有下游数据依赖,需要进行数据开发操作的场景,可以参考节点调度,进行节点上下游的设置,对应的周期任务节点信息可以在此处周期配置列中查看。

image

附录:最终目标OSS文件路径及名称说明

DataWorks数据集成在六、目标表映射时,提供了自定义规则,用于映射目标OSS路径目标OSS文件名

  • 内置目标OSS路径映射自定义规则default_path_convert_rule

    将来源库名称作为目标OSS路径。例如,源数据库名称为di_ide_yufa时,使用上述规则,该名称会直接被用作OSS的目标路径,即在OSS中的存储路径将是di_ide_yufa。

  • 内置的目标OSS文件名映射自定义规则有以下两个规则:

    • default_file_convert_rule_with_schedule_params:该规则定义${srcTableName}/data_${bizdate},源表名${srcTableName}会作为OSS路径的一部分,而目标文件为data_后面跟上调度参数${bizdate}的值。

      说明

      例如,源表名为base_c_app_config,调度日期的值是20230101,那么在OSS中生成的目标表名为:base_c_app_config/data_20230101。

    • default_file_convert_rule:该规则定义${srcTableName}/data,源表名${srcTableName}作为OSS路径的一部分,并且默认的目标文件名为data

      说明

      例如,源表名为base_c_app_config,转换后的目标表名为base_c_app_config/data。

  • 最终的OSS文件写入路径以及文件名,由如下三者拼接而成。

    • 目标根路径。image

    • 目标OSS路径映射自定义转换得到的目标文件路径。

    • 目标OSS文件名映射自定义规则转换得到的目标文件名。

      image