使用 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將數據同步到其他地方也是大同小異,參考本文方法即可

作者:夢實

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

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