使用 DataWorks 将 PolarDB-X 中的数据同步到 MaxCompute

MaxCompute是适用于数据分析场景的云数据仓库,适用于大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析、用户特征和兴趣挖掘等。大数据开发治理平台 DataWorks 基于MaxCompute / EMR / MC-Hologres 等大数据计算引擎,为客户提供专业高效、安全可靠的一站式大数据开发与治理平台。本文介绍 PolarDB-X 与 MaxCompute 系统的快速对接方式,方便您对在线业务数据进行大数据分析。

前提

创建或者使用已有的PolarDB-X实例
DataWorks中创建好项目
MaxCompute中建好集群
在DataWorks中准备好MaxCompute的数据源
以上这些请自行参考相关文档完成。

准备测试数据

我们首先在PolarDB-X中创建一些测试数据。

1.建库,并创建一张表:

create database d1 mode=auto;
use d1;
CREATE TABLE `t1` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `c1` int(11) DEFAULT NULL,
        `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY (`Id`)
);

2.制造一些数据:

insert into t1 values (null,rand()*20000,now());
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;
insert into t1 select null,rand()*20000,now() from t1;

创建数据源

为了让DataWorks能读取PolarDB-X的数据,需要创建一个数据源。

1.进入DataWorks控制台,选择数据集成:

2.点击左边的数据源:

3.点击右上角新增数据源:

4.选择DRDS:

5.数据源类型选择连接串模式,将PolarDB-X实例的内网地址拼在JDBC URL中,并测试连通性通过:

注意,这里前提了已经有了独享数据集成资源组,并已打通了与该PolarDB-X实例之间的网络。如果未满足该前提,需要先额外完成下面的支线任务:

支线:创建独享数据集成资源组并打通网络

1.在没有独享数据集成资源组的情况下,需要先创建一个独享数据集成资源组:

2.将该独享数据集成资源组的网络与我们的PolarDB-X实例打通,操作入口地址:https://workbench.data.aliyun.com/?xconsole=true#/resourcelist/?region=cn-hangzhou&tab=exclusive

3.点击网络设置:

4.点击新增绑定:

5.选择PolarDB-X实例对应的网络信息,重点是专有网络、可用区、交换机。安全组暂不明实际意义,可以随便选一个。

6.记录绑定网络后,该资源组的交换机网段:

7.在PolarDB-X控制台上,将上面记录的网段添加到白名单中:

8.注意,更复杂的网络模型(例如跨账号等),请参考DataWorks官方文档提供的各种解决方案。

创建同步任务

这里以创建一个“一次性全量同步到MaxCompute任务”为例。

1.在同步任务菜单中,点击新建任务:

2.数据来源选择DRDS,数据去向选择MaxCompute,同步方案选择“整库离线同步至MaxCompute(一次性全量)”,点击下一步:

3.选择之前创建的数据源、资源组,以及MaxCompute的信息,并测试通过连通性:

4.选择要同步的表:

5.刷新下表映射:

6.一路下一步,最后执行同步任务:

7.在执行详情中,可以看到同步的结果:

常见问题

  1. 对于PolarDB-X 1.0(DRDS)与PolarDB-X 2.0均适用于本文中的方法
  2. 对于PolarDB-X 2.0,mode=auto于mode=drds的数据库均适用于本文中的方法
  3. 在DataWorks中,一律选择DRDS。(由于PolarDB-X和MySQL的高度兼容,选择MySQL也没啥问题,但选择DRDS我们内部做过对应的优化,性能会更好)
  4. 本文中的PolarDB-X实例版本为:5.4.15-16704996,请尽可能不低于此版本,老的版本中INFORMATION_SCHEMA存在一些兼容性问题,可能无法与DataWorks工作的很好
  5. 对于开源自建的PolarDB-X实例,同样适用于本文中的方法。核心在于使用连接串来创建数据源,并打通网络。
  6. 通过DataWorks将数据同步到其他地方也是大同小异,参考本文方法即可

作者:梦实

原文链接

本文为阿里云原创内容,未经允许不得转载。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章