整库离线同步方案包括周期性全量同步、周期性增量同步、一次性全量同步、一次性增量同步、一次性全量周期性增量同步。本文以一次性全量周期性增量同步至OSS为例,为您讲解如何将整库数据离线同步至OSS。
前提条件
- 已完成数据源配置。您需要在数据集成同步任务配置前,配置好您需要同步的源端和目标端数据库,以便在同步任务配置过程中,可通过选择数据源名称来控制同步任务的读取和写入数据库。同步解决方案支持的数据源及其配置详情请参见支持的数据源与读写能力。说明 数据源相关能力介绍详情请参见:数据源概述。
- 已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组。
- 已完成数据集成资源组与数据源的网络连通。详情请参见:配置资源组与网络连通。
- 已完成数据源环境准备。您可以基于您需要进行的同步配置,在同步任务执行前,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见:数据库环境准备概述。
操作流程
步骤一:选择同步方案
创建同步解决方案任务,根据需求选择需要同步的源端数据源和目标端数据源,并选择整库离线同步至OSS方案。步骤二:配置网络连通
源端选择已创建的源端数据源与目标端数据源,以及用于执行同步任务的资源组。并测试资源组与数据源的网络连通。详情请参见:配置同步网络链接。
步骤三:设置同步来源与规则
- 在基本配置区域,配置同步解决方案的名称、任务存放位置等信息。
- 在数据来源区域,确认需要同步的源端数据源相关信息。
- 在选择同步的源表区域,选中需要同步的源表,单击图标,将其移动至已选源表。
该区域会为您展示所选数据源下所有的表,您可以选择整库全表或部分表进行同步。
- 在设置表名到文件名的映射规则区域,单击添加规则,选择相应的规则进行添加。同步时默认将源端数据库、数据表写入OSS同名文件中,同时,您可以通过添加映射规则定义最终写入目的端的文件名称。支持通过正则表达式转换写入的文件名,还支持指定内置变量拼接目标文件名。您可以通过该功能实现将多张表数据写入到同一个文件中。配置逻辑请参见:步骤四:设置同步来源与规则。
步骤四:设置目标文件
- 目标文件的基本配置。
参数 说明 目标路径 用于定义数据写入的文件路径,若路径不存在,将自动新建。 说明 如果您希望将每日数据写入至OSS新的文件夹中,您可以使用变量${bdp.system.bizdate}
对文件路径进行命名。文件类型 定义写入目的端的文件格式,包括csv、text及parquet。 说明- csv仅支持严格的csv格式。如果待写入数据包括列分隔符,则会根据csv的语法转义,转义符号为双引号(")。
- text格式是用列分隔符简单分割待写数据,对于待写数据包括列分隔符情况下不做转义。
列分隔符 将源端每列数据写入OSS时所使用的列分隔符,默认值为(,)。 行分隔符 将源端每行数据写入OSS时所使用的行分隔符,默认值为(\n)。 编码 定义文件写入OSS的编码格式。 null值 文本文件中无法使用标准字符串定义null(空指针),数据同步系统提供该参数定义可以表示为null的字符串。例如,您配置null值为 null
,如果源头数据是null,数据同步系统会视作null字段。时间格式 定义写入时间类型数据时的格式。 写入单个文件 定义源端单表是否写入单个文件,当开关为关闭状态时,一张表将被写入多个文件,文件名将添加随机后缀。 说明 该功能目前仅对csv和txt文件格式生效,对parquet文件格式不生效。如果选择了写入单个文件,则文件名前缀冲突选项可以选择替换原有文件或退出报错。写入单文件时源端单表数据量超过10G会引起同步报错。前缀冲突 定义写入OSS文件时,Object名称前缀冲突情况下的数据处理方式: - 替换原有文件:写入前清理Object名称前缀匹配的所有Object。例如
"object":"abc"
,将清理所有abc开头的Object。 - 保留原有文件:写入前不进行任何处理,数据集成OSS Writer直接使用Object名称写入,并使用随机UUID的后缀名来保证文件名不冲突。例如您指定的Object名为数据集成,实际写入为
DI_****_****_****
。说明 写入单个文件时不支持该选项。 - 退出报错:如果指定路径出现前缀匹配的Object,直接报错。例如
"object":"abc"
,如果存在abc123的Object,将直接报错。
- 刷新源表和OSS文件映射。单击刷新源表和OSS文件映射,将根据您在步骤三配置的目标文件映射规则来生成目标OSS文件名,若步骤三未配置映射规则,将默认写入与源表同名的文件。同时,您可以修改最终写入的文件建立方式、为目标文件在源有表字段基础上增加附加字段。说明 当上一步骤中写入单个文件开关为关闭状态时,即单表写入OSS多个文件时,此处的OSS文件名为写入OSS文件的前缀名称,实际写入的文件名会添加随机字符串。
功能 描述 文件建立方式 写入OSS时的文件建立方式,支持写入已有文件或自动建立新文件。 为目标字段添加附加字段 单击操作列的编辑附加字段,可以为目标文件在源端字段的基础上增加字段并为字段赋值。支持手动赋值常量与变量。 说明 仅在文件建立方式为自动建文件时,可以使用此功能。
步骤五:同步规则设置
- 配置增量同步的数据规则。您可通过where语句对待同步的数据表进行过滤,且只需在增量条件框中填写where子句,无需写where关键字。同时,在写where子句时,您可以使用系统内置变量,例如使用
${bdp.system.bizdate}
指代业务日期,格式为yyyymmdd
,使用${bdp.system.cyctime}
指代定时时间,格式为yyyymmddhh24miss
等。说明 您可以使用调度参数来指定同步源表及目标表的数据范围,调度参数使用说明请参见:数据集成使用调度参数的相关说明。 - 配置数据同步的调度周期。
步骤六:运行资源设置
该同步方案将分别创建全量离线同步任务和增量离线同步任务,您可以在此步骤配置任务名称及任务执行所使用的调度资源组与数据集成任务执行资源组,同时,数据集成提供数据库最大连接数、并发数等配置的默认值,如果您需要对任务做精细化配置,您可通过高级配置进行修改。
说明 DataWorks的离线同步任务通过调度资源组将其下发到数据集成任务执行资源组上执行,所以离线同步任务除了涉及数据集成任务执行资源组外,还会占用调度资源组资源。如果使用了独享调度资源组,将会产生调度实例费用。您可通过任务下发机制对该机制进行了解。
步骤七:执行同步任务
- 进入 界面,找到已创建的同步方案。
- 单击操作列的启动/提交执行按钮,启动同步的运行。
- 单击操作列的执行详情,查看任务的详细执行过程。