0%

kettle-入门

kettle-入门

kettle-入门

作用

抽取、转换、装载。将一种数据格式转换为另一种数据格式。例如:旧系统导出的.json人员数据通过转换导入到新系统数据库中。

介绍

spoon图形化工具:写出抽取、转换、装载的文件。

KettleOnline在线调度系统(java项目):定时执行文件。

资源

视频:https://www.bilibili.com/video/BV1jE411B7J8?from=search&seid=8259670291223952308

官网:https://www.kettle.net.cn/2401.html

使用

版本:8.2

下载

安装

需要安装1.8jdk环境。

启动

双击spoon.bat

快速入门

json → mysql数据库

  1. 新建转换

    image-20210221160938883

  2. 提取json数据

    1. 新建输入组件 json

      image-20210221161047332

    2. 选择文件

      image-20210221161240144

    3. 提取字段

      image-20210221161448619

    4. 预览

      image-20210221161627613

  3. 将json数据插入mysql数据库

    1. mysql中新建表

    2. 新建表输出组件

      image-20210221161939392

    3. 连线

      点击+shift→shift+移动鼠标到另一个组件。选择主输出步骤

    4. 新建mysql连接

      image-20210221162245428

    5. 选择连接和表

      双击组件。

      image-20210221162333583

    6. 将json的字段与表中字段对应起来

      image-20210221162425679

    7. 启动

      image-20210221162511493

注意

转换文件中不要有中文

步骤命名

image-20210220115924186

文件的路径

(D:\Users\Administrator\Desktop\测试\4.json)

数据库连接命名

image-20210220120012726

jsonpath读取json数据

json中的key中含有jsonpath语法.时读取该key的方法。key:parent_id.department_code

数据:

1
2
3
4
5
6
7
8
9
10
"data": {
"query_data": [
{
"start_date": "2000-01-01",
"parent_id.department_code": "D0115"
},
{
"start_date": "2000-01-01",
"parent_id.department_code": "D0136"
},

读取:

1
$.data.query_data..['parent_id.department_code']

数据库连接问题

添加对应数据库的jar包

根据mysql数据库版本8.0.18,去mysql官网下载 mysql-connector-java-8.0.18.zip ,将其中的mysql-connector-java-8.0.18.jar添加jar包到lib目录下.

将mysql.jar放入到lib下。

mysql数据库时区

  • 报错

    The server time zone value ‘�й���׼ʱ��’ is unrecognized

  • 解决

    1
    2
    3
    show variables like '%time_zone%';
    set global time_zone='+8:00';
    flush privileges;