离线同步节点

DataWorks的离线同步节点提供读取(Reader)和写入(Writer)插件,简化了从源数据库到目标数据库的数据迁移过程。您可以在可视化界面配置数据源与目标源,结合DataWorks的调度能力,实现全量或增量数据同步。本文将以MaxCompute作为源数据库,Hologres作为目标数据库,为您介绍如何使用离线同步节点完成数据同步。

前提条件

  • (可选,RAM账号需要)进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发空间管理员(权限较大,谨慎添加)角色权限,添加成员的操作详情请参见为工作空间添加空间成员

    说明

    如果您使用的是主账号,则可忽略该添加操作。

  • 已开发创建项目工作区。

  • 已在DataWorks配置MaxCompute数据源、Hologres数据源并通过连通性测试,详情请参见创建并管理数据源

    说明

    离线同步节点支持多种数据源,详情请参见支持的数据源列表

  • 已创建离线同步节点。

使用限制

DataWorks的离线同步暂不支持跨时区同步数据。如果数据同步任务中的数据源与使用的DataWorks资源组不在同一个时区,则会导致同步的数据有误。

操作步骤

  1. 在离线同步节点编辑页面,执行如下开发操作。

    网络与资源配置

    按照以下顺序,依次完成数据来源、来源数据源名称、资源组配置、数据去向、去向数据源名称的信息配置,并保证数据来源:可连通

    image

    在配置离线任务向导页面,您可根据以下不同方式来配置离线同步任务。

    说明

    通常推荐使用直观简便的向导模式进行配置。如果数据源不支持通过向导模式来配置任务,您可以选择使用页面上方的脚本模式手动编辑和配置离线同步任务。

    向导模式

    数据来源与去向配置

    配置数据来源与去向对话框中,您可以根据实际需求设置以下参数:

    image

    参数

    数据来源

    数据去向

    Tunnel资源组

    通常是系统提供的一个默认资源组公共传输资源,您也可以单击新购买来获取并使用更多资源。

    schema/Schema

    默认default

    您可选择已创建的schema信息。

    默认public

    您可选择已创建的Schema信息。

    您所创建的数据来源表。

    您所创建的数据去向表。

    过滤方式

    存在两种过滤方式:

    • 分区过滤是通过指定数据存储的特定分区来筛选数据,通常用于数据开发中按时间或其他维度划分的数据。

    • 数据过滤是根据具体的条件(如SQL查询中的WHERE子句)来筛选出符合条件的数据记录。

    分区过滤

    过滤方式为分区过滤时,您可通过指定数据存储的特定分区来筛选数据。

    数据过滤

    过滤方式为数据过滤时,您可在此处配置where条件对数据进行过滤处理。

    分区信息

    过滤方式为分区过滤时,您可以配置相应的参数。系统会自动扫描并显示您创建的源表中的分区信息。如果需要设置多个分区过滤条件,您可以在分区信息配置中添加分区,并为每个分区配置具体的过滤条件。

    如果去向表为分区表时,系统会自动扫描出分区信息,您可在此添加并设置分区数据写入条件。

    如果去向表不是分区表,则默认情况下无分区信息。

    分区不存在时

    过滤方式为分区过滤时,您可以配置相应的参数。当所在分区不存在时,您可设定任务执行出错或者忽略不存在分区,任务正常执行

    写入冲突策略

    写入冲突策略分为三种:

    • 更新(Replace):目标表中存在与源数据相同的主键或唯一键记录,则替换这些记录;如果不存在,则插入新的记录。

    • 忽略(Ignore):如果目标表中存在与源数据相同的主键或唯一键记录,则忽略这些源数据,不进行任何操作。

    • 更新(Update):目标表中存在与源数据相同的主键或唯一键记录,则更新这些记录;

    同步前是否要清空Hologres表

    您可根据业务需求选择清空目标表不清空目标表

    最大连接数

    JDBC使用的最大连接数。

    • 最大连接数仅在写入模式为SQL(INSERT INTO)下生效。

    • 在开启任务时请确保Hologres实例有充足的空闲连接。

      说明

      一个任务最多使用9个连接。

    字段映射配置

    您可以在字段映射编辑页面单击增加一行来添加新的映射关系。同时,您也可以在连接线位置对现有的映射关系进行删除修改

    image

    通道控制配置

    您可根据业务实际情况,在通道控制对话框设置通道的控制参数。

    image

    说明

    任务期望最大并发数大于等于8个才能开启分布式处理能力。

    脚本模式

    您可参见以下示例脚本信息,配置离线同步节点任务。

    {
        "transform": false,
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "odps",//来源数据类型
                "parameter": {
                    "schema": "default",
                    "partition": [
                        "year=${bizdate},month="
                    ],
                    "datasource": "来源数据源",
                    "envType": 1,
                    "successOnNoPartition": false,
                    "tunnelQuota": "default",
                    "isSupportThreeModel": true,
                    "column": [
                        "字段1",
                        "字段2",
                        "字段3",
                        "字段4",
                        "字段..."
                    ],
                    "tableComment": "",
                    "enableWhere": false,
                    "table": "来源表"
                },
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "holo",//去向数据类型
                "parameter": {
                    "selectedDatabase": "public",
                    "maxConnectionCount": 9,
                    "partition": "order_month=${bizdate}",
                    "truncate": "false",
                    "datasource": "去向数据源",
                    "conflictMode": "ignore",
                    "envType": 1,
                    "column": [
                        "字段1",
                        "字段2",
                        "字段3",
                        "字段4",
                        "字段..."
                    ],
                    "tableComment": "",
                    "table": "目标表"
                },
                "name": "Writer",
                "category": "writer"
            },
            {
                "name": "Processor",
                "stepType": null,
                "category": "processor",
                "copies": 1,
                "parameter": {
                    "nodes": [],
                    "edges": [],
                    "groups": [],
                    "version": "2.0"
                }
            }
        ],
        "setting": {
            "executeMode": null,
            "failoverEnable": null,
            "errorLimit": {
                "record": "0"
            },
            "speed": {
                "concurrent": 2,
                "throttle": false
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }

    完成离线同步任务配置后,单击保存离线同步任务。

  2. 如需定期执行离线同步任务,请根据业务需求配置调度信息。

  3. 离线同步任务配置完成后,需对离线同步任务进行发布。

  4. 离线同步任务发布后,您可以在运维中心查看周期任务的运行情况。详情请参见运维中心入门