zoukankan      html  css  js  c++  java
  • kettle的输入输出组件和脚本组件

    一、 输入组件

    1.1表输入

    从指定的数据库中,通过sql语句来查询数据加载到内存。

    允许简易转换:勾选后可以避免不必要的字段的数据类型转换,从而提高性能。

    替换sql语句里的变量:勾选后可以通过${queryDate}来使用queryDate变量。

    从步骤中插入数据:以上次的步骤中的数据作为数据的参数,使用?来获取上步骤的数据,查询多个列就多个?接受。

    从步骤中插入数据的例子:

    csv文件里面有一些id,我们需要读取这个id的值,然后去数据库里面找对应id的数据

    我们从csv中读取数据,所以需要csv文件输入组件,并且需要从数据库中回去数据,所以需要表输入组件,最终会形成下面的转换图:

    其中csv读取到的id内容是:

    表输入的配置是:

    最终表输入的输出是:

    1.2一个组件有多个数据通道

    一个组件往多个通道发送时:可以选择分发或者是复制。

    分发的意思是分流,就是把输出分为多分发送到不同的目的地

    复制的意思是每个目的地接收到的数据是一样的

    这里举一个复制的例子,读取数据库中的数据复制多分到excel输出、json输出、表输出

    表输出需要注意字段的映射关系:

    这是转换图:

     二、执行sql的组件

    执行脚本是很常用的一个组件,主要用于将上一步骤的结果作为参数来执行sql语句。

    执行每一行:是否要对偶上个步骤的N行的结果一行一行的执行此脚本。

    execute as a statment:当做一条完整的语句执行

    变量替换:选中后,就可以${date}方式使用变量

    quote string:选中后会识别?来表示上步骤传来的数据。

    测试程序:

    我们读取csv文件,并把csv文件中的数据插入到mysql的表中

    其中执行sql脚本的配置是:

    三、公式

    在原来字段的基础上,使用新的自定义公式产生新的字段。变量用{}括起来。

    例子:

    我们读取csv文件,将name字段变为大写

    最终的公式的输出是:

    四、记录集连接

    根据两个输入的连接字段选择连接方式,注意一个问题:关联的数据源要事先排好序。

    五、字段选择工具

    在关联之后去掉一些不需要的字段,或者修改字段的控制

    字段选择的转换图:

    csv文件里面包括两列的数据,id和name,现在我们把id字段名改为了new_id,并且将name字段删除

    字段选择后的结果:

    六、合并记录

    将跨数据源的数据合并在一起的操作,相当于在同一数据库中的union操作。

     union有数据的相对比较的功能

    匹配关键字:是两个数据源数据对比的依据

    标志字段是要显示的两个数据源的对比结果:

    new:原来数据源没有关键字匹配的值,新数据源有关键字匹配的值。

    delete:原来数据源有关键字匹配的值,新数据源没有关键字匹配的值。

    changed:原来数据源和新数据源有关键字匹配的值,但是其他项修改了。

    identical:两条数据是一致的。

     

  • 相关阅读:
    还是火柴排队(补一下归并排序的锅)
    火柴排队(NOIP2013)(附树状数组专题讲解(其实只是粗略。。。))
    转圈游戏(NOIP2013)
    接口和多态
    HttpClient-传入url得到json字符串( PostMethod method = new PostMethod(url)是个好方法)
    url和资源的再理解
    每天进步一点点- 资源与URI(吐血精华总结)
    每天进步一点点-一切皆对象/一次编写,到处运行/bean工厂
    java黑魔法-反射机制-02-通过Java反射调用其他类方法
    java黑魔法-反射机制-01
  • 原文地址:https://www.cnblogs.com/dongdone/p/5733230.html
Copyright © 2011-2022 走看看