本文為您介紹如何通過DataWorks的Data Integration功能,將從MongoDB提取的JSON欄位遷移至MaxCompute。
前提條件
新增MaxCompute資料來源。詳情請參見建立MaxCompute資料來源。
在DataWorks上完成建立商務程序,本例使用DataWorks簡單模式。詳情請參見建立商務程序。
在MongoDB上準備測試資料
帳號準備。
在資料庫內建立使用者,用於DataWorks添加資料來源。本樣本執行如下命令。
db.createUser({user:"bookuser",pwd:"123456",roles:["user1"]})
建立使用者名稱為bookuser,密碼為123456,角色為任意擁有訪問資料許可權的角色。
資料準備。
將資料上傳至MongoDB資料庫。本樣本使用阿里雲的ApsaraDB for MongoDB,網路類型為VPC(需申請公網地址,否則無法與DataWorks公用資源群組互連),測試資料如下。
{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } }, "expensive": 10 }
在MongoDB的DMS控制台,本樣本使用的資料庫為admin,集合為userlog。執行如下命令,查看已上傳的資料。
db.userlog.find().limit(10)
通過DataWorks將JSON資料從MongoDB遷移至MaxCompute
登入DataWorks控制台。
在DataWorks上建立目標表。用以接收從MongoDB遷移的資料。
按右鍵已建立的商務程序,選擇 。
在建立表頁面,選擇引擎類型並輸入表名。
在表的編輯頁面,單擊DDL。
在DDL模式對話方塊,輸入建表語句,單擊產生表結構。
重要建表語句中的表名稱請與在建立表輸入的表名一致。
create table mqdata (mqdata string);
單擊提交到生產環境。
新增MongoDB資料來源,詳情請參見配置MongoDB資料來源。
建立離線同步節點。
進入資料開發頁面,按右鍵指定商務程序,選擇 。
在建立節點對話方塊中,輸入節點名稱,並單擊確認。
在頂部功能表列上,單擊表徵圖。
在指令碼模式下,單擊頂部功能表列上的表徵圖。
在匯入模板對話方塊中選擇來源類型、資料來源、目標類型及資料來源,並單擊確定。
輸入如下指令碼。
{ "type": "job", "steps": [ { "stepType": "mongodb", "parameter": { "datasource": "mongodb_userlog",//資料來源名稱。 "column": [ { "name": "store.bicycle.color", //JSON欄位路徑,本例中提取color值。 "type": "document.String" //非一層子屬性以最終擷取的類型為準。假如您選取的JSON欄位為一級欄位,例如本例中的expensive,則直接填寫string即可。 } ], "collectionName": "userlog" //集合名稱。 }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "", "isCompress": false, "truncate": true, "datasource": "odps_source",// MaxCompute資料來源名稱 "column": [ "mqdata" //MaxCompute表列名。 ], "emptyAsNull": false, "table": "mqdata" }, "name": "Writer", "category": "writer" } ], "version": "2.0", "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] }, "setting": { "errorLimit": { "record": "" }, "speed": { "concurrent": 2, "throttle": false, } } }
單擊表徵圖運行代碼。
您可以在作業記錄查看運行結果。
驗證結果
按右鍵商務程序,選擇 。
在建立節點對話方塊中輸入節點名稱,並單擊確認。
在ODPS SQL節點編輯頁面輸入如下語句。
SELECT * from mqdata;
單擊表徵圖運行代碼。
您可以在作業記錄查看運行結果。