数据人与超自然意识 发表于 2023-6-5 06:11:30

快速上手kettle(三)壶中可以放些啥?

目录

[*]序言
[*]一 、kettle这壶能装些啥
[*]二、Access输入

[*]2.1 准备Acess数据库和表
[*]2.2 新建一个转换并设置
[*]2.3 启动转换预览数据

[*]三、CSV文件输入

[*]3.1 准备csv文件,并将csv输入控件拖入工作区
[*]3.2 csv输入控件设置
[*]3.3 预览csv文件内容

[*]四、文本文件输入

[*]4.1 准备txt格式文本文件,并将控件拖入工作区
[*]4.2 文本输入控件设置
[*]4.3 启动步骤,浏览数据

[*]五、Excel输入

[*]5.1 准备excel文件,并将控件拖入工作区
[*]5.2Excel控件设置
[*]5.3 启动转换,预览数据

[*]六 、json文件输入

[*]6.1 json基本组成
[*]6.2 JSON Path
[*]6.3 实践操作

[*]6.3.1 准备json文件,并将json input控件拖入工作区
[*]6.3.2 JSON 控件设置
[*]6.3.3 启动转换,预览数据


[*]七、xml 输入

[*]7.1 准备xml文件
[*]7.2 XPath
[*]7.3 实践操作

[*]7.3.1 将xml输入控件拖入工作区
[*]7.3.2 xml控件设置
[*]7.3.3 启动转换,预览数据


[*]八、表输入

[*]8.1 将表输入控件拖入工作区
[*]8.2 表输入控件设置
[*]8.3 启动转换,预览表数据

[*]九、 生成记录

[*]9.1 将生成记录控件拖入工作区
[*]9.2 生成记录控件设置
[*]9.3 启动转换,预览数据

[*]十、小结

序言

快速上手kettle开篇中,我们将kettle比作壶,并对这个壶做了简单介绍。
而上一期中我们实现了①将csv文件通过kettle转换成excel文件;
②将excel文件通过kettle写入到MySQL数据库表中 这两个案例。
相信大家跟我一样,对kettle已经有了初步认识,并且对这强大的工具产生了兴趣。
今天这小节,我们来看看kettle 这“壶”里面到底能放些啥东西?
一 、kettle这壶能装些啥

启动kettle,在转换-->输入下面有很多东西,如下截图。有图可以看出这kettle“真能装”。
可以把各种五花八门的数据丢到这壶里,kettle也是来者不拒。我们日常能用到的数据基本都能往里面塞。
--kettle能装的东西--kettle能装的东西https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214041-1919491246.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214212-1063776328.png一眼望去,能看到不少“大熟人”,Access输入、CSV文件输入、Excel输入、JSON输入、XML输入、文本文件输入、YAML输入、表输入等等
不知道你对上面提到的“大熟人”了不了解,其实不了解也没关系。
在后面的模块中,会把这些“大熟人”分别介绍给你。并且保证你过目不忘,再次遇到就能“称兄道弟”
二、Access输入

Access是微软公司开发的一个数据库管理软件.它像个保险柜,可以帮你存储和管理各种各样的数据。
Access是我们平常会用到数据库,接下来我们就新建一个Access数据库为例,来简单说一说怎么使用Access这个输入控件
2.1 准备Acess数据库和表

新建一个access数据库,并建一个云襄传的表,然后往里面添加一些数据https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214326-1244881261.png2.2 新建一个转换并设置

--①将Access输入控件拖入工作区--②选择2.1新建的云襄传.accdbhttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214322-991315412.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214440-728645670.png--③添加文件--④ 选择数据库中数据表https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214315-689051127.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214326-1536217742.png--④ 获取字段--⑤ 预览数据https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214318-384121733.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214325-1830143317.png2.3 启动转换预览数据

--①启动转换--②预览数据https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214313-763156984.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214260-634968844.png注: 启动执行转换后,Preview date tab页面如果加载出数据说明输入控件配置是成功的
三、CSV文件输入

CSV文件是一个用逗号分隔的固定格式的文本文件,这种文件后缀名为.csv,可以用Excel或者文本编辑器打开。
在日常工作中,我们经常会需要将CSV文件转换为其他格式的数据
3.1 准备csv文件,并将csv输入控件拖入工作区

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214323-71708828.png
3.2 csv输入控件设置

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214324-103759285.png
3.3 预览csv文件内容

可以在设置界面点击【预览】 按钮查看csv数据,也可以启动步骤预览数据、
-- 预览按钮预览数据--启动步骤预览csv文件https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214259-1181214041.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214117-930269150.png四、文本文件输入

我们经常需要将服务器上的日志文件(文本文件)数据或者其他文本数据提取出来,然后放到excel,这样查看起来就很方便
4.1 准备txt格式文本文件,并将控件拖入工作区

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214243-852469991.png
4.2 文本输入控件设置

--①选择txt文本文件--②预览文件内容https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214320-1689349457.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214226-1785650871.png--③设置分割符--④ 获取字段https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214225-763820872.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214261-1368055575.png4.3 启动步骤,浏览数据

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214324-1471689243.png
五、Excel输入

excel 对于我们来说并不陌生,时我们平常接触到最多的文件格式
5.1 准备excel文件,并将控件拖入工作区

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214197-684030548.png
5.2Excel控件设置

--① 选择excel文件--② 获取工作表名称https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214257-232656553.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214216-2081077123.png-- ③ 获取字段,并设置数据格式--④ 预览数据https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214203-1145291705.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214215-1955833986.png5.3 启动转换,预览数据

上一步【预览记录】 如果有数据显示出来,基本上excel设置时成功的了
当然我们可以启动转换,然后预览excel文件中的数据
https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214254-2094248644.png
六 、json文件输入

json 可以算是现在市面上用的比较多的数据结构了,是JavaScript对象,是一种轻量级的数据交换格式。
可以很方便的在不同语言之间传递
6.1 json基本组成


[*]对象:{ }
[*]数组:[ ]
[*]属性:key:value
6.2 JSON Path

JSON Path 用来定位json节点数据
Json Path 包含两种写法

[*]点记法:$.store.book.title
[*]括号记法:$ [ ‘ store ’ ] [ ‘ book ’ ] [ ‘title’ ]
使用过程中一些常用符号 含义
--符号--描述$查询根节点对象,用于表示一个json数据,可以数组或对象@表示当前节点对象,类似于Java中的this对象*可以表示一个数字或字符''类似于递归搜索.表示一个子节点[''(,'')]表示一个或多个子节点[(,)]表示一个或多个数组下标数组片段,区间为(start,end) 不包含end[?()]过滤器表达式,结果为Boolean类型上面说了一些常用符号的使用,我们就以实际的json为例,来看看json里的节点怎么取
{
    "data":{
      "longSeason":[
            {   "actor":"范伟",
                "role":"王响",
                "sex":"男",
                "age":56
            },
            {   "actor":"秦昊",
                "role":"龚彪",
                "sex":"男",
                "age":40
            },
            {   "actor":"李庚希",
                "role":"沈默",
                "sex":"女",
                "age":18
            },
            {   "actor":"陈明昊",
                "role":"马德胜",
                "sex":"男",
                "age":55
            }
      ],
      "surname":[
            {   "actor":"陈晓",
                "role":"云襄",
                "sex":"男",
                "age":28
            },
            {   "actor":"毛晓彤",
                "role":"舒亚男",
                "sex":"女",
                "age":18
            },
            {   "actor":"许龄月",
                "role":"柯梦兰",
                "sex":"女",
                "age":18
            },
            {
               "actor":"刘冠麟",
               "role":"金十两",
               "sex":"男",
               "age":35

            },
            {   "actor":"唐晓天",
                "role":"苏鸣玉",
                "sex":"男",
                "age":25
            }

      ]
    }

}--取出漫长季节中所有演员--结果$.data.longSeason
[*].actor["范伟","秦昊","李庚希","陈明昊"]$..longSeason..actor["范伟","秦昊","李庚希","陈明昊"]6.3 实践操作

6.3.1 准备json文件,并将json input控件拖入工作区

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214438-1144265672.png
6.3.2 JSON 控件设置

--① 选择json文件并添加--② 选择字段https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214176-1483201945.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214197-594039789.png-- ③ 查看表达式-- ④ 预览节点数据https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214323-462003716.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214229-2058644607.png6.3.3 启动转换,预览数据

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214228-1785537082.png
七、xml 输入

xml是一种可扩展标记语言,XML 和上面说的json一样用来传输和存储数据
7.1 准备xml文件

我们后面的演示都用下面的xml为例子
<data>
    <longSeason>
      <actor>范伟</actor>
      <role>王响</role>
      <sex>男</sex>
      <age>56</age>
    </longSeason>
    <longSeason>
      <actor>秦昊</actor>
      <role>龚彪</role>
      <sex>男</sex>
      <age>40</age>
    </longSeason>
    <longSeason>
      <actor>李庚希</actor>
      <role>沈默</role>
      <sex>女</sex>
      <age>18</age>
    </longSeason>
    <longSeason>
      <actor>陈明昊</actor>
      <role>马德胜</role>
      <sex>男</sex>
      <age>55</age>
    </longSeason>
    <surname>
      <actor>陈晓</actor>
      <role>云襄</role>
      <sex>男</sex>
      <age>28</age>
    </surname>
    <surname>
      <actor>毛晓彤</actor>
      <role>舒亚男</role>
      <sex>女</sex>
      <age>18</age>
    </surname>
    <surname>
      <actor>许龄月</actor>
      <role>柯梦兰</role>
      <sex>女</sex>
      <age>18</age>
    </surname>
    <surname>
      <actor>刘冠麟</actor>
      <role>金十两</role>
      <sex>男</sex>
      <age>35</age>
    </surname>
    <surname>
      <actor>唐晓天</actor>
      <role>苏鸣玉</role>
      <sex>男</sex>
      <age>25</age>
    </surname>
</data>7.2 XPath

在说json输入控件中,我么介绍了JSON Path, 这里是xml输入控件,也有类似XPath 来定位xml中节点的位置
--表达式--描述nodename选取此节点的所有节点/从根节点选取//从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置.选取当前节点..选取当前节点的父节点@属性--取出漫长季节中所有演员--结果/data/longSeason/actor["范伟","秦昊","李庚希","陈明昊"]7.3 实践操作

7.3.1 将xml输入控件拖入工作区

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214262-1049541084.png
7.3.2 xml控件设置

--① 选择xml文件并添加-- ② 获取xml文档读取路径https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214324-1547715892.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214237-148295982.png-- ③ 获取字段-- ④ 预览https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214209-156759389.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214221-1785141022.png7.3.3 启动转换,预览数据

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214325-1016904733.png
八、表输入

由于涉及到数据库表相关操作,所以我们新建转换之后需要先建立DB连接。
建立DB连接的方式我们在上一小节小试牛刀中已经提过,这里就不展开了。我们还是以MySQL为例子来说表输入。
https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214262-1655789076.png
8.1 将表输入控件拖入工作区

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214440-1061420894.png
8.2 表输入控件设置

-- ①获取SQL查询语句-- ② 点击【预览】按钮预览表数据https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214226-235386761.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214235-2089887924.png8.3 启动转换,预览表数据

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214327-1643325195.png
九、 生成记录

在日常工作中我们经常需要批量造一些测试数据,通过生成记录这个输入控件就可以完成。
9.1 将生成记录控件拖入工作区

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214445-315084700.png
9.2 生成记录控件设置

-- ①填写需要数据的相关信息-- ② 预览生成的数据https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214210-960883449.pnghttps://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214147-854229266.png9.3 启动转换,预览数据

https://img2023.cnblogs.com/blog/2381533/202306/2381533-20230604133214443-1083041392.png
到此,10条测试数据就造好了
十、小结

本篇文章我们主要是说了九个kettle的常用输入控件(kettle壶里能放写啥东西进去)。
kettle的输入控件就代表着kettle能处理一些什么格式的数据,其实它还有其他输入控件,这里就不一一例举了。
大家如果感兴趣,可以将输入下面的每个控件都去试试。
本期内容到此就结束了,希望对你有所帮助。
这一期说了输入控件,那下一期就到了输出控件了
我们下一期再见 (●'◡'●)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 快速上手kettle(三)壶中可以放些啥?