kettle实战——对大量json文件的数据进行两层解析处理后导入MYSQL数据库中
- 1、简介
- 2、要处理的数据
- 3、数据处理
- 4、 使用kettle处理数据
- 4.1、整体流程
- 4.2、具体操作
- 总结
1、简介
将外部数据导入(import)数据库是在数据库应用中一个很常见的需求。json作为轻量文件在储存大量数据上具有很强的应用性,本文将介绍如何利用kettle对大量json文件的数据进行处理并导入到mysql数据库中。
2、要处理的数据
要处理的文件格式并不是json格式的,但内容的接送形式的,因此首先要将文件格式转为接送格式。
3、数据处理
这里我写了一个python脚本,将文件格式批量转成json形式的。
# 批量修改一个文件下的文件后缀
import sys
import os
def Rename():
#Path = input("请输入你需要操作的目录(格式如 --windows 'F:\\test' ---mac '/Users/mac/Documents/test'):")
# 也可以将文件路径写死:
Path = "F:\\test\\"
filelist = os.listdir(Path)
for files in filelist:
Olddir = os.path.join(Path, files)
print(files) # 打印出老的文件夹里的目录和文件
if os.path.isdir(Olddir): # 判断是否是文件夹,是文件夹,跳过
continue
filename = os.path.splitext(files)[0]
Newdir = os.path.join(Path, filename + '.json') # 只要修改后缀名就可以更改成任意想要的格式
os.rename(Olddir, Newdir)
Rename()
处理后的数据形式
4、 使用kettle处理数据
4.1、整体流程
4.2、具体操作
获取文件名
这里是通过浏览需要添加的一个具体文件,再进行添加。添加之后删除具体的目录,保留到包含子文件的文件夹,再添加通配符“.*.json”。具体的话可以百度一下,相信你们可以的。
第一层jsoninput
从字段获取源选择filename
字段直接从下面的select fields获取字段第二层json解析
字段选择1
选择需要输入的内容,并把N、V改名,方便后续处理,理解。列转行
列转行就是对json的第二层进行处理,D中有很多键值对,需要对其进行转换,为后续数据可视化做准备。目标字段可自己命名,数据字段选择对应的值,这里是value,关键字段是D中的具体内容。
如上图,iname对应的就是N的内容,ivalue对应的就是V的值。嗯…应该能理解吧 0.0字段选择2
这里是选择最终要输出的内容类型:
表输出步骤先新建数据库连接,配置好之后,勾选“指定数据库字段”,再获取字段即可。
最后检查整体流程,保存,运行完成之后,数据库的指定表就有内容了,如下:
总结
处理大数据上kettle是很不错的工具,本文可能有些地方表达得不是不清楚,欢迎与我交流!最后点个赞吧!感谢!