使用 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.在执行详情中,可以看到同步的结果:

图片

常见问题

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

作者:梦实

原文链接

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


阿里云栖号
汇集阿里技术精粹-yq.aliyun.com

阿里云官网内容平台!

27.6k 声望
35.6k 粉丝
0 条评论
推荐阅读
基础篇丨链路追踪(Tracing)其实很简单
当周末躺在被窝里,点外卖时;双 11 的零点,疯狂提交订单时;假期和基友激情开黑,五杀超神…在这个精彩纷呈的互联网世界里,这些应用背后又隐藏着什么?每一次点击行为在 IT 世界里会流经哪些节点,调用哪些服务...

阿里云云栖号阅读 127

花了几个月时间把 MySQL 重新巩固了一遍,梳理了一篇几万字 “超硬核” 的保姆式学习教程!(持续更新中~)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

民工哥11阅读 1.1k

封面图
一次偶然机会发现的MySQL“负优化”
今天要讲的这件事和上述的两个sql有关,是数年前遇到的一个关于MySQL查询性能的问题。主要是最近刷到了一些关于MySQL查询性能的文章,大部分文章中讲到的都只是一些常见的索引失效场合,于是我回想起了当初被那个...

骑牛上青山8阅读 2.3k评论 2

云计算再爆新热点,SnapStart解决Serverless冷启动问题
Amazon Lambda无服务器函数作为亚马逊云科技主推的云原生技术,是不折不扣的云原生第一梯队。Lambda无服务器函数自2014年由亚马逊云科技推出以来,被越来越多的云原生应用所使用,到目前为止已经累计关联了100余...

思否编辑部5阅读 16.4k

阿里云被曝 UI 抄袭,复刻 SkyWalking Trace Profiling 页面
2023 年 1 月 3 日,SkyWalking 官网发布消息,称阿里云抄袭了 SkyWalking Trace Profiling 整体页面 UI,包括页面布局、文字和分析任务设置,唯一的区别仅有颜色方案。

鸣飞5阅读 5.4k

程序员英语学习指南
动机为什么程序员要学习英语?工作:我们每天接触的代码都是英文的、包括很多技术文档也是英文的学习:最新最前沿的技术最开始都是只有English版本就业:学好英语让你的就业范围扩大到全球,而不只限于国内目标读...

九旬6阅读 656

又一款内存数据库横空出世,比 Redis 更强,性能直接飙升一倍!杀疯了
KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如直接备份...

民工哥4阅读 838评论 1

封面图

阿里云官网内容平台!

27.6k 声望
35.6k 粉丝
宣传栏