英特尔八核处理器:开源ETL工具kettle系列之建立缓慢增长维

来源:百度文库 编辑:中财网 时间:2024/05/05 15:50:59
摘要:本文主要介绍使用kettle 来建立一个Type 2的Slowly Changing Dimension 以及其中一些细节问题

  1. Kettle 简介

  Kettle 是一个强大的,元数据驱动的ETL工具被设计用来填补商业和IT之前的差距,将你公司的数据变成可增长的利润.

  我们先来看看Kettle能做什么:

  1. Data warehouse population with built-in support for slowly changing dimensions, junk dimensions and much, much more.

  2. Export of database(s) to text-file(s) or other databases

  3. Import of data into databases, ranging from text-files to excel sheets

  4. Data migration between database applications

  5. Exploration of data in existing databases. (tables, views, synonyms, )

  6. Information enrichment by looking up data in various information stores (databases, text-files, excel sheets, )

  7. Data cleaning by applying complex conditions in data transformations

  8. Application integration

  本系列文章主要介绍如下几点:

  1. 数据仓库内建支持缓慢增长维SCD ,

  2. 在数据转换中使用复杂条件判断来清理数据

  3. 如何使用kettle 来处理增量更形

  4. 将Kettle 集成到你的应用程序里

  5. 使用kettle中应该注意的一些地方

  2. Kettle 文档

  最好的kettle教程就在你身边,我们下载的kettle-version. zip 文件里其实已经包括了非常多的示例和文档,在你的kettle文件夹下,docs 文件夹下包含了所有的文档,samples文件夹下包含了一些示例,后面的介绍中一部分示例都来自kettle自带的这个示例文件夹下。docs里面最主要的是Spoon-version-User-Guide. zip ,里面记录了kettle 的技术性文档,包括支持的操作系统,数据库平台,文本格式,图形化的界面,其中最重要的是所有的转换对象(Transformation Core Objects) 和Job对象(Job Core Objects) 的解释,包括截图和每一个参数的解释。

  3. Kettle与Slowly Changing Dimension

  我们使用kettle自带的samples文件下的示例,来看kettle如何支持SCD的。

  打开samples / jobs / Slowly Changing Dimension 文件夹,发现里面有三个文件,

  create - populate - update slowly changing dimension.kjb

  DimensionLookup - update dimension table 2.ktr

  DimensionLookup - update dimension table.ktr

  其中后缀以 .kjb 结尾的是kettle 的job 文件导出的格式,而以ktr 结尾的是kettle 的transformation 导出的格式,打开其中的DimensionLookup - update dimension table.ktr , 出现如下所示 :

  

 

  图1

  1. 最左边的是产生测试数据,如果是实际环境的话应该是连接真实的数据库,产生的真实数据格式打开如下:

  

 

  图2

  2 第二个步骤Dummy 就是把前面的数据合并起来,Dummy 步骤本身不做任何事情,不过由于前面有四个输入指向它,所以它在第二步的作用等同于数据合并。

  3 第三个步骤是取得系统参数(get system date) , 它取得当前系统时间的日期,并且格式是当天的 00:00:00 , 如图所示

  

 

  4. 最后一步是真正的重点,执行Dimension Lookup / Update 步骤来更新和插入数据,以此来实现Type 1 ,2 ,3 的不同Slowly Changing Dimension

  

 

  图4

  

 

  图5

  在开始介绍Dimension Lookup / Update 之前,先看看在执行这个步骤之前的输入和输入:

  输入:

  字段名数据类型说明idint前面步骤的输入nameVarchar(50)前面步骤的输入firstnameVarchar(50)前面步骤的输入updatedtime从第三步来的时间参数输出:字段名数据类型说明idINT来自输入name