使用DataWorks同步数据

本文以MaxCompute为例介绍如何将数据通过DataWorks同步至云数据库ClickHouse

背景信息

您可以通过DataWorks,将支持的各种数据源数据离线同步至云数据库ClickHouse。离线同步支持的数据源类型,具体请参见支持的数据源与读写插件

前提条件

注意事项

  • 云数据库ClickHouse仅支持独享数据集成资源组。

  • 如果您需要对已同步过的表再次同步,请先执行TRUNCATE TABLE <表名>;语句,清空云数据库ClickHouse表中已同步的数据。

操作步骤

  1. 创建数据源。

    您需要为MaxCompute和云数据库ClickHouse分别创建数据源。

    说明

    如何创建数据源,请参见创建MaxCompute数据源创建ClickHouse数据源

  2. 创建MaxCompute表。

    1. 登录DataWorks控制台

    2. 在左侧导航栏,单击工作空间

    3. 在页面左上方,选择工作空间所在地域

    4. 工作空间列表页,在目标工作空间后的操作列,单击快速进入 > 数据开发

    5. 数据开发页面,将鼠标悬停至新建图标,单击新建表 > MaxCompute >

    6. 新建表对话框中,选择路径,输入名称,本文以odptabletest1表名为例,单击新建

    7. 基本属性区域,配置各项参数。

      基本属性

      参数含义如下。

      配置项

      说明

      中文名

      定义表的中文名称。

      主题

      DataWorks的主题相当于文件夹。定义表所属的一级文件夹与二级文件夹。您可基于业务用途对表进行归类,将同类表挂载至相同文件夹中。

      说明

      一级主题、二级主题仅为DataWorks上表管理文件夹的呈现形式,旨在方便您更好地管理表。 后续在表管理页面可通过主题快速查找当前表,如果没有可用的主题,可参考定义表主题新建。

    8. 单击工具栏中的DDL

    9. DDL模式对话框中,输入如下建表语句,单击生成表结构

      CREATE TABLE IF NOT EXISTS odptabletest1
      (    
      v1  TINYINT,    
      v2  SMALLINT                
      );
    10. 分别单击提交到开发环境提交到生产环境

  3. 写入MaxCompute表数据。

    1. 数据开发页面,单击左侧导航栏的临时查询

    2. 鼠标悬停至新建图标,单击新建 > ODPS SQL

    3. 新建节点对话框中,选择路径,输入名称

    4. 单击确认

    5. 在节点的编辑页面,输入如下语句,为MaxCompute表写入数据。

      insert into odptabletest1 values (1,"a"),(2,"b"),(3,"c"),(4,"d");
    6. 单击工具栏中的执行图标。

    7. MaxCompute计算成本估计窗口,单击运行

  4. 创建云数据库ClickHouse表。

    1. 登录云数据库ClickHouse控制台

    2. 在页面左上角,选择目标集群所在的地域。

    3. 集群列表页面,选择目标集群对应类型的实例列表,单击目标集群ID。

    4. 集群信息页面,请单击右上方导航栏的登录数据库

    5. 登录实例页面,输入数据库账号和密码,单击登录

    6. 输入建表语句并单击执行(F8)。建表语句如下。

      create table default.dataworktest ON CLUSTER default (
      v1 Int, 
      v2 String
      ) ENGINE = MergeTree ORDER BY v1;
      说明

      云数据库ClickHouse表的结构类型需与MaxCompute对应。

  5. 创建业务流程。

    如果您已有业务流程,可以忽略该步骤。

    1. 数据开发页面,单击左侧导航栏的数据开发

    2. 鼠标悬停至新建图标,选择新建业务流程

    3. 新建业务流程对话框,输入业务名称

      重要

      业务名称必须由大小写字母、中文、数字、下划线(_)以及小数点(.)组成,且不能超过128个字符。

    4. 单击新建

  6. 创建离线同步节点。

    1. 展开业务流程,右键单击数据集成

    2. 单击新建节点 > 离线同步

    3. 新建节点对话框中,输入名称,并选择路径

      重要

      节点名称必须由大小写字母、中文、数字、下划线(_)以及小数点(.)组成,且不能超过128个字符。

    4. 单击确认

  7. 配置数据来源和数据去向。

    1. 配置数据来源:数据来源为DataWorks支持的任一数据源,本文以MaxCompute为例。

      选择数据源

      参数含义如下。

      参数

      描述

      数据源

      数据源的类型和名称。

      生产项目名

      默认不可以修改。

      需要同步的表。

      分区信息

      如果您每日增量数据限定在对应日期的分区中,可以使用分区进行每日增量。例如,配置分区v17的值为${bizdate}

      说明

      DataWorks不支持对MaxCompute分区表进行字段映射,您需要单独配置分区字段。

      说明

      参数配置的更多信息,请参见MaxCompute Reader

    2. 配置数据去向:数据源的类型选择为ClickHouse

      选择数据源

      参数含义如下。

      参数

      描述

      数据源

      数据源的类型与名称,其中,数据源的类型需选择ClickHouse。

      需要同步的表。

      主键或者唯一键冲突处理

      固定选择为insert into(插入)

      导入前准备语句

      执行数据同步任务之前率先执行的SQL语句。

      导入后完成语句

      执行数据同步任务之后执行的SQL语句。

      批量插入字节大小

      批量插入数据的最大字节数。

      批量条数

      批量插入数据的条数。

    3. (可选)字段映射:您可以选择字段的映射关系,左侧的源头表字段和右侧的目标表字段为一一对应关系。

      字段映射

      说明

      参数说明,具体请参见字段映射

    4. (可选)通道控制:配置作业速率上限和脏数据检查规则。

      通道控制

      说明

      参数说明,具体请参见通道控制

  8. 配置数据集成资源组。

    单击右侧的数据集成资源组配置,选择已经创建好的独享数据集成资源组集成资源组配置

  9. 保存并运行数据同步任务。

    1. 单击工具栏中的保存图标,保存数据同步任务。

    2. 单击工具栏中的运行图标,运行数据同步任务。p353650.png

验证同步结果

  1. 登录云数据库ClickHouse控制台

  2. 在页面左上角,选择目标集群所在的地域。

  3. 集群列表页面,选择目标集群对应类型的实例列表,单击目标集群ID。

  4. 集群信息页面,单击页面右上方的登录数据库

  5. 登录实例页面,输入数据库账号和密码,单击登录

  6. 输入查询语句并单击执行(F8),确认数据是否同步成功,查询语句如下。

    SELECT * FROM dataworktest;

    查询结果如下。查询结果

    说明

    当您执行查询语句并成功返回结果时,说明数据已从DataWorks同步至云数据库ClickHouse