关闭

Kettle---初识

标签: Kettle ETL工具
1044人阅读 评论(4) 收藏 举报
分类:

        最近因公司项目的原因,小编接触到了Kettle这样一款工具,感觉挺好玩儿的,通过几天的探索和学习,对Kettlde的使用有了一点点小心得,小编打算把这段期间学习和探索到的关于Kettle的东东写几篇博客记录一下,一来是可以总结一下这几天的研究成果,二来可以帮助到有需要的小伙伴们,不足之处,还请小伙伴们多多指教。

     自我介绍

        Hello大家好,我是Kettle,我是一款国外开源的ETL工具,我是纯java编写的,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。我的中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。ETL是Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程,对于IT行业(也有其他行业)来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种ETL工具的使用,必不可少。我绿色无需安装,Kettle中有两种脚本文件,transformation和job;transformation完成针对数据的基础转换,job则完成整个工作流的控制。

 e    部署运行以及可能遇见的坑

         小编用的版本是6.1,小伙伴们可以直接去官网上进行下载,解压到任意盘即可,Windows平台下,双击运行Kettle文件夹下的spoon.bat 文件,如果是Linux、AppleOSX运行的是Spoon.sh。当然安装的前提是,小伙伴们的电脑已经配置好java的环境变量了,如果java_home设置,仍然提示
  could not find the main class. Program willexit!
可以设置环境变量:PENTAHO_JAVA_HOME,变量值为:jdk的安装目录,1.6以上即可。小编的为:C:\ProgramFiles\Java\jre1.8.0_77,如果启动还是报错 ERROR:could not create the java virtualmachine! 不是Java虚拟出了问题,修改一下spoon.bat里内存配置:
  if"%PENTAHO_DI_JAVA_OPTIONS%"=="" setPENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m""-XX:MaxPermSize=256m"
 改为:
  if"%PENTAHO_DI_JAVA_OPTIONS%"=="" setPENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx1024m""-XX:MaxPermSize=256m",其中还有可能遇到的一个坑就是连接数据库找不到驱动的问题,小编的数据库是MySql,提示错误为[mysql] :org.pentaho.di.core.exception.KettleDatabaseException:
      Error occured while trying to connect tothe database
      Driver class 'org.gjt.mm.mysql.Driver'could not be found, make sure the 'MySQL' driver (jar file) is installed.
      org.gjt.mm.mysql.Driver

        解决办法:把mysql-connector-java-5.1.37-bin.jar拷贝到安装包lib的文件夹下面,然后重新启动spoon.bat即可。以上是小编在安装Kettle过程中遇到的一些问题,写下来,希望小伙伴们看到可以避免相同的坑。

     产品家族
         Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。是不是感觉来到了厨房世家!
SPOON:通过图形界面来设计ETL转换过程(Transformation)。
PAN :批量运行由Spoon设计的ETL转换(例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。
CHEF :创建任务(Job)。任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。
KITCHEN :批量使用由Chef设计的任务(例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。
  配置数据库

        配置数据库有两种方式,第一种是直接配置,另一种是在JNDI配置文件里,首先我们来看第一种配置数据库的方式,点击菜单栏文件里面有一个数据库连接,打开如下所示:


例如,小编的一些设置如下所示:


这个就是常见的工具连接数据库,填写好上述内容之后,点击测试,出现如下界面,表示数据库连接成功!

        

        ok,出现上述这个界面,说明我们的数据库已经连接成功了,这样配置数据库的优点是随时需要随时进行配置,如果需要改变连接,修改此处配置可以立即生效,缺点是如果转换的比较多,一旦需要修改数据源每个转换都要进行改动,就比较麻烦了,所以介绍第一种配置连接数据库的方式,通过配置文件,如下图所示:


所连接名称是为了在转换中好选择进行填写的,填什么都OK!

小编寄语:该博文小编主要介绍了Kettle的基础知识,包括kettle的简介,部署Kettle时可能遇见的坑,Kettle

的产品家族以及如何配置数据库的两种方式,Kettle这个ETL工具集她允许我们管理来自不同数据库的数据,好啦,

关于Kettle的一些基本知识,小编就先介绍到这里,接下来的博文中,小编将结合具体的Demo来讲解如何在实际操作

中运用Kettle,敬请期待!


3
0
查看评论

初识人工智能

人工智能,之所以冠以“”人工“,最主要是因为其模仿人类的思维过程所产生的。而“”智能“”,怎样才算智能呢?前一阵子比较火的智能家居,最主要的形式是通过各种手机APP 或者终端远程控制各种家电开关,这种智能应该名不符其实。真正的智能,应该我们是给予特定的处理原则、处理方式,然后机器会根据各种输入自己思...
  • oangeli
  • oangeli
  • 2017-01-18 23:35
  • 224

JAVA学习第一课(初识JAVA)

PS:退ACM集训队了,自己也疯玩了两天,后天就开学了,就正式大二了,该收收心好好学习啦                           ...
  • u013497151
  • u013497151
  • 2014-08-30 14:51
  • 2270

【redis 基础篇一】redis初识

在JDB来了差不多一个月的时间了,在了解公司业务和框架的过程中,看到了在通过上游调用接口的过程中,使用到了redis来调用值,上游将一个参数传过来,我们通过这个参数去redis中读取部分参数,然后将所有的信息交与下游进行核对,最后再将反馈的结果返回到上游。那么为何要用redis呢?redis和之前我...
  • huo065000
  • huo065000
  • 2016-02-28 18:57
  • 642

初识这种感觉

来到世间走一朝,都在尝着种种滋味,有苦,有甜,有悲,有喜,有恨,有爱。尝着,尝着,便没有味道了,而是显露出淡淡的,浅浅的微笑——谢谢,让我深爱过。      有种感觉萌生,那是什么?我不知道,让人欢喜也让人疼痛,却又不舍这种感觉,也渴望这种感觉。它来时,一心想拥有它,最终留下的不过是疼痛的伤...
  • mbpmatch
  • mbpmatch
  • 2014-09-30 14:38
  • 152

初识springboot

作为目前架构设计主推的微服务模式,springboot无疑是java程序员的福音,下面就开始springboot的实战之旅。 (目前已有深入应用以及与其他各大技术框架集成,本地实践笔记40余篇,后续持续连载) 通过spring4的了解,spring4加入了更多的注解,从而减少xml文件的...
  • songhaifengshuaige
  • songhaifengshuaige
  • 2016-12-22 13:18
  • 532

PHP攻城狮培养计划-PHP进阶:面向对象及TP5框架初识

PHP攻城狮培养计划-PHP进阶:面向对象及TP5框架初识 课程简介:  开往PHP进阶的火车已经进站,你的票准备好了吗?                   我能get哪些技...
  • sinat_40731586
  • sinat_40731586
  • 2017-10-28 12:53
  • 604

初识神经网络(1)

神经网络是由简单处理单元构成的大规模并行分布式处理器,天然的具有存储经验知识和使之可用的特性。神经网络在两个方面与大脑相似: 神经网络是通过学习过程从外界环境中获取知识的;互连神经元的连接强度,即突触权值,用于存储获取的知识。 用于完成学习过程的程序称为学习算法,其功能是以有序的方式改变网络的突触...
  • universe_ant
  • universe_ant
  • 2016-10-02 12:33
  • 1488

C语言从零开始——day3(数组初识)

第三节 ####   认识数组   ####         int arr[5] = {1,2,3,4,5},i = 0; //整型数组,完全初始化 //int表示该数组为整形数组   &#...
  • fsx2550553488
  • fsx2550553488
  • 2018-01-03 21:31
  • 51

MySQL学习1:初识MySQL

一什么是数据库?        数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创 建,访问,管理,搜索和复制所保存的数据。        我们也可以将...
  • erlian1992
  • erlian1992
  • 2016-05-04 20:16
  • 6512

Linux基础知识第一期《初识linux》

温馨提示:以下博文是我以前听课留下的笔记,现在共享给大家,写的不好,不过适合初学者的一份完整的linux笔记,可能会有一些瑕疵,欢迎给我留言,进行交流。个人的建议是配合视频一起看,这样有助于指令的记忆,我当时看的视频是lamp兄弟连的教学视频,大家可以上网搜搜,在这里,预祝大家学业有成。 1.li...
  • qq_29557995
  • qq_29557995
  • 2016-01-20 18:45
  • 304
    个人资料
    • 访问:926025次
    • 积分:44816
    • 等级:
    • 排名:第86名
    • 原创:257篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10819条
    你只管努力,剩下的交给时光!
    博客专栏
    QQ之家 连接我们的ODBC
    QQ联系我