• Kettle入门


    安装

    1575284306236

    1575284334203

    简介

    • 一个转换就是一个ETL的过程,而作业则是多个转换、作业的集合。

    • 在作业中可以对转换或作业进行调度、定时任务等(据说定时不好用,可以通过其他方式,比如linux的crontab命令,不过实际使用中,这个指令也不大好使,有待查看日志探明原因)。

    • 实际过程中,写的流程不是很复杂,当数据抽取需要多步骤时,分成多个转换,在集合到一个作业里顺序摆放,然后执行即可。

    • 不放到作业里的话,要对多个转换依次执行命令,比较麻烦。

      1575284796606

      • 和Nifi挺像的一个ETL工具, 实际操作就是托拉拽。

    重要工具

    1575285036768

    1. Spoon.bat/spoon.sh

      • 图形界面工具,就是启动上图主界面的命令行。这个界面应该是JavaFX做的。

      • 用来在有图形界面的系统下写任务

      • 写好后,也可以通过该工具进行执行,调试

      • 这个工具最大的问题是启动很慢,并且如果修改了数据库连接的配置,只有重新启动才能生效了。这时候就体现了命令行的优越性。

      • 转换窗口

        1575288901519

      • 执行SQL脚本: 可以直接在控件里面写SQL, 并指定执行的库

        1575289133619

      • 表输入: 通过查询数据库的表来获取输入数据流, 可以在该控件中写SQL

        1575289290158

      • 表输出: 将数据流映射到指定的表中。

        1575289407278

        • 指定了数据库连接(后叙)和目标表之后,可以勾选指定数据库字段,如此下方的数据库字段标签的内容就成了可编辑状态(因为表输入和表输出的数据表结构不可能完全一致,通过这样可以将A表列对应到指定的B表列中)
      • 发送邮件: 转换完成后,通过指定的邮箱发送邮件到指定的联系人

        1575289537371

    2. Kitchen.bat/kitchen.sh

      • 对应shell指令:

        ./kichen.sh -file ./YourScirpts/demo.kjb
        
      • 作业脚本的后缀是kjb

      • 有时候,可能需要将日志输出到某个地方,可以加-log参数

    3. Pan.bat/pan.sh

      • 对应shell指令:

        ./pan.sh -file ./YourScripts/demo.ktr
        
      • 转换脚本的后缀是ktr

    设置数据库

    • 两种方式:

      • 直接配置在转换中

        1575290282198

        1575290732240

        • 连了下本地的PG做一下测试
      • 配置在jndi配置文件中

        1575290826975

        SampleData/type=javax.sql.DataSource
        SampleData/driver=org.h2.Driver
        SampleData/url=jdbc:h2:file:samples/db/sampledb;IFEXISTS=TRUE
        SampleData/user=PENTAHO_USER
        SampleData/password=PASSWORD
        Quartz/type=javax.sql.DataSource
        Quartz/driver=org.hsqldb.jdbcDriver
        Quartz/url=jdbc:hsqldb:hsql://localhost/quartz
        Quartz/user=pentaho_user
        Quartz/password=password
        Hibernate/type=javax.sql.DataSource
        Hibernate/driver=org.hsqldb.jdbcDriver
        Hibernate/url=jdbc:hsqldb:hsql://localhost/hibernate
        Hibernate/user=hibuser
        Hibernate/password=password
        Shark/type=javax.sql.DataSource
        Shark/driver=org.hsqldb.jdbcDriver
        Shark/url=jdbc:hsqldb:hsql://localhost/shark
        Shark/user=sa
        Shark/password=
        PDI_Operations_Mart/type=javax.sql.DataSource
        PDI_Operations_Mart/driver=org.postgresql.Driver
        PDI_Operations_Mart/url=jdbc:postgresql://localhost:5432/hibernate?searchpath=pentaho_operations_mart
        PDI_Operations_Mart/user=hibuser
        PDI_Operations_Mart/password=password
        live_logging_info/type=javax.sql.DataSource
        live_logging_info/driver=org.postgresql.Driver
        live_logging_info/url=jdbc:postgresql://localhost:5432/hibernate?searchpath=pentaho_dilogs
        live_logging_info/user=hibuser
        live_logging_info/password=password
        
  • 相关阅读:
    SQLSERVER调用DLL程序
    RAISERROR语句
    SQLSERVER表联结(INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN,CROSS JOIN,CROSS APPLY,OUTER APPLY)
    SQL Server在存储过程中编写事务处理代码的三种方法
    找出表中缺失的连续数据(如:2,4,7,9;需要找出:1,3,5,6,8的数据)
    sqlserver用于统计表索引情况
    你需要了解的HTTP协议
    自己实现一个类似 jQuery 的函数库
    JS 函数 学习笔记
    JS 数组 学习笔记
  • 原文地址:https://www.cnblogs.com/ronnieyuan/p/11973537.html
Copyright © 2020-2023  润新知