Hologres单表实时同步至Hologres

单表实时ETL任务根据来源的Hologres表结构在目标Hologres数据源中创建目标表,并写入来源表的数据。本文为您介绍如何将Hologres单表数据实时ETL至另一个Hologres任务。

使用限制

  • 仅支持使用Serverless资源组,详情请参见新增和使用Serverless资源组

  • Hologres版本必须在2.1以上。

  • 不支持Hologres分区表的增量同步。

  • 不支持Hologres表DDL变更消息同步。

  • Hologres增量同步支持的数据类型包括以下类型:

    INTEGER、BIGINT、TEXT、CHAR(n)、VARCHAR(n)、REAL、JSON、SERIAL、OID、INT4[]、INT8[]、FLOAT8[]、BOOLEAN[]、TEXT[]。

准备环境

在进行Hologres单表实时同步至Hologres数据集成任务需要基于Serverless资源组,并确保资源组与需要同步的数据源连通性正常。

  1. 准备资源组。

    1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的资源组,进入资源组列表页面。

    2. 资源组列表页面单击新建资源组,创建Serverless资源组,创建详情请参见使用Serverless资源组

  2. 准备数据库。(可选)

    若您已拥有Hologres数据库,则可跳过此步骤。

    1. 登录Hologres控制台,切换至目标地域后,单击左侧实例列表,进入Hologres引擎实例列表页面。

    2. 单击新增引擎实例,增购实时数仓Hologres独享实例。详情请参见购买Hologres

步骤一:新建数据源(可选

DataWorks数据集成功能基于数据源与资源组,在创建同步任务之前,需要提前创建好对应的数据源,在当前最佳实践中需要新增两个Hologres数据源,作为数据集成的来源数据源与目标数据源。

  1. 进入数据源页面。

    1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心

    2. 进入工作空间管理中心页面后,单击左侧导航栏的数据源 > 数据源列表,进入数据源页面。

  2. 在数据源列表页面,单击新增数据源。在新增数据源弹窗内单击Hologres数据源,进入创建Hologres数据源页面。

  3. Hologres数据源创建配置参数详情如下表:

    配置参数

    参数详情

    数据源名称

    自定义数据源名称。

    认证方式

    默认为阿里云账号及阿里云RAM角色。

    说明

    当前不支持通过AccessID、AccessKey认证方式创建数据源,如您存在特殊场景请提交工单咨询。

    所属云账号

    当前案例选择当前阿里云主账号

    地域

    选择Hologres引擎实例所在区域。

    Hologres实例

    选择对应的来源或去向引实例名。

    数据库名称

    填写相应的数据库名。

    默认访问身份

    • 当前实例开发环境默认为执行者

    • 当前实例生产环境选择阿里云主账号

    说明
    • 如您当前登录的为主账号:可以选择所有身份。

    • 如您当前登录的为子账号/RAM角色。

      • 具备AdministratorAccess:可以选择所有身份。

      • 不具备AdministratorAccess:仅能选择自己的身份。

    认证选项

    无认证

  4. 完成参数配置后,资源组进行连通性测试成功后单击完成创建即可正常创建数据源,若连通性测试失败,则需参考网络连通方案对资源组网络进行配置。

步骤二:创建同步任务

  1. 进入数据集成页面。

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

  1. 在数据集成页面的创建同步任务模块进行配置数据集成的来源与去向。

    • 来源:下拉选择Hologres。

    • 去向:下拉选择Hologres。

  2. 配置完成数据的来源与去向后,单击开始创建,进入数据集成的新建同步任务页面。

  3. 新建同步任务页面的配置如下表所示:

    模块

    配置项

    配置说明

    图示

    基本配置

    数据来源与去向

    默认为Hologres至Hologres。

    image

    新任务名称

    可自定义任务名。

    说明

    如果生成实时任务,此名称等同于实时任务名称

    同步类型

    下拉选择单表实时类型。

    同步步骤

    保持默认勾选:

    • 结构迁移

    • 全量同步

    • 增量同步

    网络与资源配置

    数据来源

    选择Hologres对应的来源数据源。

    image

    同步资源组

    选择准备环境阶段创建的资源组。

    数据去向

    选择Hologres对应的去向数据源。

    配置完成后,单击下一步,继续配置同步任务。

  4. 配置来源节点。

    单击来源组件Hologres,编辑Hologres来源信息。

    1. 选择需要同步的Hologres的Schema和表名。

    2. 单击右上角的数据采样,在数据输出预览对话框中指定好采样条数,单击开始采集按钮,可以对指定的Hologres进行数据采样,预览Hologres中的数据,为后续数据处理节点的数据预览和可视化配置提供输入。

      image

  5. 配置数据处理节点。

    单击image按钮可以增加数据处理节点,目前提供五种可选数据处理方式,您可根据需求进行顺序编排,在任务运行时会按照编排的先后顺序及逆行数据处理,这五种组件配置详情可参见:数据脱敏字符串替换数据过滤JSON解析字段编辑与赋值image

  6. 配置数据去向节点。

    单击页面上返回的Hologres,编辑Hologres去向源信息。

    1. 配置基本信息。

      • Schema:选择需要写入的Hologres Schema。

      • 目标表:选择需要写入的Hologres表是自动建表还是使用已有表,当前案例选择自动建表

      • 表名:填写或者选择要写入的Hologres表名。

      • 作业类型:可选择重放插入,当前案例选择重放

        说明
        • 重放是表示镜像功能,即源端INSERT一条记录,Hologres里也INSERT一条,源端UPDATE或者DELETE,Hologres里也相应UPDATE或者DELETE。

        • 插入是表示把Hologres当作流存储一样对待,全部使用insert保存源端过来的数据。

      • 写入冲突策略:可选择覆盖忽略,当前案例选择覆盖

      image

    2. 编辑表结构。当选择自动建表时,您需要单击编辑表结构按钮,在弹框中编辑表结构。同时,支持您单击根据上游节点输出列重新生成表结构按钮,自动根据上游节点输出列,生成表结构。您可以在自动生成的表结构中选择一列配置为主键。您可根据需要选择分区列(分区表会使用每一个分区值创建一个物理子表,一般情况下不需要选择分区字段),根据需要调整建表属性,单击保存按钮即可保存建表配置。

      说明

      Hologres表必须有主键,否则无法保存配置。

    3. 配置字段映射。

      保存建表结构选择已有表时,会自动按照同名映射原则生成上游列与Hologres表列之间的映射,可根据同名映射同行映射进行自动映射,也可在取消映射后根据需要手动调整映射规则。image

      说明
      • 不允许上游多列映射至下游同一列。

      • 当上游某列没有映射下游时,对应列的数据不会写入下游Hologres数据源之中。

  7. 配置上游流入动态字段处理策略

    上游流入动态字段处理策略用于控制当订阅到的源端Hologres表增量数据识别到有新增列时,目标端Hologres表的处理策略。同步任务根据源端输入数据内容的不同,能够解析出不同列名和列值,并输出到Hologres节点的列。image

  8. 高级参数配置

    单击右上角的高级参数配置,对同步任务运行时并行度进行配置,您可以根据Hologres表数据量和变更频率以及分片数量确定对应配置项取值。

    • 自动设置运行时配置:当需要自定义任务并行度时该配置项选择false。

    • Worker数:任务启动进程数。

    • 单Worker并发数:每个进程包含的线程数。image

  9. 模拟运行。

    完成上述所有任务配置后,您可以通过模拟运行功能,模拟整个任务针对少量采样数据的处理,都得到数据写入Hologres表后的结果。当任务存在配置错误、模拟运行过程中异常或者产生脏数据时会实时反馈出异常信息,能够帮助您快速评估任务配置的正确性和是否能得到预期结果。

    1. 单击页面右上角模拟运行,在弹出对话框中设置针对Hologres的采样参数(开始时间采样条数)。

    2. 单击开始采样得到采样数据。

    3. 单击预览按钮,模拟整个任务针对少量采样数据的处理。

    完成上述所有任务配置后,并完成模拟运行验证配置正确、写入结果符合预期,单击完成配置按钮,完成同步任务配置。

步骤三:运维同步任务

启动同步任务。

完成配置之后,界面会自动跳转到任务列表,您可以单击对应任务的启动按钮,启动同步任务。

image

查看同步任务运行状态

创建完成同步任务后,您可以在同步任务页面,找到已创建的同步任务,单击任务名称,查看任务的运行详情。任务详情分为以下三个部分:

  • 基本信息:您可以看到同步任务的数据源信息、绑定的资源组以及同步方案等信息。

  • 执行状态:Hologres到Hologres的实时同步任务分为结构迁移全量初始化以及实时数据同步三个步骤,您可以查看任务执行状态,以下为执行状态的详细信息:

    • 结构迁移:包含目标表的创建方式(已有表或自动建表),如果是自动建表,将会为您展示建表的DDL。

    • 全量初始化:包含对来源表与目标表数据的全量进度已写入数据条数全量启动时间全量完成时间的展示。

    • 实时同步:包含实时同步的统计信息,包含实时的集成进度DDL记录DML记录报警信息的展示。

  • 运行日志:数据同步采取了主从架构(master-worker架构),其中包含了MasterWorker,一个同步解决方案任务对应一个master和一个或多个worker,您可以到对应日志中查看相关步骤的详细信息。

    • Master:任务初始化、数据分片、worker的协调。

    • Worker:具体数据分片的读写、转换。

  • Failover:包含了数据同任务中出现的Failover事件的详细时间与报错信息,您可以查看同步任务在最近一次启动以来的异常恢复记录。

  • 资源利用率:对数据集成任务占用的资源状况进行监控及查看,可以根据实际使用率对资源占用做调整。

说明

Hologres单表实时同步至Hologres时,需开启源端的Hologres数据库的表Hologres Binlog,详情可参见订阅Hologres Binlog

任务重跑

  • 直接重跑。

    不修改任务配置,直接单击同步任务操作列的更多>重跑,重新运行一次从结构迁移到启动实时同步的流程。

  • 修改后重跑。

    编辑任务,进行修改操作后,单击完成。这个时候任务的操作会变成应用更新,点击应用更新会直接触发修改后的任务重跑,实时同步任务会按照新的配置运行。