02-PDI(Kettle)导入与导出(下)

简介: 文章目录02-PDI(Kettle)导入与导出多个excel表格数据的合并实验步骤:拓展 Excel介绍基于文本的数据导入与导出
  1. Get data from XML设置

将文件添加到选择文件区域



选择get xpath nodes


设置fileds




  1. Excel输出设置

这里先不描述

  1. XML output设置


  1. 输出的文件为:
  {
       "missions":
       [
        {
          "id": "59434767",
           "timestamp": "2011-11-21 09:21:53",
           "data": [
              {
                "field": "13776121",
                "value": "Baylor Dallas"
              },
            {
                        "field": "13776401",
                        "value": "CHF"
              },
              {
                        "field": "13777966",
                        "value": "John Doe"
                     },
               {
                        "field": "13780027",
                        "value": "9999"
                      } ]
         },
        {
                 "id": "59474875",
           "timestamp": "2011-11-21 17:01:22",
           "data": [
                     {
                     "field": "13776121",
                     "value": "Healthsouth,"
                     },
                    {
                    "field": "13776401",
                    "value": "Pneumonia"
                    },
                    {
                    "field": "13777966",
                    "value": "Jane Doe"
                    } 
              ]
            }],
            "total": 2,
            "pages": 1
        }
  1. 步骤设计

转换步骤设计如下:



  1. json input 设置
    File选项设置:
    设置文件地址:XX\read-nested-fields.js

content选项设置为默认设置


fields选项设置:

id $.missions…id 中$表示json数据,.missions…id表示获取该文件中missions下的子元素的中的id子元素。

data $.missions…data 中$表示json数据,.missions…data表示获取该文件中missions下的子元素的中的data子元素。

  1. json input get -nested fields设置
    File选项设置:

勾选source is from previous step,表示选择读取上一步骤的源字段

select field:会自动提示上一步骤中的data和id字段,这里勾选data字段。



fileds选项设置



  1. excel output设置
    与前面基本类似,重点在于设置字段选择
  2. json out put 设置


拓展 JSON

JSON格式相关

https://www.bejson.com/

基于数据库的数据导入与导出

实验步骤

当前,市场上主流的关系型数据库有MySQL、Oracle、SQL Server、DB2等。面对这些类型的关系型数据库,Kettle都可以使用“表输入”“表输出”这两个步骤完成数据的导入与导出。

本实验读入student表数据,输出满足身高大于等于170,成绩大于等于80的学生数据。输出的数据存储在StuOut表中。


1.在mysql命令行执行student.sql脚本脚本内容

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `学号` int(11) NOT NULL,
  `姓名` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `性别` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `班级` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `年龄` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `成绩` int(15) NULL DEFAULT NULL,
  `身高` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `手机` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`学号`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, '张一', '男', '1701', '16', 78, '170', '18946554571');
INSERT INTO `student` VALUES (2, '李二', '男', '1701', '17', 80, '175', '18946554572');
INSERT INTO `student` VALUES (3, '谢逊', '男', '1702', '18', 95, '169', '18946554573');
INSERT INTO `student` VALUES (4, '赵玲', '女', '1702', '19', 86, '180', '18956257895');
INSERT INTO `student` VALUES (5, '赵明', '男', '1704', '20', 85, '185', '18946554575');
INSERT INTO `student` VALUES (6, '张三', '女', '1704', '18', 92, '169', '18946554576');
SET FOREIGN_KEY_CHECKS = 1;

执行脚本

source  /home/ubuntu/student.sql
• 1

2.新建转换如下



  1. data grid设置


  1. table input设置
    创建mysql_conn连接,并测试


测试完成后,执行Get SQL select statement

修改sql语句,添加

WHERE 身高>? AND 成绩>?

这一步骤需要勾选Replace variables in,并选择insert data from step选择上一步骤的data grid。

完整SQL为:

SELECT
  学号
, 姓名
, 性别
, 班级
, 年龄
, 成绩
, 身高
, 手机
FROM student
WHERE 年龄 >? AND 成绩 > ?



  1. table output
    选择target后,可以执行下sql



  1. 执行sql后,可以映射字段



注意:这里可以多次尝试,比如去掉specify database fields,get fields ,table field的字段可以手动选择。

拓展 kettle分享数据库连接

先在一个转换中创建连接后,通过view – 》database connections --》 数据库连接–》share就可以分享了

相关文章
|
数据库
psc文件文件如何导入数据库
psc文件文件如何导入数据库
212 0
SpringBoot导入和导出Csv文件(二十八)中
SpringBoot导入和导出Csv文件(二十八)中
2979 0
SpringBoot导入和导出Csv文件(二十八)中
|
4月前
|
SQL 关系型数据库 MySQL
Python小技巧——将CSV文件导入到MySQL数据库
Python小技巧——将CSV文件导入到MySQL数据库
176 0
|
前端开发 Java
SpringBoot导入和导出Csv文件(二十八)下
SpringBoot导入和导出Csv文件(二十八)下
2730 0
SpringBoot导入和导出Csv文件(二十八)下
|
存储 Java
SpringBoot导入和导出Csv文件(二十八)上
SpringBoot导入和导出Csv文件(二十八)上
1421 1
SpringBoot导入和导出Csv文件(二十八)上
|
SQL 人工智能 数据库
DataGrip导出,导入sql文件
DataGrip导出,导入sql文件
|
存储 数据挖掘 数据库
|
XML 存储 移动开发
02-PDI(Kettle)导入与导出(上)
文章目录 02-PDI(Kettle)导入与导出 多个excel表格数据的合并 实验步骤: 拓展 Excel介绍 基于文本的数据导入与导出
02-PDI(Kettle)导入与导出(上)
|
SQL 存储 安全
03-PDI(Kettle)导入与导出CDC(上)
文章目录 03-PDI(Kettle)导入与导出CDC 数据的全量、增量、差异备份 基于时间戳的源数据CDC 实验原理 实验步骤 基于触发器的CDC 实验原理
03-PDI(Kettle)导入与导出CDC(上)
|
SQL 数据库
03-PDI(Kettle)导入与导出CDC(下)
文章目录 03-PDI(Kettle)导入与导出CDC 数据的全量、增量、差异备份 基于时间戳的源数据CDC 实验原理 实验步骤 基于触发器的CDC 实验原理
03-PDI(Kettle)导入与导出CDC(下)

热门文章

最新文章