数据集成目前支持将AnalyticDB for MySQL 3.0、MySQL、Oracle、PolarDB、PostgreSQL等源头的数据整库离线同步至OSS。本文以MySQL为源端,OSS为目标端场景为例,为您介绍如何将MySQL整个数据库的数据离线同步到OSS数据湖。
前提条件
操作步骤
一、选择同步任务类型
进入数据集成页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的,在下拉框中选择对应工作空间后单击进入数据集成。
-
在左侧导航栏单击同步任务,然后在页面顶部单击新建同步任务,进入同步任务的创建页面,配置如下基本信息。
-
数据来源和去向:
MySQL→OSS -
新任务名称:自定义同步任务名称。
-
同步类型:
整库离线。 -
同步步骤:选中全量同步和增量同步。
-
二、网络与资源配置
-
在网络与资源配置区域,选择同步任务所使用的资源组。您可以为该任务分配任务资源占用CU数。
-
来源数据源选择已添加的
MySQL数据源,去向数据源选择已添加的OSS数据源后,单击测试连通性。 -
确保来源数据源与去向数据源均连通成功后,单击下一步。
三、目标侧基本配置
整库离线同步至OSS链路支持Paimon、lceberg、csv、text、parquet、orc多种写入格式。
不同写入格式,配置参数存在差异,请按需配置:
Paimon、lceberg
|
参数 |
参数说明 |
|
存储路径选择 |
选择入湖后数据存储在OSS的哪个路径下。 |
|
选择元数据库自动构建位置 |
您可以选择是否要自动构建元数据库至DLF。 说明
仅支持将元数据库构建至同地域的DLF中。 |
csv、text
|
参数 |
参数说明 |
|
目标根路径 |
书写格式: 说明
在使用调度参数 |
|
列分隔符 |
数据的字段分割符号,例如逗号(,)。如果分隔符不可见,请填写Unicode编码,例如 |
|
前缀冲突 |
在进行数据写入时,若目标对象与待写入对象名称具有相同前缀,可以进行以下操作:
|
|
输出表头 |
设置是否将表头作为内容输出。 |
parquet、orc
|
需配置参数 |
参数说明 |
|
目标根路径 |
书写格式: 说明
在使用调度参数 |
|
前缀冲突 |
在进行数据写入时,若目标对象与待写入对象名称具有相同前缀,可以进行以下操作:
|
四、选择要同步的库表
此步骤中,您可以在源端库表区域选择源端数据源下需要同步的表,并单击
图标,将其移动至右侧已选库表。
可通过 库过滤 和 表过滤 搜索框按名称或正则表达式筛选目标库表,例如勾选 testdb 库下的 test_tb 表。已选库表最多支持5000个表。
五、设置全增量控制
-
配置任务的全增量类型。
-
如果您的同步步骤勾选了全量同步和增量同步,此处默认展示一次性全量,周期性增量,不可更改。
-
如果您的同步步骤选择了全量同步,此处可以选择任务的类型是一次性全量还是周期性全量。
-
如果您的同步步骤选择了增量同步,此处可以选择任务的类型为一次性增量还是周期性增量。
说明以下以一次性全量周期性增量为例,为您示例后续的配置要点。
-
-
配置周期调度参数。
如果您的任务涉及周期性同步,则可单击周期调度参数进行配置。
六、目标表映射
在上一步骤选择完需要同步的表后,将自动在此界面展示当前待同步的表,但目标文件的相关属性默认为待刷新映射状态,需要您定义并确认源表与目标文件映射关系,即数据的读取与写入关系,然后单击刷新映射后才可进入下一步操作。您可以直接刷新映射,或自定义目标文件规则后,再刷新映射。
-
您可以选中待同步表后,单击批量刷新映射,未配置映射规则时,默认目标OSS文件名规则为
${源表名}/data_${bizdate}。 -
由于需要进行周期性调度,所以需要在此定义周期性调度任务时的相关属性,包括调度周期、重跑属性、调度资源组等。当前同步的调度配置与数据开发中节点的调度配置一致,参数详情可参见节点调度配置。
-
同步步骤不同,您需要分别对应设置增量条件和全量条件,对源端进行WHERE子句过滤,此处只需写WHERE子句,不需要写出WHERE关键字。如果启用了周期性配置,可以使用系统参数变量。
-
您可以在目标路径映射自定义列和目标文件名映射自定义列,单击配置按钮自定义目标OSS文件的存放路径规则和命名规则,具体配置说明,请参见附录:最终目标OSS文件路径及名称说明。
1. 编辑字段类型映射
同步任务存在默认的源端字段类型与目标端字段类型映射,您可以单击表格右上角的编辑字段类型映射,自定义源端表与目标端表字段类型映射关系,配置完后单击应用并刷新映射。
2. 为目标文件添加字段并赋值
您可以为目标文件在原有表结构基础上新增字段。操作如下:
-
单表添加字段并赋值:单击目标文件附加字段列的配置按钮,在附加字段页面,单击新增字段,为目标文件添加字段并赋值。
-
批量赋值:选择多个表,在列表底部选择,为目标表批量添加相同的字段并批量赋值。
说明在赋值时支持赋值常量与变量,您可通过
图标切换赋值模式。
3. 自定义高级参数
如果需要对任务做精细化配置,达到自定义同步需求,可以单击自定义高级参数列的配置,修改高级参数。
请在完全明白对应参数的含义情况下再进行修改,以免产生不可预料的错误或者数据质量问题。
4. 设置源端切分列
您可以在源端切分列中下拉选择源端表中的字段或选择不切分。
七、高级参数配置
同步任务提供部分参数可供修改,您可以按需对该参数值进行修改,例如通过最大连接数上限限制,避免当前同步方案对数据库造成过大的压力从而影响生产。
请在完全了解对应参数含义的情况下再进行修改,以免产生不可预料的错误或者数据质量问题。
-
单击界面右上方的高级参数配置,进入高级参数配置页面。
-
在高级参数配置页面修改相关参数值。
八、资源组配置
您可以单击界面右上方的资源组配置,查看并切换当前的任务所使用的资源组。
九、执行同步任务
-
完成所有配置后,单击保存或完成配置,保存任务。
-
在界面,找到已创建的同步任务,单击操作列的发布。发布时若勾选发布后直接启动运行,则单击确认后,任务会立即执行,否则需要手动启动。
说明数据集成的任务需要发布至生产环境运行,因此新建或者编辑任务均需执行发布操作后方可生效。
-
单击任务列表中对应任务的名称/ID,查看任务的详细执行过程。
十、报警配置
任务运行后,将在运维中心生成调度任务,为避免任务出错导致业务数据同步延迟,您可以对同步任务设置报警策略。
-
在任务列表中找到正在运行的同步任务,单击操作列的,进入任务编辑页。
-
单击下一步,然后在页面右上方单击报警配置,进入报警设置页面。
-
在调度信息列,单击生成的调度任务,进入运维中心任务详情页,获取任务ID。
-
在运维中心左侧导航栏,单击,进入规则管理页。
-
单击新建自定义规则,设置规则对象、触发方式和报警行为等,更多信息,请参见规则管理。
您可以在规则对象中搜索已获取的任务ID,找到目标任务并为其设置报警。
同步任务运维
查看任务运行状态
创建完成同步任务后,您可以在同步任务页面查看当前已创建的同步任务列表及各个同步任务的基本信息。
同步任务列表包含名称/ID、数据源同步方案、状态、执行概况、资源组和操作列。
-
您可以在操作列启动或停止同步任务,在更多中可以对同步任务进行编辑、查看等操作。
-
已启动的任务您可以在执行概况中看到任务运行的基本情况,也可以单击对应的概况区域查看执行详情。单击查看进入同步任务详情页面。顶部基本信息区域展示任务ID、数据源(如MySQL到OSS)、同步方案、同步资源组及运行状态。中部执行状态区域展示全量同步进度和增量同步状态。底部数据表格展示各表的来源库、来源表、目标文件、同步进度、已写入数据条数、启动时间和完成时间等详细信息。
MySQL到OSS的整库离线同步任务中:
-
如果您的任务同步步骤为全量同步,此处展示结构迁移以及全量同步。
-
如果您的任务同步步骤为增量同步,此处展示结构迁移以及增量同步。
-
如果您的任务同步步骤为全量同步+增量同步,此处展示结构迁移、全量同步以及增量同步。
-
任务重跑
在某些特殊情况下,如果您需要增减表、修改目标表Schema信息或者表名信息时,您还可以单击同步任务操作列的重跑,系统会将新增的表或有变更的表进行同步,之前同步过的表或者未修改的表将不会再进行同步。
-
直接单击重跑操作,重新运行一次性任务和周期性任务。
-
编辑任务,进行增减表操作后,保存任务并发布。这个时候任务的操作列会显示应用更新,单击应用更新会直接触发修改后的任务重跑。新增或变更的表才会进行同步,之前同步过的表不会再同步。
数据开发相关场景
如果您有下游数据依赖,需要进行数据开发操作的场景,可以参考节点调度配置,进行节点上下游的设置,对应的周期任务节点信息可以在此处周期配置列中查看。
在增量同步页签下,单击表格右侧的齿轮图标,在弹出的列选择器中勾选周期配置以显示该列,然后单击对应数据行中的查看链接。
附录:最终目标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文件写入路径以及文件名,由如下三者拼接而成。
-
目标根路径。在目标侧配置中设置的目标根路径(默认不填代表根目录)。
-
目标OSS路径映射自定义转换得到的目标文件路径。
-
目标OSS文件名映射自定义规则转换得到的目标文件名。
例如,源表
test_tb经过映射自定义规则转换后,目标OSS路径为testdb,目标OSS文件名为test_tb/data_${bizdate}。
-