本文為您介紹如何使用獨享Data Integration資源,將您在ECS上自建的MySQL資料庫中的資料,遷移到MaxCompute。
前提條件
已擁有至少一個綁定Virtual Private Cloud的ECS(請勿使用傳統網路),並在ECS上安裝好MySQL資料庫,資料庫中已建立好使用者和測試資料。本文中ECS自建MySQL的測試資料建立語句如下。
CREATE TABLE IF NOT EXISTS good_sale( create_time timestamp, category varchar(20), brand varchar(20), buyer_id varchar(20), trans_num varchar(20), trans_amount DOUBLE, click_cnt varchar(20) ); insert into good_sale values('2018-08-21','coat','brandA','lilei',3,500.6,7), ('2018-08-22','food','brandB','lilei',1,303,8), ('2018-08-22','coat','brandC','hanmeimei',2,510,2), ('2018-08-22','bath','brandA','hanmeimei',1,442.5,1), ('2018-08-22','food','brandD','hanmeimei',2,234,3), ('2018-08-23','coat','brandB','jimmy',9,2000,7), ('2018-08-23','food','brandA','jimmy',5,45.1,5), ('2018-08-23','coat','brandE','jimmy',5,100.2,4), ('2018-08-24','food','brandG','peiqi',10,5560,7), ('2018-08-24','bath','brandF','peiqi',1,445.6,2), ('2018-08-24','coat','brandA','ray',3,777,3), ('2018-08-24','bath','brandG','ray',3,122,3), ('2018-08-24','coat','brandC','ray',1,62,7) ;
請記錄好您的ECS的私人IP、專用網路和虛擬交換器資訊。
ECS上的安全性群組已放通MySQL資料庫所使用的連接埠(預設為3306),詳情請參見添加安全性群組規則,請記錄好您的安全性群組名稱。
已成功建立DataWorks工作空間。本文使用DataWorks簡單模式工作空間,計算引擎為MaxCompute。請保證您的ECS與DataWorks工作空間處於同一個地區,建立方法請參見建立工作空間。
已完成獨享Data Integration資源的購買,並且綁定了ECS所在的Virtual Private Cloud。請注意獨享資源群組必須與ECS同一可用性區域,詳情請參見新增和使用獨享Data Integration資源群組。完成綁定後,您可以在查看到您的獨享資源群組。
在
處查看專用網路、交換器和安全性群組資訊是否和ECS一致。
背景資訊
獨享資源可以保障您的資料快速、穩定地傳輸。您購買的獨享Data Integration資源和需要訪問的資料來源(即本文中的ECS自建MySQL資料庫)必須在同地區同可用性區域,且和DataWorks工作空間同地區。
操作步驟
在DataWorks上建立MySQL資料來源。
進入資料來源頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心。
進入工作空間管理中心頁面後,單擊左側導覽列的資料來源,進入資料來源頁面。
單擊資料來源頁面的新增資料來源。
在新增資料來源對話方塊,單擊MySQL。
在新增MySQL資料來源對話方塊中,配置各項參數,詳情請參見配置MySQL資料來源。
本文以串連串模式為例,在JDBC URL處輸入您剛剛記錄的ECS私人地址和MySQL的預設連接埠號碼3306。
說明當前VPC環境下的自建MySQL資料來源暫不支援測試連通性,因此連通性測試失敗是正常現象。
單擊相應資源群組後的測試連通性。
資料同步時,一個任務只能使用一種資源群組。您需要在每種資源群組上單獨測試連通性,以保證同步任務使用的Data Integration資源群組能夠與資料來源連通,否則將無法正常執行資料同步任務。詳情請參見配置資源群組與網路連通。
測試連通性通過後,單擊完成。
建立MaxCompute表。
您需要通過DataWorks建立一個表,用於接收來自MySQL的測試資料。
單擊左上方的表徵圖,選擇 。
建立一個商務程序,詳情請參見建立周期商務程序。
按右鍵建立的商務程序,選擇 。
輸入您的MaxCompute表名稱,本例中使用和MySQL資料庫表一樣的名稱good_sale。單擊DDL後,輸入您的建表語句並產生表結構。
本例中使用的建表語句如下,請注意資料類型的轉換。
CREATE TABLE IF NOT EXISTS good_sale( create_time string, category STRING, brand STRING, buyer_id STRING, trans_num BIGINT, trans_amount DOUBLE, click_cnt BIGINT );
輸入表的中文名後,單擊提交到生產環境,完成MaxCompute表good_sale的建立。
配置Data Integration任務。
按右鍵商務程序,選擇 ,建立一個Data Integration任務。
選擇您的資料來源為您剛添加的MySQL資料來源,資料去向為預設MaxCompute資料來源odps_first,單擊轉換指令碼切換Data Integration任務為指令碼模式。
此時,如果產生報錯或您無法選擇資料來源的表,都屬於正常現象,直接轉換為指令碼模式即可。
單擊頁面右側的Data Integration資源群組配置,選中已購買的獨享資源群組。
如果未切換任務資源群組為Data Integration獨享資源,後續您的任務將無法成功運行。
填寫Data Integration任務指令碼內容如下。
{ "type": "job", "steps": [ { "stepType": "mysql", "parameter": { "column": [//源列名 "create_time", "category", "brand", "buyer_id", "trans_num", "trans_amount", "click_cnt" ], "connection": [ { "datasource": "shuai",//來源資料源 "table": [ "good_sale"//來源資料庫表名,此處必須為方括弧數組格式。 ] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "", "truncate": true, "datasource": "odps_first",//目標資料來源 "column": [//目標列名 "create_time", "category", "brand", "buyer_id", "trans_num", "trans_amount", "click_cnt" ], "emptyAsNull": false, "table": "good_sale"//目標表名 }, "name": "Writer", "category": "writer" } ], "version": "2.0", "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] }, "setting": { "errorLimit": { "record": "0" }, "speed": { "throttle": false, "concurrent": 2 } } }
單擊運行,您可以在下方的作業記錄查看資料是否已傳輸到MaxCompute。
執行結果
您可以建立一個ODPS SQL類型的節點,用於查詢當前MaxCompute表中的資料。
輸入您的查詢語句select * from good_sale ;
,單擊運行,即可看到當前已傳入MaxCompute表中的資料。