一、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-hk/n/362652.html