vlambda博客
学习文章列表

《Pentaho Kettle解决方案》学习体会01

  首先ETL是将数据从OLTP系统转移到数据仓库中的一系列的操作的集合,当然一些etl工具也可以进行出 库入库以及不同数据文件之间的转换。
kettle是用Java编写的elt工具,功能强大。
转换是etl解决方案中最主要的部分,它处理抽取,转换,加载各阶段各种对数据行的操作,转换包括一个 或多个步骤,比如读取文件,过滤输出行,数据清洗或将数据加载到数据库中。
  在转换中,kettle使用并行的形式执行,,当转换启动后,所有的步骤同时启动,从它们的输入连接中 读取数据,并把处理过的数据写到输出步骤,直到输入步骤里不再有数据,就终止步骤的运行。当所有的 步骤都终止了,整个转换就终止了。
  大多数ETL工具需要完成各种各样的维护工作。例如,当运行中发生错误,要做哪些操作:如何传送文件 ,验证数据库表是否存在,等等。而且这些操作需要按照一定的顺序来执行。因为转换以并行的方式执行 ,就需要一个可以串行执行的作业来处理这些操作。
JavaScript作业项是一个功能强大的作业项,可以实现更高级的流程处理功能。
  连接和事务:数据库连接只在执行作业和转换中使用,在作业中,每一个作业项都打开和关闭一个独立的数据库连接。转换也是如此。但是因为转换中的步骤是并行执行的,每个步骤都打开一个独立的数据库连接并开始一个事务。尽管这样在很多情况下会提高性能,但当不同步骤更新同一个表时,也会带来锁和参照完整性的问题。为了解决打开多个连接而产生的问题,Kettle可以在一个事务中完成转换,转换设置对话框的选项“转换放在数据库事务中”,可以完成此功能。
  kettle组件:Spoon,集成开发环境;Kitchen,作业的命令行运行程序,可以通过shell脚本来调用。Pan,转换的命令行运行程序;Carte,轻量级的HTTP服务器(基于jetty)。