一、Json Input的介紹
Kettle (Pentaho Data Integration (PDI)) 是一種商業領域下的 Open Source 的 ETL 工具,支持多種數據格式的存取轉換,其中一種數據源是Json文件,由此而生的Json Input 是指可輸入Json數據的輸入組件。Json的數據格式具有極大的靈活性,不受數據源的限制,允許用戶在各種數據格式中進行數據處理,因此Json Input的重要性也日益突顯。
在Pentaho官網可以找到完整的PDI安裝包以及json input的相關說明文檔。
二、Json Input的配置與使用
通過打開Kettle軟體中的工具菜單欄,選擇Json Input組件,將組件拖入轉換工程中的工具欄,然後就可以開始配置了。Json Input 的配置主要分為兩個方面:
1、數據源配置
Json Input 數據源的配置包括文件路徑、源文件名和數據格式三個方面,代碼如下:
{
"fileName": "/path/demo.json",
"jsonFieldName": "JsonField",
"jsonPath": [ "/name", "/id", "/address" ],
"encoding": "UTF-8",
"includeFilename": "N",
"rowsLimit": 0,
"dateFormatLenient": "Y",
"dateFormatLocale": "",
"dateFormatTimeZone": ""
}
上述代碼中,fileName 代表數據文件路徑,jsonFieldName 表示欄位名,jsonPath 則代表需要獲取的數據節點,encoding 則是文件編碼,中括弧中的 JsonPath 表示需要抽取的關鍵節點,如上句代碼中示例的 /name 代表獲取 JSON 中的名稱欄位,/id 則代表獲取 JSON 中的 ID欄位,/address 代表獲取 JSON 中的地址欄位,可以通過逗號隔開從而提取出多個欄位。
2、目標源配置
如同其他輸入組件,Json Input在輸出方面也存在兩種選擇:文件輸出和資料庫輸出。關於文件輸出方面的代碼如下:
{
"targetFile": "/path/demo.txt",
"createParentFolder": true,
"append": false,
"gzip": false,
"escapeChr": "",
"enclosure": "\"",
"delimiter": ";",
"headerEnabled": true,
"format": "DOS",
"enclosureForced": true,
"endLine": "\n",
"fields": [
{
"header": "Name",
"jsonPath": "/name",
"type": "String",
"length": 255,
"precision": -1,
"dateFormat": "",
"default": "",
"nullString": "",
"currencySymbol": "",
"decimalSymbol": "",
"groupingSymbol": ""
},
{
"header": "Id",
"jsonPath": "/id",
"type": "Number",
"length": -1,
"precision": -1,
"dateFormat": "",
"default": "",
"nullString": "",
"currencySymbol": "",
"decimalSymbol": ".",
"groupingSymbol": ","
},
{
"header": "Address",
"jsonPath": "/address",
"type": "String",
"length": 255,
"precision": -1,
"dateFormat": "",
"default": "",
"nullString": "",
"currencySymbol": "",
"decimalSymbol": "",
"groupingSymbol": ""
}
]
}
上述代碼中,targetFile 代表輸出的目標文件路徑,createParentFolder 是否創建父文件夾,fields 代表需要導出的欄位配置,type 代表欄位的數據類型。
三、Json Input在實際開發中的應用
Json Input 的應用非常廣泛,主要可以應用在數據分析和數據處理兩個模塊中。
1、數據分析
Json Input可以實時對互聯網中的 Json 數據文本進行解析,進而將數據轉化為Kettle支持的格式,從而對數據進行進一步實際分析,以便大量的工具軟體和演算法庫更方便地處理這些數據。
2、數據處理
Json Input同樣在大量數據的處理中處於不可替代的地位。可以將各種數據源進行Json化後,通過Json Input組件完成對數據的提取、轉換和載入,可以提高數據整合的工作效率,而且能夠大幅度降低開發成本。
總結
Json數據格式的靈活性、大數據源、高效性以及廣泛適用性,是Json Input組件在實際開發中得以廣泛應用的基礎。本文就Json Input的配置、應用在實際生產和數據分析中的優勢做了較為詳盡的闡述,能夠對大家掌握Pentaho Data Integration (PDI)的 Json Input組件有很好提升。
原創文章,作者:FHJRM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/362652.html
微信掃一掃
支付寶掃一掃