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

背景信息

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

注意事项

前提条件

操作步骤

  1. 配置数据源。
    您需要为MaxCompute和云数据库ClickHouse分别配置数据源。
    说明 如何配置数据源,请参见配置MaxCompute数据源配置ClickHouse数据源
  2. 创建MaxCompute表。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
    4. 数据开发页面,鼠标悬停至新建图标,单击MaxCompute >
    5. 新建表对话框中,输入表名,本文以odptabletest1表名为例。
    6. 单击新建
    7. 基本属性区域,配置各项参数。
      基本属性

      参数含义如下。

      名称 描述
      中文名 MaxCompute表的中文名称。
      一级主题 新建表所处的一级目标文件夹名称。
      说明 一级、二级主题仅仅是DataWorks上文件夹的摆放形式,目的是为了您能更好地管理您的表。
      二级主题 新建表所处的二级目标文件夹名称。
      新建主题 单击新建主题,进入主题管理页面,您可以在该页面创建一级主题、二级主题。

      新建主题后,单击刷新图标,即可同步新建的主题。

      描述 对新建表进行简单描述。
    8. 单击工具栏中的DDL模式
    9. DDL模式对话框中,输入如下建表语句,单击生成表结构
      CREATE TABLE IF NOT EXISTS odptabletest1
      (    
      v1  TINYINT,    
      v2  SMALLINT                
      );
    10. 确认操作对话框中,单击确认
    11. 单击工具栏的提交到生产环境
    12. 在弹出的提交生产确认对话框中,勾选我已悉知风险,确认提交
    13. 单击确认
  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. 集群列表页面,单击目标集群ID。
    3. 单击右上方导航栏的登录数据库
    4. 输入建表语句并单击执行(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. 单击工具栏中的运行图标,运行数据同步任务。运行日志
  10. 查询云数据库ClickHouse表。
    1. 登录云数据库ClickHouse控制台
    2. 集群列表页面,单击目标集群ID。
    3. 单击右上方导航栏的登录数据库
    4. 输入查询语句并单击执行(F8)。本文使用下面的示例语句。
      select * from dataworktest;
      查询结果如下。查询结果