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

打印 上一主题 下一主题

主题 751|帖子 751|积分 2253

目录

序言

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

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

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

新建一个access数据库,并建一个云襄传的表,然后往里面添加一些数据2.2 新建一个转换并设置

--①将Access输入控件拖入工作区--②选择2.1新建的云襄传.accdb--③添加文件--④ 选择数据库中数据表--④ 获取字段--⑤ 预览数据2.3 启动转换预览数据

--①启动转换--②预览数据注: 启动执行转换后,Preview date tab页面如果加载出数据说明输入控件配置是成功的
三、CSV文件输入

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


3.2 csv输入控件设置


3.3 预览csv文件内容

可以在设置界面点击【预览】 按钮查看csv数据,也可以启动步骤预览数据、
-- 预览按钮预览数据--启动步骤预览csv文件四、文本文件输入

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


4.2 文本输入控件设置

--①选择txt文本文件--②预览文件内容--③设置分割符--④ 获取字段4.3 启动步骤,浏览数据


五、Excel输入

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


5.2  Excel控件设置

--① 选择excel文件--② 获取工作表名称-- ③ 获取字段,并设置数据格式--④ 预览数据5.3 启动转换,预览数据

上一步【预览记录】 如果有数据显示出来,基本上excel设置时成功的了
当然我们可以启动转换,然后预览excel文件中的数据

六 、json文件输入

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


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

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

  • 点记法:$.store.book[0].title
  • 括号记法:$ [ ‘ store ’ ] [ ‘ book ’ ]  [  0  ] [ ‘title’ ]
使用过程中一些常用符号 含义
--符号--描述$查询根节点对象,用于表示一个json数据,可以数组或对象@表示当前节点对象,类似于Java中的this对象*可以表示一个数字或字符''类似于递归搜索.表示一个子节点[''(,'')]表示一个或多个子节点[(,)]表示一个或多个数组下标[start:end]数组片段,区间为(start,end) 不包含end[?()]过滤器表达式,结果为Boolean类型上面说了一些常用符号的使用,我们就以实际的json为例,来看看json里的节点怎么取
  1. {
  2.     "data":{
  3.         "longSeason":[
  4.             {   "actor":"范伟",
  5.                 "role":"王响",
  6.                 "sex":"男",
  7.                 "age":56
  8.             },
  9.             {   "actor":"秦昊",
  10.                 "role":"龚彪",
  11.                 "sex":"男",
  12.                 "age":40
  13.             },
  14.             {   "actor":"李庚希",
  15.                 "role":"沈默",
  16.                 "sex":"女",
  17.                 "age":18
  18.             },
  19.             {   "actor":"陈明昊",
  20.                 "role":"马德胜",
  21.                 "sex":"男",
  22.                 "age":55
  23.             }
  24.         ],
  25.         "surname":[
  26.             {   "actor":"陈晓",
  27.                 "role":"云襄",
  28.                 "sex":"男",
  29.                 "age":28
  30.             },
  31.             {   "actor":"毛晓彤",
  32.                 "role":"舒亚男",
  33.                 "sex":"女",
  34.                 "age":18
  35.             },
  36.             {   "actor":"许龄月",
  37.                 "role":"柯梦兰",
  38.                 "sex":"女",
  39.                 "age":18
  40.             },
  41.             {
  42.                "actor":"刘冠麟",
  43.                "role":"金十两",
  44.                "sex":"男",
  45.                "age":35
  46.             },
  47.             {   "actor":"唐晓天",
  48.                 "role":"苏鸣玉",
  49.                 "sex":"男",
  50.                 "age":25
  51.             }
  52.         ]
  53.     }
  54. }
复制代码
--取出漫长季节中所有演员--结果$.data.longSeason
  • .actor["范伟","秦昊","李庚希","陈明昊"]$..longSeason..actor["范伟","秦昊","李庚希","陈明昊"]6.3 实践操作

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


    6.3.2 JSON 控件设置

    --① 选择json文件并添加--② 选择字段-- ③ 查看表达式-- ④ 预览节点数据6.3.3 启动转换,预览数据


    七、xml 输入

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

    我们后面的演示都用下面的xml为例子
    1. <data>
    2.     <longSeason>
    3.         <actor>范伟</actor>
    4.         <role>王响</role>
    5.         <sex>男</sex>
    6.         <age>56</age>
    7.     </longSeason>
    8.     <longSeason>
    9.         <actor>秦昊</actor>
    10.         <role>龚彪</role>
    11.         <sex>男</sex>
    12.         <age>40</age>
    13.     </longSeason>
    14.     <longSeason>
    15.         <actor>李庚希</actor>
    16.         <role>沈默</role>
    17.         <sex>女</sex>
    18.         <age>18</age>
    19.     </longSeason>
    20.     <longSeason>
    21.         <actor>陈明昊</actor>
    22.         <role>马德胜</role>
    23.         <sex>男</sex>
    24.         <age>55</age>
    25.     </longSeason>
    26.     <surname>
    27.         <actor>陈晓</actor>
    28.         <role>云襄</role>
    29.         <sex>男</sex>
    30.         <age>28</age>
    31.     </surname>
    32.     <surname>
    33.         <actor>毛晓彤</actor>
    34.         <role>舒亚男</role>
    35.         <sex>女</sex>
    36.         <age>18</age>
    37.     </surname>
    38.     <surname>
    39.         <actor>许龄月</actor>
    40.         <role>柯梦兰</role>
    41.         <sex>女</sex>
    42.         <age>18</age>
    43.     </surname>
    44.     <surname>
    45.         <actor>刘冠麟</actor>
    46.         <role>金十两</role>
    47.         <sex>男</sex>
    48.         <age>35</age>
    49.     </surname>
    50.     <surname>
    51.         <actor>唐晓天</actor>
    52.         <role>苏鸣玉</role>
    53.         <sex>男</sex>
    54.         <age>25</age>
    55.     </surname>
    56. </data>
    复制代码
    7.2 XPath

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

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


    7.3.2 xml控件设置

    --① 选择xml文件并添加-- ② 获取xml文档读取路径-- ③ 获取字段-- ④ 预览7.3.3 启动转换,预览数据


    八、表输入

    由于涉及到数据库表相关操作,所以我们新建转换之后需要先建立DB连接。
    建立DB连接的方式我们在上一小节小试牛刀中已经提过,这里就不展开了。我们还是以MySQL为例子来说表输入。

    8.1 将表输入控件拖入工作区


    8.2 表输入控件设置

    -- ①获取SQL查询语句-- ② 点击【预览】按钮预览表数据8.3 启动转换,预览表数据


    九、 生成记录

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


    9.2 生成记录控件设置

    -- ①  填写需要数据的相关信息-- ② 预览生成的数据9.3 启动转换,预览数据


    到此,10条测试数据就造好了
    十、小结

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

    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

    0 个回复

    正序浏览

    快速回复

    您需要登录后才可以回帖 登录 or 立即注册

    本版积分规则

    光之使者

    金牌会员
    这个人很懒什么都没写!

    标签云

    快速回复 返回顶部 返回列表