本文為您介紹如何通過DataWorksData Integration,將JSON資料從OSS遷移至MaxCompute,並使用MaxCompute內建字串函數GET_JSON_OBJECT提取JSON資訊。
前提條件
在DataWorks上完成建立商務程序,本例使用DataWorks簡單模式。詳情請參見建立商務程序。
將JSON檔案重新命名為尾碼為
.txt
的檔案,並上傳至OSS。本文中OSS Bucket地區為華東2(上海)。樣本檔案如下。{ "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 }
將JSON資料從OSS遷移至MaxCompute
新增OSS資料來源。詳情請參見配置OSS資料來源。
在DataWorks上建立資料表,用於儲存遷移的JSON資料。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料開發。
在資料開發頁面,滑鼠移至上方至表徵圖,單擊建立表 > 表。
在建立表對話方塊中,選擇相應的路徑,輸入名稱,單擊建立。
說明如果綁定多個執行個體,則需要選擇MaxCompute引擎執行個體。
在表的編輯頁面,單擊DDL。
在DDL模式對話方塊,輸入如下建表語句,單擊產生表結構。
create table mqdata (mq_data string);
在確認操作對話方塊中,單擊確認。
產生表結構後,在基本屬性模組輸入表的中文名,並分別單擊提交到開發環境和提交到生產環境。
說明如果您使用的是簡單模式的工作空間,僅單擊提交到生產環境即可。
建立離線同步節點。
進入資料開發頁面,按右鍵指定商務程序,選擇 。
在建立節點對話方塊中,輸入節點名稱,並單擊確認。
在頂部功能表列上,單擊表徵圖。
在指令碼模式下,單擊頂部功能表列上的表徵圖。
在匯入模板對話方塊中選擇來源類型、資料來源、目標類型及資料來源,並單擊確定。
修改JSON代碼後,單擊按鈕。
範例程式碼如下。
{ "type": "job", "steps": [ { "stepType": "oss", "parameter": { "fieldDelimiterOrigin": "^", "nullFormat": "", "compress": "", "datasource": "OSS_userlog", "column": [ { "name": 0, "type": "string", "index": 0 } ], "skipHeader": "false", "encoding": "UTF-8", "fieldDelimiter": "^", "fileFormat": "binary", "object": [ "applog.txt" ] }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "", "isCompress": false, "truncate": true, "datasource": "odps_first", "column": [ "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 } } }
結果驗證
建立ODPS SQL節點。
按右鍵商務程序,選擇 。
在建立函數對話方塊中,輸入函數名稱,單擊建立。
在ODPS SQL節點編輯頁面輸入如下語句。
--查詢表mq_data資料。 SELECT * from mqdata; --擷取JSON檔案中的EXPENSIVE值。 SELECT GET_JSON_OBJECT(mqdata.MQdata,'$.expensive') FROM mqdata;
單擊表徵圖運行代碼。
您可以在作業記錄查看運行結果。