本文以MaxCompute为例介绍如何将数据通过DataWorks同步至云数据库ClickHouse。
背景信息
您可以通过DataWorks,将支持的各种数据源数据离线同步至云数据库ClickHouse。离线同步支持的数据源类型,具体请参见支持的数据源与读写插件。
前提条件
已创建工作空间,引擎服务选择为MaxCompute。如何创建,请参见创建工作空间。
已创建并配置独享数据集成资源组。如何创建和配置,请参见新增和使用独享数据集成资源组。
已具备登录数据库的操作权限。具体信息,请参见准备权限。
如果RAM用户使用DataWorks,需要阿里云主账号为RAM用户配置合适的成员角色。如何配置,请参见为工作空间添加空间成员。
注意事项
云数据库ClickHouse仅支持独享数据集成资源组。
如果您需要对已同步过的表再次同步,请先执行
TRUNCATE TABLE <表名>;
语句,清空云数据库ClickHouse表中已同步的数据。
操作步骤
创建数据源。
您需要为MaxCompute和云数据库ClickHouse分别创建数据源。
说明如何创建数据源,请参见创建MaxCompute数据源和创建ClickHouse数据源。
创建MaxCompute表。
登录DataWorks控制台。
在左侧导航栏,单击工作空间。
在页面左上方,选择工作空间所在地域。
在工作空间列表页,在目标工作空间后的操作列,单击 。
在数据开发页面,将鼠标悬停至图标,单击 。
在新建表对话框中,选择路径,输入名称,本文以odptabletest1表名为例,单击新建。
在基本属性区域,配置各项参数。
单击工具栏中的DDL。
在DDL模式对话框中,输入如下建表语句,单击生成表结构。
CREATE TABLE IF NOT EXISTS odptabletest1 ( v1 TINYINT, v2 SMALLINT );
分别单击提交到开发环境和提交到生产环境。
写入MaxCompute表数据。
在数据开发页面,单击左侧导航栏的临时查询。
鼠标悬停至图标,单击 。
在新建节点对话框中,选择路径,输入名称。
单击确认。
在节点的编辑页面,输入如下语句,为MaxCompute表写入数据。
insert into odptabletest1 values (1,"a"),(2,"b"),(3,"c"),(4,"d");
单击工具栏中的图标。
在MaxCompute计算成本估计窗口,单击运行。
创建云数据库ClickHouse表。
在页面左上角,选择目标集群所在的地域。
在集群列表页面,选择目标集群对应类型的实例列表,单击目标集群ID。
在集群信息页面,请单击右上方导航栏的登录数据库。
在登录实例页面,输入数据库账号和密码,单击登录。
输入建表语句并单击执行(F8)。建表语句如下。
create table default.dataworktest ON CLUSTER default ( v1 Int, v2 String ) ENGINE = MergeTree ORDER BY v1;
说明云数据库ClickHouse表的结构类型需与MaxCompute对应。
创建业务流程。
如果您已有业务流程,可以忽略该步骤。
在数据开发页面,单击左侧导航栏的数据开发。
鼠标悬停至图标,选择新建业务流程。
在新建业务流程对话框,输入业务名称。
重要业务名称必须由大小写字母、中文、数字、下划线(_)以及小数点(.)组成,且不能超过128个字符。
单击新建。
创建离线同步节点。
展开业务流程,右键单击数据集成。
单击 。
在新建节点对话框中,输入名称,并选择路径。
重要节点名称必须由大小写字母、中文、数字、下划线(_)以及小数点(.)组成,且不能超过128个字符。
单击确认。
配置数据来源和数据去向。
配置数据来源:数据来源为DataWorks支持的任一数据源,本文以MaxCompute为例。
参数含义如下。
参数
描述
数据源
数据源的类型和名称。
生产项目名
默认不可以修改。
表
需要同步的表。
分区信息
如果您每日增量数据限定在对应日期的分区中,可以使用分区进行每日增量。例如,配置分区v17的值为${bizdate}。
说明DataWorks不支持对MaxCompute分区表进行字段映射,您需要单独配置分区字段。
说明参数配置的更多信息,请参见MaxCompute Reader。
配置数据去向:数据源的类型选择为ClickHouse。
参数含义如下。
参数
描述
数据源
数据源的类型与名称,其中,数据源的类型需选择ClickHouse。
表
需要同步的表。
主键或者唯一键冲突处理
固定选择为insert into(插入)。
导入前准备语句
执行数据同步任务之前率先执行的SQL语句。
导入后完成语句
执行数据同步任务之后执行的SQL语句。
批量插入字节大小
批量插入数据的最大字节数。
批量条数
批量插入数据的条数。
(可选)字段映射:您可以选择字段的映射关系,左侧的源头表字段和右侧的目标表字段为一一对应关系。
说明参数说明,具体请参见字段映射。
(可选)通道控制:配置作业速率上限和脏数据检查规则。
说明参数说明,具体请参见通道控制。
配置数据集成资源组。
单击右侧的数据集成资源组配置,选择已经创建好的独享数据集成资源组。
保存并运行数据同步任务。
单击工具栏中的图标,保存数据同步任务。
单击工具栏中的图标,运行数据同步任务。
验证同步结果
在页面左上角,选择目标集群所在的地域。
在集群列表页面,选择目标集群对应类型的实例列表,单击目标集群ID。
在集群信息页面,单击页面右上方的登录数据库。
在登录实例页面,输入数据库账号和密码,单击登录。
输入查询语句并单击执行(F8),确认数据是否同步成功,查询语句如下。
SELECT * FROM dataworktest;
查询结果如下。
说明当您执行查询语句并成功返回结果时,说明数据已从DataWorks同步至云数据库ClickHouse。