摘要:大資料計算服務(MaxCompute,原名ODPS)是阿裡雲提供的一種快速、完全托管的EB級資料倉庫解決方案。本文章中阿裡雲MaxCompute公有雲技術支援人員劉力奪通過一個實驗向大家介紹了阿裡雲關系型資料庫産品RDS中的MySQL資料如何同步到MaxCompute,幫助使用者大體了解MaxCompute産品以及其資料同步過程。
直播視訊回顧:
MySQL/RDS資料如何同步到MaxCompute以下内容根據演講視訊以及PPT整理而成。
實驗方案概述
本實驗是對RDS同步資料到MaxCompute的一個初步講解。當企業需要利用MaxCompute進行資料開發時,如果資料不在MaxCompute而在RDS中,首先需要将RDS中的資料同步到MaxCompute。本實驗将以RDS(MySQL)為例,具體講解此過程的操作步驟以及一些容易遇到的問題,為企業的資料同步過程提供一些指導與幫助。
本次同步過程的方案分為以下兩個鍊路:1)通過DataWorks中的資料內建功能進行同步;2)通過DTS(資料傳輸服務)進行同步。
方案1需要在DataWorks中建立RDS和MaxCompute的資料源,利用抽象化的資料抽取插件(Reader),資料寫入插件(Writer)進行資料傳輸,達到資料同步的目的;
方案2利用DTS服務确定同步的資料來源及資料去向進行同步。
下圖是同步的方案流程圖,資料來源是RDS,包括兩個資料同步鍊路,分别是DataWorks和DTS,資料最終要同步到MaxCompute中。

下面分别介紹一下上圖方案中涉及到的一系列功能或平台:
•RDS
RDS是阿裡雲關系型資料庫,是一種穩定可靠、可彈性伸縮的線上資料庫服務。它基于阿裡雲分布式檔案系統和SSD盤高性能存儲,同時支援多種資料庫類型,如MySQL、SQL Server、PostgreSQL。
•資料內建
資料內建是DataWorks中的一個功能,是阿裡集團對外提供的穩定高效,彈性伸縮的資料同步平台,緻力于提供複雜網絡環境下、豐富的異構資料源之間資料高速穩定的資料移動及同步能力。
•DTS
DTS是一種資料傳輸服務,其支援RDBMS、NoSQL、OLAP等資料源間的資料互動。DTS具備極高的鍊路穩定性和資料可靠性。資料傳輸支援同/異構資料源之間的資料互動,提供資料遷移/訂閱/同步互動功能。
進行實驗之前需要進行操作環境的準備:如果使用DataWorks資料內建,需要確定MaxCompute服務已開通,DataWorks項目空間已開通;如果使用DTS,則需要購買DTS服務。
同步操作步驟
下面介紹資料同步到MaxCompute具體的操作步驟:
•DataWorks資料內建
1.以項目管理者身份登陸DataWorks控制台,單擊工作空間清單,找到對應的工作空間,單擊進入資料內建選項。
2.單擊任務清單同步資源管理中的資料源選項,在右上方選擇新增資料源。
3.因為做的是RDS同步到MaxCompute,是以需要分别添加兩種類型的資料源,首先添加資料來源,選擇新增資料庫類型為MySQL關系型資料庫。
4.資料源選擇完成後需要填寫資料源的配置項。資料源類型選擇阿裡雲資料庫(RDS),填寫對應RDS執行個體ID,RDS執行個體主賬号ID。填寫RDS中對應的MySQL資料庫名稱及密碼。最後測試連通性,顯示測試連通性成功證明配置成功。需要注意的一點是,在連接配接之前還需配置RDS的白名單,確定RDS可以被其他裝置通路,後面會詳細介紹。
5.新增MaxCompute類型的資料源。
6.配置MaxCompute類型資料源,填寫資料源名稱和适用環境(開發和生産),類型Endpoint,對應MaxCompute項目名稱,AccessKey ID以及AccessKey Secret。至此,建立資料源已經完成。
7.以開發者身份進入DataWorks管理控制台,找到對應項目後點選進入資料開發選項。
8.進入DataStudio(資料開發)頁面,建立業務流程(下圖紅色框),填寫業務流程名稱及描述。
9.在DataWorks中建立對應RDS中的表,并在業務流程下的資料內建選項中建立資料同步節點并送出。
10.配置資料來源與資料去向,需要配置的資料源是剛才添加的資料源,資料來源是MySQL,它的表是RDS中對應的表,目标資料源是MaxCompute,其他的如清理規則、空字元串是否為null的配置選項,預設選擇即可。
11.配置完成後可以儲存并運作同步資料節點,查詢MaxCompute的同步表中是否存在資料,且與RDS的資料一緻,判斷同步是否成功。
下面介紹如何利用DTS進行資料同步。
•DTS資料同步
1.首先需要登陸資料傳輸控制台,在左側導航欄中點選資料同步選項。
2.單擊完成後在控制台的右上方點選建立同步作業選項,購買DTS服務,前面提到使用DTS需要提前購買服務,指的便是這步操作。需要注意的一點是,所購買的DTS所屬的Region盡量要和RDS以及MaxCompute的Region一緻,為了避免後續操作中不必要的麻煩。
3.找到購買的DTS執行個體,單擊配置同步鍊路。需要填寫購買的RDS執行個體ID,RDS中資料庫的使用者名、密碼,需要同步到的MaxCompute項目名稱。配置同步鍊路完成之後單擊授權白名單并進入下一步選項,将DTS伺服器的IP位址自動添加到RDS執行個體和MaxCompute執行個體的白名單中,保障DTS伺服器能夠正常連接配接源和目标執行個體。
4.單擊下一步,允許将MaxCompute中項目的下述權限授予給DTS同步賬号。
5.配置同步政策和同步對象,配置完成之後單擊預檢查并啟動。隻有預檢查通過後才會成功啟動資料同步作業。如果預檢查失敗,可以根據提示詳情修複後重新進行預檢查。
DTS資料同步配置的參數主要有:1)同步通道的源執行個體及目标執行個體資訊;2)同步政策和同步對象。其中源執行個體及目标執行個體資訊的配置需要注意的是源執行個體的名稱和同步作業的資訊,還有執行個體類型、地區和ID,同步政策和同步對象的配置需要注意的是增量日志表分區定義、同步初始化、目标已存在的表的處理模式以及選擇同步對象。
6.在預檢查對話框顯示預檢查通過後,關閉預檢查對話框後同步作業正式開始。使用者可以在資料同步作業頁面檢視同步的狀态。
7.同步完成後,會在MaxCompute的生産環境中生成兩張表,一張以_base結尾,存儲同步到的資料,另一張以_log結尾,存儲增量資料和元資訊。使用者可以通過查詢表資料确定同步過程是否成功。
實驗注意事項及易遇到的問題
1.需要配置RDS的白名單,確定RDS可以被通路,否則會同步失敗。
2.關于配置RDS白名單,需要登陸到RDS控制台,找到對應Region下的RDS執行個體并進入。單擊設定白名單選項,這裡以内網位址的設定白名單為例。
3.預設IP位址為127.0.0.1,表示不允許任何裝置通路該RDS執行個體,需要修改允許其他裝置通路。
4.需要修改預設位址,填寫需要通路該執行個體的IP位址或IP段,如10.10.10.0/24,表示10.10.10.x的網段都可以通路該執行個體。0.0.0.0/0表示任意裝置都可以通路該執行個體,此設定有一定安全風險,請謹慎使用。
5.針對DataWorks資料內建的快速批量配置,在公共雲上,如果使用者想對RDS同步到MaxCompute進行快速批量配置,可以進行整庫遷移操作。如下圖所示,找到添加到的資料源,單擊整庫遷移批量配置的選項。
單擊整庫遷移批量配置的選項後,就可以進入到快速批量配置界面,需要選擇要同步的資料表、建立生産環境表、選擇同步方式等。下圖展示了快速批量配置界面待遷移表篩選區、遷移模式、并發控制區。
此外,還可以進行進階設定,提供表名稱,列名稱,列類型的映射轉換規則
6.當使用DTS同步時,會在同步的目标表中添加一些附加列。如果附加列和目标表中已有的列名稱沖突會導緻同步失敗,可以通過啟用新的附加列規則避免沖突,此配置會在舊版附加列的基礎上加上new_dts_sync_的字首。
歡迎加入“MaxCompute開發者社群2群”,點選連結申請加入或掃描二維碼
https://h5.dingtalk.com/invite-page/index.html?bizSource=____source____&corpId=dingb682fb31ec15e09f35c2f4657eb6378f&inviterUid=E3F28CD2308408A8&encodeDeptId=0054DC2B53AFE745