摘要: 本文爲您介紹如何利用DataWorks數據集成直接從MongoDB提取JSON字段到MaxCompute。html
首先您須要將數據上傳至您的MongoDB數據庫。本例中使用阿里雲的雲數據庫 MongoDB 版,網絡類型爲VPC(需申請公網地址,不然沒法與DataWorks默認資源組互通),測試數據以下。mongodb
{ "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添加數據源。本例中使用命令db.createUser({user:"bookuser",pwd:"123456",roles:["root"]})
,新建用戶名爲 bookuser,密碼爲 123456,權限爲root。網絡
進入DataWorks數據集成控制檯,新增MongoDB類型數據源。
測試
具體參數以下所示,測試數據源連通性經過便可點擊完成。因爲本文中MongoDB處於VPC環境下,所以 數據源類型需選擇 有公網IP。
訪問地址及端口號可經過在MongoDB管理控制檯點擊實例名稱獲取,以下圖所示。
阿里雲
{ "type": "job", "steps": [ { "stepType": "mongodb", "parameter": { "datasource": "mongodb_userlog", //數據源名稱 "column": [ { "name": "store.bicycle.color", //JSON字段路徑,本例中提取color值 "type": "document.document.string" //本欄目的字段數需和name一致。假如您選取的JSON字段爲一級字段,如本例中的expensive,則直接填寫string便可。 } ], "collectionName //集合名稱": "userlog" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "", "isCompress": false, "truncate": true, "datasource": "odps_first", "column": [ //MaxCompute表列名 "mqdata" ], "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, "dmu": 1 } } }完成上述配置後,點擊運行接便可。運行成功日誌示例以下所示。
在您的業務流程中新建一個ODPS SQL節點。
您能夠輸入 SELECT * from mqdata;
語句,查看當前mqdata表中數據。固然這一步您也能夠直接在MaxCompute客戶端中輸入命令運行。
spa
原文連接3d