第一部分:开始

1         ETL入门

1.1   OLTP和数据仓库对比

1.2   ETL是什么

1.2.1          ETL解决方案的演化过程

1.2.2          ETL基本构成

1.3   ETL、ELT和EII

1.3.1          ETL

1.3.2          EII:虚拟数据整合

1.4   数据整合面临的挑战

1.4.1          方法论:敏捷BI

1.4.2          ETL设计

1.4.3          获取数据

1.4.4          数据质量

1.5   ETL工具的功能

1.5.1          链接

1.5.2          独立平台

1.5.3          数据规模

1.5.4          设计灵活性

1.5.5          复用性

1.5.6          扩展性

1.5.7          数据转换

1.5.8          测试和调试

1.5.9          血统和影响分析

1.5.10      日志和审计

1.6   小结

2         Kettle基本概念

2.1   设计原则

2.2   Kettle涉及模块

2.2.1          转换

2.2.2          作业

2.2.3          转换或作业的元数据

2.2.4          数据库连接

2.2.5          工具

2.2.6          资源库

2.2.7          虚拟文件系统

2.3   参数和变量

2.3.1          定义变量

2.3.2          明明参数

2.3.3          使用变量

2.4   可视化编程

2.4.1          开始

2.4.2          创建新的步骤

2.4.3          放在一起

2.5   小洁

3         安装和配置

3.1   Kettle软件概览

3.1.1          集成开发环境:Spoon

3.1.2          命令行启动:Kitchen和Pan

3.1.3          作业服务器:Carte

3.1.4          Enar.bat和encr.sh

3.2   安装

3.2.1          Java环境

3.2.2          安装Kettle

3.3   配置

3.3.1          配置文件和.Kettle目录

3.3.2          用于启动Kettle的Shell脚本

3.3.3          管理JDBC驱动

3.4   小结

4         ETL示例解决方案——SaKila

4.1   Sakila

4.1.1          Sakila示例数据库

4.1.2          租赁业务的星型模型

4.2   预备知识和一些基础的Spoon技巧

4.2.1          安装ETL解决方案

4.2.2          Spoon使用

4.3   ETL实例解决方案

4.3.1          生成静态维度

4.3.2          循环加载

4.4   小结

第二部分:ETL

5         ETL子系统

5.1   34种子系统介绍

5.1.1          抽取

5.1.2          清洗和更正数据

5.1.3          数据发布

5.1.4          管理ETL环境

5.2   小结

6         数据抽取

6.1   Kettle数据抽取概览

6.1.1          文件抽取

6.1.2          数据库抽取

6.1.3          Web数据抽取

6.1.4          基于流的和实时的抽取

6.2   处理ERP和CRM系统

6.2.1          ERP挑战

6.2.2          Kettle  ERP插件

6.2.3          处理SAP数据

6.2.4          ERP和CDC问题

6.3   数据剖析

6.4   CDC:变更数据捕获

6.4.1          基于源数据的CDC

6.4.2          基于触发器的CDC

6.4.3          基于快照的CDC

6.4.4          基于日志的CDC

6.4.5          哪个CDC方案更适合你

6.5   发布数据

6.6   小结

7         清洗和校检

7.1   数据清洗

7.1.1          数据清洗步骤

7.1.2          使用参照表

7.1.3          数据校验

7.2   错误处理

7.2.1          处理过程错误

7.2.2          转换错误

7.2.3          处理数据(校验)错误

7.3   审计数据和过程质量

7.4   数据排重

7.4.1          去除完成重复的数据

7.4.2          不完全重复问题

7.4.3          设计排查重复记录的转换

7.5   脚本

7.5.1          公式

7.5.2          Java脚本

7.5.3          用户自定义Java表达式

7.5.4          正则表达式

7.6   小结

8         处理维度表

8.1   管理各种键

8.1.1          管理业务键

8.1.2          生成代理键

8.2   加载难度表

8.2.1          雪花维度表

8.2.2          星型维度表

8.3   缓慢变更维度

8.3.1          缓慢变更维类型

8.3.2          类型1的缓慢变更维

8.3.3          类型2的缓慢变更维

8.3.4          其他类型的缓慢变更维

8.4   更多维度

8.4.1          生成维(Generated Dimensions)

8.4.2          杂项维度(Junk Dimensions)

8.4.3          递归层次

8.5   小结

9         加载事实表

9.1   批量加载

9.1.1          STDIN和FIFO

9.1.2          Kettle批量加载

9.1.3          批量加载一般要考虑的问题

9.2   维度查询

9.2.1          维护参照完整性

9.2.2          代理键管道

9.2.3          迟到数据

9.3   处理事实表

9.3.1          周期快照和累积快照

9.3.2          面向状态的事实表

9.3.3          加载周期快照表

9.3.4          加载累积快照表

9.3.5          加载面向状态事实表

9.3.6          加载聚集表

9.4   小结

10     处理OLAP数据

10.1     OLAP的价值和挑战

10.1.1      OLAP存储类型

10.1.2      OLAP在系统中的位置

10.1.3      Kettle OLAP选项

10.2     Mondrian

10.3     XML/A服务器

10.4     Palo

10.4.1      建立Palo连接

10.4.2      Palo架构

10.4.3      读Palo数据

10.4.4      写Palo数据

10.5     小结

第三部分:管理和部署

11     ETL开发生命期

11.1     解决方案设计

11.1.1      好习惯和坏习惯

11.1.2      ETL流设计

11.1.3      可重用性和可维护性

11.2     敏捷开发

11.3     测试和调试

11.3.1      测试活动

11.3.2      ETL测试

11.3.3      调试

11.4     解决方案文档化

11.4.1      为什么实际情况下文档很少

11.4.2      Kettle的文档功能

11.4.3      生成文档

11.5     小结

12     调度和监控

12.1     调度

12.1.1      操作系统调度

12.1.2      使用Pentaho内置的调度程序

12.2     监控

12.2.1      日志

12.2.2      邮件通知

12.3     小结

13     版本和移植

13.1     版本控制系统

13.1.1      基于文件的版本控制系统

13.1.2      内容管理系统

13.2     Kettle元数据

13.2.1      Kettle XML元数据

13.2.2      Kettle资源库元数据

13.3     管理资源库

13.3.1      导出和导入元数据

13.3.2      资源库升级

13.4     版本移植系统

13.4.1      管理XML文件

13.4.2      管理资源库

13.4.3      解决方案参数化

13.5     小结

14     血统和审计

14.1     批量血统抽取

14.2     血统

14.2.1      血统信息

14.2.2      影响分析信息

14.3     日志和操作元数据

14.3.1      日志基础

14.3.2      日志架构

14.3.3      日志表

14.4     小结

第四部分:性能和扩展性

15     性能调优

15.1     转换性能:找到最弱的连接

15.1.1      通过简化找到性能瓶颈

15.1.2      通过度量值找到性能瓶颈

15.1.3      复制数据行

15.2     提高性能转换

15.2.1      提高读文本文件的性能

15.2.2      写文本文件时使用延迟转换

15.2.3      提高数据库性能

15.2.4      数据排序

15.2.5      减少CPU消耗

15.3     提高作业性能

15.3.1      作业里的循环

15.3.2      数据库连接池

15.4     小结

16     并行、集群和分区

16.1     多线程

16.1.1      数据行分发

16.1.2      记录行合并

16.1.3      记录行再分发

16.1.4      数据流水线

16.1.5      多线程的问题

16.1.6      作业中的并行执行

16.2     使用Carte子服务器

16.2.1      配置文件

16.2.2      定义子服务器

16.2.3      远程执行

16.2.4      监视子服务器

16.2.5      Carte安全

16.2.6      服务

16.3     集群转换

16.3.1      定义一个集群模式

16.3.2      设计集群转换

16.3.3      执行和监控

16.3.4      元数据转换

16.4     分区

16.4.1      定义分区模式

16.4.2      分区的目标

16.4.3      实现分区

16.4.4      内部变量

16.4.5      数据库分区

16.4.6      集群转换中的分区

16.5     小结

17     云计算中的动态集群

17.1     动态集群

17.1.1      建立动态集群

17.1.2      使用动态集群

17.2     云计算

17.3     EC2

17.3.1      如何使用EC2

17.3.2      成本

17.3.3      自定义AMI

17.3.4      打包新AMI

17.3.5      中止AMI

17.3.6      运行主节点

17.3.7      运行子节点

17.3.8      使用EC2集群

17.3.9      监控

17.3.10   轻量原则和持久性

17.4     小结

18     实时数据的集合

18.1     实时ETL介绍

18.1.1      实时处理面临的挑战

18.1.2      需求

18.2     基于流的转换

18.2.1      一个基于流的转换实例

18.2.2      调试

18.2.3      第三方软件和实时整合

18.2.4      Java消息服务

18.3     小结

第五部分:高级主题

19     Data Vault管理

19.1     Data Vault模型介绍

19.2     你是否需要Data Vault

19.3     Data Vault组成部分

19.3.1      中心表

19.3.2      链接表

19.3.3      附属表

19.3.4      Data Vault特点

19.3.5      构建Data Vault模型

19.4     将Sakila的例子转换成Data Vault模型

19.4.1      Sakila 中心表

19.4.2      Sakila 链接表

19.4.3      Sakila 附属表

19.5     加载Data Vault模型:简单的ETL解决方案

19.5.1      安装Sakila Data Vault

19.5.2      安装ETL方案

19.5.3      创建一个数据库账户

19.5.4      ETL解决方案的例子

19.5.5      加载Data Vault表

19.6     从Data Vault模型更新到数据集市

19.6.1      ETL解决方案例子

19.6.2      dim_actor转换

19.6.3      dim_customer转换

19.6.4      dim_film转换

19.6.5      dim_film_actor_birdge转换

19.6.6      fact_rental转换

19.6.7      加载星型模型里的所的表

19.7     小结

20     处理复杂数据格式

20.1     非关系型和非表格型的数据格式

20.2     非结构化的表格型数据

20.2.1      多处理值字段

20.2.2      处理重复的字段组

20.3     半结构化的和非结构化的数据

20.4     键/值对

20.5     小结

21     Web Service

21.1     Web页面和Web Service

21.2     数据格式

21.2.1      XML

21.2.2      HTML

21.2.3      JavaScript Object Notation

21.3     XML例子

21.3.1      XML例子

21.3.2      从XML中抽取数据

21.3.3      生成XML文档

21.4     SOAP例子

21.4.1      使用”Web服务查询”步骤

21.4.2      直接访问SOAP服务

21.5     JSON例子

21.5.1      Freebase项目

21.5.2      使用Kettle抽取Freebase数据

21.6     RSS

21.6.1      RSS结构

21.6.2      kettle对RSS的支持

21.7     小结

22     Kettle集成

22.1     Kettle API

22.1.1      LGPL协议

22.1.2      Kettle  Java  API

22.2     执行存在的转换和作业

22.2.1      执行一个转换

22.2.2      执行一个作业

22.3     应用程序中嵌入Kettle

22.3.1      Pentaho报表

22.3.2      把数据放到转换里

22.3.3      动态转换

22.3.4      动态模版

22.3.5      动态作业

22.3.6      在Kettle里执行动态ETL

22.3.7      Result

22.3.8      替换元数据

22.4     OEM版本和二次发布版本

22.4.1      创建PDI的OEM版本

22.4.2      Kettle的二次布(Forking)

22.5     小结

23     扩展Kettle

23.1     插件架构

23.1.1      插件类型

23.1.2      架构

23.1.3      前提

23.2     转换步骤架构

23.2.1      StempMetaInterface

23.2.2      StepDataInterface

23.2.3      StepDialoginterface

23.2.4      StepInterface

23.3     用户自定义Java类步骤

23.3.1      传递元数据

23.3.2      访问输入和字段

23.3.3      代码片段

23.3.4      例子

23.4     作业项插件

23.4.1      JobEntryInterface

23.4.2      JobEntryDialogInterface

23.5     分区插件

23.6     资源库插件

23.7     数据类型插件

23.8     小结

附录A Kettle生态群

附录B Kettle企业版特性

附录C 内置的变量和属性参考

[目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案的更多相关文章

  1. 开源ETL工具之Kettle介绍

    What 起源 Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,最新稳定版为7.1. 2005年12月,Kettle从2.1版本开始进入了开源 ...

  2. 开源ETL工具kettle系列之常见问题

    开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...

  3. Pentaho Kettle 6.1连接CDH5.4.0集群

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载 最近把之前写的Hadoop MapReduce程序又总结了下,发现很多逻辑基本都是大致相同的,于是想到 ...

  4. 【转】使用kettle工具遇到的问题汇总及解决方案

    使用kettle工具遇到的问题汇总及解决方案   转载文章版权声明:本文转载,原作者薄海 ,原文网址链接 http://blog.csdn.net/bohai0409/article/details/ ...

  5. 《Hadoop高级编程》之为Hadoop实现构建企业级安全解决方案

    本章内容提要 ●    理解企业级应用的安全顾虑 ●    理解Hadoop尚未为企业级应用提供的安全机制 ●    考察用于构建企业级安全解决方案的方法 第10章讨论了Hadoop安全性以及Hado ...

  6. 数据层交换和高性能并发处理(开源ETL大数据治理工具--KETTLE使用及二次开发 )

    ETL是什么?为什么要使用ETL?KETTLE是什么?为什么要学KETTLE?        ETL是数据的抽取清洗转换加载的过程,是数据进入数据仓库进行大数据分析的载入过程,目前流行的数据进入仓库的 ...

  7. 面向企业级的开源WebGIS解决方案--MapGuide(对比分析)

    在技术特点.功能.架构等方面,MapGuide与其他WebGIS产品有什么区别?本文主要从此角度来介绍MapGuide的特性,以供参考.    本人选择了比较熟悉的几款WebGIS产品:MapServ ...

  8. 我的开源GIS解决方案之路

    好久没更新了,因为我在--憋--大--招--,对,就是今天这篇. 今天跟大家分享一下我的开源GIS解决方案经历. --额-- 考虑到单聊技术解决方案你可能会很快睡着,所以我今天会把重点放在我封装地图A ...

  9. zabbix企业级的分布式开源监控解决方案 v5.0 LTS

    目录 zabbix简介 服务模块 客户端守护进程 监控流程 功能拆解 安装 zabbix 5.0 LTS 参考官网 zabbix 5.0.12-1.el7 zabbix-server相关优化 1. 字 ...

随机推荐

  1. hive数据导出和常用操作

    导出到本地文件 insert overwrite local directory '/home/hadoop'select * from test1; 导出到hdfs insert overwrite ...

  2. yiStack平台维护

    <一.> yiStack 二次封装 Iso通用发行版相关配置属性值替换1.1.yiStack AIO一体机环境根据部署子网替换修改示例如下:主要修改替换isolinux/ks-aio.cf ...

  3. php 单例设计模式 example

    <?php class User { //静态变量保存全局变量 private static $_instance=null; //私有化构造函数,防止外界实例化对象 private funct ...

  4. http://www.cnblogs.com/vowei/archive/2012/08/24/2654287.html

    原创开源项目 - 扩展iQuery - 知平软件 - 博客园 return node.getProperty("mBottom").getValue();

  5. poj2000

    为了凑今天的数,大水题.不解释了,说来惭愧. #include <stdio.h> int main(){ int n; int i,cnt,j; int tot; while(~scan ...

  6. Linux下对于inode的理解

    0x01 什么是inode 文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector),每个扇区储存512字节: 操作系统读取硬盘时,不会一个个扇区地读取,这样效率低,而是一次性连续读取多个扇区 ...

  7. Android IOS WebRTC 音视频开发总结(三八)-- tx help

    本文主要介绍帮一个程序员解决webrtc疑问的过程,文章来自博客园RTC.Blacker,支持原创,转载请说明出处(www.rtc.help) 这篇文章内容主要来自邮件,为什么我会特别整理到随笔里面来 ...

  8. 解决Access连接 accdb 不可识别的数据库格式异常

    在Access07之前的数据库后缀名均为*.mdb 而连接字符串写成Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myFolder\*.mdb ;Pe ...

  9. 如何消除选定TextBox后的光标但又不失去焦点。

    情景描述: 选择TextBox里的内容 Name:textTile 但是没有光标. 相关实现代码: [DllImport("user32", EntryPoint = " ...

  10. SDUST 作业10 Problem D 魔方阵

    Description 所谓N阶魔方阵,是一个N*N的方阵,其元素由1到N^2组成,且方阵每行每列以及对角线的元素和相等.如三阶魔方阵: 8 1 6 3 5 7 4 9 2     魔方阵的规律如下: ...