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