Kettle系统知识讲解一
发布时间:2018-07-24 16:52,
浏览次数:1419
, 标签:
Kettle
Kettle系统知识讲解一
1.kettle简介
1.数据仓库领域的一个重要概念就是数据整合。数据整合就是把不同数据库中的数据组合到一起,对外提供统一的数据视图。
2.kitchen用于执行作业,pan用于执行转换。
3.跳就是从一个作业项/步骤的中心连接到另一个作业项/步骤的一条线。在作业里跳定义的是控制流,在转换里跳定义的是数据流。
4.转换(transformation)是etl解决方案中最主要的部分,它处理抽取,转换,加载各阶段各种对数据行的操作。转换ID是数字,但是作业ID就是字符串。转换里的很多步骤是并行执行的,每个步骤都打开一个独立的数据库连接并开始一个事务。尽管这样在很多情况下会提高性能,但当不同步骤更新同一个表时,也会带来锁和参照完整性的问题。
5.kettle以插件的方式灵活地定义不同种类的资源库,但不论是哪种资源库,他们的基本要素是相同的:这些资源库都使用相同的用户界面,存储相同的原数据。目前有三种常见的资源库:数据资源库,Pentaho资源库,文件资源库。
6.KITCHEN允许你批量使用由Chef设计的任务(例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。
7.Kettle中有两种脚本文件,transformation和job。transformation完成针对数据的基础转换,job则完成整个工作流的控制。
8.Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen
9.SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。
10.PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。
11.CHEF 允许你创建任务(Job)。
任务通过执行每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务将会被检查,看看是否正确地运行了。
2.kettle下载安装
kettle官网:https://community.hitachivantara.com/docs/DOC-1009855
拉到较下部分,找到Download部分中的Older Version,然后就可以下载各个版本了。
3.常见问题
1.今天在用kettle对mysql插入空值”时,发现对空值的处理在插入mysql时,会自动转转换为null值,在网上找一下,需要在kettle.properties文件中添加如下参数,就不会自动转换了。
* windows下文件的位置:C:\Users\用户名.kettle目录中找到kettle.properties文件,增加
KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y;
* linux下文件的位置,位于安装kettle的用户所大的home目录下,在隐藏文件.kettle目录下
2.kettle解决乱码问题。
有好几方面的原因!需要设置指定连接的数据库是utf8。【同时最好保证mysql所在机器的my.ini/my.conf文件也是utf8编码】
* 1)在kettle中设置与源表/目标表表编码的格式
* 2)在mysql中配置文件my.ini中设置默认编码格式
3.kitchen -rep 资源库名称 -job 作业名称 -level Error 错误日志。kitchen 是kettle
的内置命令。错误日志的目录以及保存的日志文件都得手动建立
4.使用kitchen运行文件,命令如下:
D:\Program Files\pdi-ce-7.1.0.0-12\data-integration>kitchen /file
E:\kettle\MyKettle\JOB_TEMPLATE_PMS.kjb
主要日志输出如下:
WARNING: Using java from path DEBUG: _PENTAHO_JAVA_HOME= DEBUG:
_PENTAHO_JAVA=java.exe D:\Program Files\pdi-ce-7.1.0.0-12\data-integration
C:\Windows\system32 系统找不到指定的路径。 系统找不到指定的路径。 C:\Windows\System32>"java.exe"
"-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"
"-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=libswt\win64"
"-DKET