本文以MaxCompute为例介绍如何将数据通过DataWorks同步至云数据库ClickHouse。
背景信息
您可以通过DataWorks,将支持的各种数据源数据离线同步至云数据库ClickHouse。离线同步支持的数据源类型,具体请参见支持的数据源与读写插件。
注意事项
- 云数据库ClickHouse仅支持独享数据集成资源组。DataWorks独享数据集成资源组为付费服务,计费详情,请参见独享数据集成资源组的性能指标和计费标准。
- 如果您需要对已同步过的表再次同步,请首先登录云数据库ClickHouse控制台,使用
truncate table <表名>;
清空云数据库ClickHouse表中已同步的数据。
前提条件
- 已创建工作空间,引擎服务选择为MaxCompute。如何创建,请参见创建工作空间。
- 已创建并配置独享数据集成资源组。如何创建和配置,请参见新增和使用独享数据集成资源组。
- 如果RAM用户使用DataWorks,需要阿里云主账号为RAM用户配置合适的成员角色。如何配置,请参见添加工作空间成员和角色。
操作步骤
- 配置数据源。您需要为MaxCompute和云数据库ClickHouse分别配置数据源。说明 如何配置数据源,请参见配置MaxCompute数据源和配置ClickHouse数据源。
- 创建MaxCompute表。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的进入数据开发。
- 在数据开发页面,鼠标悬停至
图标,单击MaxCompute > 表。
- 在新建表对话框中,输入表名,本文以odptabletest1表名为例。
- 单击新建。
- 在基本属性区域,配置各项参数。
参数含义如下。
名称 描述 中文名 MaxCompute表的中文名称。 一级主题 新建表所处的一级目标文件夹名称。 说明 一级、二级主题仅仅是DataWorks上文件夹的摆放形式,目的是为了您能更好地管理您的表。二级主题 新建表所处的二级目标文件夹名称。 新建主题 单击新建主题,进入主题管理页面,您可以在该页面创建一级主题、二级主题。 新建主题后,单击
图标,即可同步新建的主题。
描述 对新建表进行简单描述。 - 单击工具栏中的DDL模式。
- 在DDL模式对话框中,输入如下建表语句,单击生成表结构。
CREATE TABLE IF NOT EXISTS odptabletest1 ( v1 TINYINT, v2 SMALLINT );
- 在确认操作对话框中,单击确认。
- 单击工具栏的提交到生产环境。
- 在弹出的提交生产确认对话框中,勾选我已悉知风险,确认提交。
- 单击确认。
- 写入MaxCompute表数据。
- 在数据开发页面,单击左侧导航栏的临时查询。
- 鼠标悬停至
图标,单击新建 > ODPS SQL。
- 在新建节点对话框中,输入节点名称,并选择目标文件夹。
- 单击提交。
- 在节点的编辑页面,输入如下语句,为MaxCompute表写入数据。
insert into odptabletest1 values (1,"a"),(2,"b"),(3,"c"),(4,"d");
- 单击工具栏中的
图标。
- 在MaxCompute计算成本估计窗口,单击运行。
- 创建云数据库ClickHouse表。
- 使用阿里云账号登录云数据库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语句。 批量插入字节大小 批量插入数据的最大字节数。 批量条数 批量插入数据的条数。 - (可选)字段映射:您可以选择字段的映射关系,左侧的源头表字段和右侧的目标表字段为一一对应关系。说明 参数说明,具体请参见字段映射。
- (可选)通道控制:配置作业速率上限和脏数据检查规则。说明 参数说明,具体请参见通道控制。
- 配置数据来源:数据来源为DataWorks支持的任一数据源,本文以MaxCompute为例。
- 配置数据集成资源组。单击右侧的数据集成资源组配置,选择已经创建好的独享数据集成资源组。
- 保存并运行数据同步任务。
- 单击工具栏中的
图标,保存数据同步任务。
- 单击工具栏中的
图标,运行数据同步任务。
- 单击工具栏中的
- 查询云数据库ClickHouse表。
- 登录云数据库ClickHouse控制台。
- 在集群列表页面,选择默认实例列表或云原生版本实例列表,单击目标集群ID。
- 如果您的集群是社区兼容版,请单击右上方导航栏的登录数据库。如果您的集群是云原生版,请单击集群计算组操作列的登录。
- 在登录实例页面,输入数据库账号和密码,单击登录。
- 输入查询语句并单击执行(F8)。本文使用下面的示例语句。
select * from dataworktest;
查询结果如下。