本文示例以MySQL为源端,OSS为目标端,为您介绍如何将MySQL整个数据库的数据离线同步到OSS。
使用限制
仅支持使用独享数据集成资源组。
操作步骤
前提条件
已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组。
已完成MySQL和OSS数据源配置,以便在同步任务配置时,可通过选择数据源名称来控制同步读取和写入的数据库。配置数据源的操作详情请参见配置MySQL数据源、配置OSS数据源。
已完成数据源环境准备。来源数据源为MySQL时,您需要开启Binlog相关功能,详情请参见MySQL环境准备。
步骤一:创建同步任务
进入数据集成页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据集成。
单击左侧导航栏的同步任务,来源选择MySQL,去向选择OSS,单击开始创建按钮。
在新建同步任务页面,编辑任务的基本信息。
新任务名称:自定义。
同步类型:本文是以MySQL整库离线同步至OSS,故选择:整库离线。
同步步骤:根据您的业务需求选择全量同步、全量同步和增量同步。详情请参见:步骤二:配置同步任务。
若您需要进行一次性全量或周期性全量同步,请勾选全量同步。
若您需要进行一次性全量周期性增量同步,请勾选全量同步和增量同步。
网络与资源配置:点击下拉框分别选择已经创建的MySQL数据源、独享数据集成资源组、OSS数据源,单击测试所有连通性,保障资源组与数据源之间的网络连通性。
步骤二:配置同步任务
周期全量配置方式
在新建同步任务页面,选择同步步骤为全量同步。
单击下一步,在选择要同步的库表中,选择MySQL中需要同步的表。
您可以在左侧源端库表区域需要同步的源表,点击图标,可以将其移动至右侧已选库表区域。
选中右侧已选库表中的表,点击图标,也可以取消已选库表区域的表。
说明您也可以在库过滤和表过滤的搜索框中,输入库表的名称或填写正则表达式,选择需要同步的库表。
配置目标OSS文件属性。
目标根路径,书写格式:
di_to_oss_path/${bizdate}/
,其中调度参数${bizdate}
表示业务日期,调度值填写$bizdate
。等于调度日期的前一天,更多调度参数详情请参见:调度参数支持的格式。说明在使用调度参数
$bizdate
时,需要包含在全增量控制的周期调度参数配置中。文件类型:parquet,text,csv,orc。
列分隔符:数据的字段分割符号,例如逗号(,)。
前缀冲突:在进行数据写入时,若目标对象与待写入对象名称具有相同前缀,可以进行以下操作:
替换原有文件:删除前缀相同的文件,重建新的文件替换原有文件。
退出报错:同步任务停止执行。
更多参数:若文件类型是text和csv格式,支持配置更多参数来完成定制化行为。
配置全增量控制。
在全量同步中选择周期性。
单击周期调度参数配置设置对应的调度参数。调度参数详情请参见调度参数支持的格式。
刷新目标表映射。
单个目标表映射刷新:单击目标表操作列的刷新映射。
批量目标表映射刷新:勾选多个需要刷新的表,单击按钮批量刷新映射。
说明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文件写入路径以及文件,由如下三者拼接而成。
目标根路径。
目标OSS路径映射自定义转换得到的目标文件路径。
目标OSS文件名映射自定义规则转换得到的目标文件名。
周期配置。
刷新表映射后,表粒度周期性调度参数配置,支持批量修改或单表定制化修改。您可单击批量修改按钮,在下拉列表中找到周期配置,可以对单表粒度进行配置。更多调度参数配置详情请参见任务调度属性配置概述。
在周期配置中,可以设置预期的周期调度时间。本示例中设置周期调度时间为每天0点10分。
完成配置。
单击完成配置,完成同步任务的配置。
一次性全量周期性增量配置方式
在新建同步任务页面,选择同步步骤为全量同步和增量同步。
单击下一步,在选择要同步的库表中,选择MySQL中需要同步的表。
您可以在左侧源端库表区域需要同步的源表,点击图标,可以将其移动至右侧已选库表区域。
选中右侧已选库表中的表,点击图标,也可以取消已选库表区域的表。
说明您也可以在库过滤和表过滤的搜索框中,输入库表的名称或填写正则表达式,选择需要同步的库表。
配置目标OSS文件属性。
目标根路径,书写格式:
di_to_oss_path/${bizdate}/
,其中调度参数${bizdate}
表示业务日期,调度值填写$bizdate
。等于调度日期的前一天,更多调度参数详情请参见:调度参数支持的格式。说明在使用调度参数
$bizdate
时,需要包含在全增量控制的周期调度参数配置中。文件类型:parquet,text,csv,orc。
列分隔符:数据的字段分割符号,例如逗号(,)。
前缀冲突:在进行数据写入时,若目标对象与待写入对象名称具有相同前缀,可以进行以下操作:
替换原有文件:删除前缀相同的文件,重建新的文件替换原有文件。
退出报错:同步任务停止执行。
更多参数:若文件类型是text和csv格式,支持配置更多参数来完成定制化行为。
配置全增量控制。
此处默认展示一次性全量和周期性增量,不可更改。
单击周期调度参数配置设置对应的调度参数。调度参数详情请参见:调度参数支持的格式。
刷新目标表映射。
单个目标表映射刷新:单击目标表操作列的刷新映射。
批量目标表映射刷新:勾选多个需要刷新的表,单击按钮批量刷新映射。
说明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文件写入路径以及文件,由如下三者拼接而成。
目标根路径。
目标OSS路径映射自定义转换得到的目标文件路径。
目标OSS文件名映射自定义规则转换得到的目标文件名。
周期配置。
刷新表映射后,表粒度周期性调度参数配置,支持批量修改或单表定制化修改。您可单击批量修改按钮,在下拉列表中找到周期配置,可以对单表粒度进行配置。更多调度参数配置详情请参见任务调度属性配置概述。
在周期配置中,可以设置预期的周期调度时间。本示例中设置周期调度时间为每天0点10分。
增量条件配置。
表粒度增量条件参数,支持批量修改/单表定制化修改。单击批量修改按钮,在下拉列表中选择增量条件。
本文以天为增量举例,假设业务时间字段为
gmt_modified
,每天增量抽取前一天0点到今天0点的数据(左闭右开),单击增量条件输入如下代码:to_timestamp('${bizdate}','yyyyMMdd') <= gmt_modified AND gmt_modified < (to_timestamp('${bizdate}','yyyyMMdd') + interval '1 day')
完成配置。
单击完成配置,完成同步任务的配置。
其他高级配置(可选)
目标OSS文件名映射自定义
您可以使用内置变量和手动输入的字符串拼接成为最终目标路径。其中,支持您编辑内置变量,例如,做字符串替换。
全增量控制与周期控制
如果您的同步步骤勾选了全量同步和增量同步,在全增量控制面板页面,默认展示一次性全量,周期性增量,不可更改。
如果您的同步步骤选择了全量同步,在全增量控制面板页面,可以选择任务的类型是一次性全量还是周期性全量。
如果您的同步步骤选择了增量同步,在全增量控制面板页面,可以选择任务的类型为一次性增量还是周期性增量。
附加字段使用调度参数
支持您在附加字段中使用调度参数。
单击周期调度参数配置,新增调度参数,以添加一个cyc_time参数为例:
单击批量修改,打开目标文件附加字段。
说明您也可以单击目标表映射右侧自定义列图标,勾选目标字段附加字段,快捷打开目标文件附加字段进行配置。
在目标文件附加字段中,点击新增字段,在名称列输入dt,赋值列使用手动赋值方式输入${cyc_time},给新增字段赋值调度参数。
高级参数配置
您可以通过以下两种方式定义高级参数:
单击页面右上角的高级参数配置,对同步任务读端与写端进行精细化配置,例如最大连接数、离线任务限流相关参数。
配置高级参数可以控制任务的行为。高级参数功能是整个任务全局的高级参数配置,会应用到本任务的每一个表上。
在刷新表映射表格上,您还可以单独配置每个表的自定义高级参数,单表的高级参数优先级更高。
单击选择自定义列按钮,在下拉列表中勾选自定义高级参数,单击确认。
配置自定义高级参数。
以下表格列举了本同步解决方案所支持的高级参数。
高级参数名称 | 说明 |
离线任务源端最大连接数 | 离线任务源端最大连接数。数据源维度,同一数据源,同时运行的离线任务并发度不允许超过此值 |
离线同步任务并发度 | 并发数是指数据同步任务中,可以从源端并行读取和向目标存储端并行写出数据的最大线程数。并发数大,同步任务速率高,但相对也会消耗更多的资源组槽位,并发数小,同步速率相对较低,相对消耗的资源组槽位也较少 |
离线任务是否开启限流 | 您可以通过限流控制同步速率,以保护读取端数据库,避免抽取速度过大,给源库造成太大的压力,在不限流的情况下,任务将在所配置的并发数的限制基础上,提供现有硬件环境下最大的传输性能 |
离线是否允许脏数据 | 离线是否允许脏数据,配置成false时,如果数据写入目标表失败,任务会失败。 |
离线任务限流大小 | 线任务限流大小,单位MB,在开启限流时生效。如未开启限流,则此参数不生效。 |
步骤三:运行并查看任务状态
启动同步任务
进入
界面,找到已创建的同步方案。单击操作列的启动/提交执行按钮,启动同步的任务。
单击名称/ID或执行概况列空白处,跳转到任务的运行详情页面,查看任务的详细执行过程。
查看任务运行状态
任务的运行详情页面分为三个部分:基本信息、执行状态以及详情信息。
基本信息:包括任务的数据源信息,绑定的资源组以及同步方案。
执行状态:MYSQL到OSS的离线整库同步任务细分后的同步步骤详情。
任务同步类型为全量同步,此处展示全量同步。
任务同步类型为增量同步,此处展示增量同步。
任务同步类型为全量同步、增量同步,此处展示全量同步以及增量同步。
详情信息:针对”全量同步“和”增量同步“的信息显示执行步骤。
全量同步中包含离线同步的表信息、同步的进度、以及写入的条数。单击进度列,可以查看当前表同步的详细日志信息及相关指标
增量同步中包含离线周期任务对应的最新周期实例的相关指标信息。
点击自定义列按钮,勾选增量条件、周期实例和周期配置,点击确认。
单击
,展示本次周期实例的实例化增量条件。单击
,跳转数据集成logview页面,显示历史运行过的周期实例相关指标信息。点击
,显示本周期任务的周期调度相关信息。
任务重跑
直接重跑:不修改任务配置,直接点击重跑操作。
效果:重跑一次性任务、周期性任务属性做更新。
修改后重跑(增减表场景):编辑任务,进行增减表的操作, 单击完成。这个时候任务的操作会变成"应用更新",单击应用更新会直接触发修改后的任务重跑。
效果:新增的表才会进行同步,之前同步过的表不会再同步。
修改后重跑(修改表名信息):编辑任务,进行目标表的名称修改或者切换同步的目标表,点击完成。这个时候任务的操作会变成"应用更新",单击应用更新会直接触发修改后的任务重跑。
效果:同步修改过的表,没有修改的表不会再进行同步
数据开发相关场景
如果您有下游数据依赖,需要进行数据开发操作的场景,可以参考配置调度依赖,进行节点上下游的设置,对应的周期任务节点信息可以在周期配置中查看。