新書推薦:
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:HK$
99.7
《
无端欢喜
》
售價:HK$
76.2
《
股票大作手操盘术
》
售價:HK$
53.8
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:HK$
87.4
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:HK$
44.6
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:HK$
134.2
《
养育女孩 : 官方升级版
》
售價:HK$
50.4
《
跨界:蒂利希思想研究
》
售價:HK$
109.8
內容簡介:
《Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案》主要介绍如何使用开源ETL工具来完成数据整合工作。
《Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案》介绍的PDIKettle是一种开源的 ETL 解决方案,书中介绍了如何使用PDI来实现数据的剖析、清洗、校验、抽取、转换、加载等各类常见的ETL类工作。
除了ODSDW类比较大型的应用外,Kettle 实际还可以为中小企业提供灵活的数据抽取和数据处理的功能。Kettle除了支持各种关系型数据库、HBase、MongoDB这样的NoSQL数据源外,它还支持Excel、Access这类小型的数据源。并且通过插件扩展,Kettle 可以支持各类数据源。本书详细介绍了Kettle可以处理的数据源,而且详细介绍了如何使用Kettle抽取增量数据。
Kettle 的数据处理功能也很强大,除了选择、过滤、分组、连接、排序这些常用的功能外,Kettle 里的Java表达式、正则表达式、Java脚本、Java类等功能都非常灵活而强大,都非常适合于各种数据处理功能。本书也使用了一些篇幅介绍Kettle这些灵活的数据处理功能。
《Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案》后面章节介绍了如何在 Kettle 上开发插件,如何使用Kettle处理实时数据流,以及如何在Amazon AWS上运行Kettle 等一些高级主题。
除了介绍PDIKettle工具的使用和功能,本书还结合Kimball博士的数据仓库和ETL子系统的理论,从实践的角度介绍数据仓库的模型设计、数据仓库的构建方法,以及如何使用 PDI实现Kimball博士提出的34种ETL子系统。
關於作者:
Matt Casters是一位具有多年工作经验的独立商业智能顾问。他为许多大公司建立了无数个数据仓库和 BI解决方案。在过去的 8年里, Matt Casters把自己的时间都用于研发一个 ETL工具—— Kettle。2005年12月, Kettle成为开源软件。 2006年初期, Kettle走进 Pentaho。随后, Matt就职于 Pentaho,成为数据集成总监。在 Pentaho,他继续从事 Kettle的研发工作。 Matt致力于帮助建设 Kettle社区,回答论坛上的提问,有时在世界会议上发表演讲。
Roland Bouman目前从事前台页面和商业智能的研发工作。他从 1998年开始从事 IT行业。多年来一直致力于开源软件的研发,尤其是数据库技术、商业智能以及页面开发框架。同时, Roland Bouman还是 MySQL和Pentaho社区的成员。他经常参加 MySQL使用者会议、 OSCON、 Pentaho社区等国际会议。 Roland Bouman不仅是 MySQL 5 1 Cluster Certification Guide和Pentaho Solutions两本书的合著者之一,也是 MySQL和Pentaho相关书籍的技术评论家。
Jos van Dongen是一位著名的商业智能专家、作家和演说家。他从 1991年开始从事软件开发、商业智能以及数据仓库等领域的工作。 Jos van Dongen曾先后就职于顶级的系统集成公司和管理咨询公司。 1998,他创立了自己的咨询公司, Tholis Consulting。他为许多商业和福利组织构建了 BI和数据仓库系统。 Jos为丹麦 Database Magazine撰写了新的 BI研发成果,并且经常在国内和国际会议上发言。 Jos van Dongen撰写了一本关于开源 BI的书,并且和 Roland Bouman合作编写了 Pentaho Solutions。
目錄 :
第一部分:开始
第1章 ETL入门
1.1 OLTP和数据仓库对比
1.2 ETL是什么
1.2.1 ETL解决方案的演化过程
1.2.2 ETL基本构成
1.3 ETL、ELT和EII
1.3.1 ELT
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 Encr.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 XMLA服务
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 基于文件的版本控制系统 239
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_bridge 转换
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 Services
21.1 Web 页面和Web Services
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 StepMetaInterface
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 内置的变量和属性参考