一、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组件有很好提升。