本文為您介紹如何通過DataWorks的數據集成功能,將從MongoDB提取的JSON字段遷移至MaxCompute。
前提條件
在DataWorks上完成創建業務流程,本例使用DataWorks簡單模式。詳情請參見創建業務流程。
在MongoDB上準備測試數據
賬號準備。
在數據庫內新建用戶,用于DataWorks添加數據源。本示例執行如下命令。
db.createUser({user:"bookuser",pwd:"123456",roles:["user1"]})
新建用戶名為bookuser,密碼為123456,角色為任意擁有訪問數據權限的角色。
數據準備。
將數據上傳至MongoDB數據庫。本示例使用阿里云的云數據庫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_first", "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;
單擊圖標運行代碼。
您可以在運行日志查看運行結果。