javascript
JSON数据从MongoDB迁移到MaxCompute最佳实践
2019獨角獸企業重金招聘Python工程師標準>>>
摘要:?本文為您介紹如何利用DataWorks數據集成直接從MongoDB提取JSON字段到MaxCompute。
數據及賬號準備
首先您需要將數據上傳至您的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添加數據源。本例中使用命令db.createUser({user:"bookuser",pwd:"123456",roles:["root"]}),新建用戶名為?bookuser,密碼為?123456,權限為root。
使用DataWorks提取數據到MaxCompute
進入DataWorks數據集成控制臺,新增MongoDB類型數據源。?
具體參數如下所示,測試數據源連通性通過即可點擊完成。由于本文中MongoDB處于VPC環境下,因此?數據源類型需選擇?有公網IP。?
訪問地址及端口號可通過在MongoDB管理控制臺點擊實例名稱獲取,如下圖所示。?
新建的同時,在DataWorks新建一個建表任務,用于存放JSON數據,本例中新建表名為mqdata。?
表參數可以通過圖形化界面完成。本例中mqdata表僅有一列,類型為string,列名為MQ data。?
完成上述新建后,您可以在圖形化界面進行數據同步任務參數的初步配置,如下圖所示。選擇目標數據源名稱為odps_first,選擇目標表為剛建立的mqdata。數據來源類型為MongoDB,選擇我們剛創建的數據源mongodb_userlog。完成上述配置后,?點擊轉換為腳本,跳轉到腳本模式。?
腳本模式代碼示例如下。 {"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客戶端中輸入命令運行。?
?
原文鏈接
轉載于:https://my.oschina.net/u/1464083/blog/2962209
總結
以上是生活随笔為你收集整理的JSON数据从MongoDB迁移到MaxCompute最佳实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【mongodb用户和身份认证管理】
- 下一篇: 比尔·盖茨:如果你想了解硅谷,就看《硅谷