欢迎光临
免费的PDF电子书下载网站

Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案 PDF下载

编辑推荐

暂无

内容简介

  《Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案》主要介绍如何使用开源ETL工具来完成数据整合工作。
《Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案》介绍的PDI(Kettle)是一种开源的 ETL 解决方案,书中介绍了如何使用PDI来实现数据的剖析、清洗、校验、抽取、转换、加载等各类常见的ETL类工作。
  除了ODS/DW类比较大型的应用外,Kettle 实际还可以为中小企业提供灵活的数据抽取和数据处理的功能。Kettle除了支持各种关系型数据库、HBase、MongoDB这样的NoSQL数据源外,它还支持Excel、Access这类小型的数据源。并且通过插件扩展,Kettle 可以支持各类数据源。本书详细介绍了Kettle可以处理的数据源,而且详细介绍了如何使用Kettle抽取增量数据。
  Kettle 的数据处理功能也很强大,除了选择、过滤、分组、连接、排序这些常用的功能外,Kettle 里的Java表达式、正则表达式、Java脚本、Java类等功能都非常灵活而强大,都非常适合于各种数据处理功能。本书也使用了一些篇幅介绍Kettle这些灵活的数据处理功能。

作者简介

  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。

Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案 PDF下载

目录

第一部分:开始
第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 数据质量

媒体评论

报表管理是销售管理的一项重要工作,面对 70多个国家合作伙伴的不同种类型的销售报表,如何通过自动化手段进行格式统一、计算和分发,是我 2009年在新兴市场集团工作时的“痛点”——是我特别想实现的,而这套方案必须要基于开源的方案来控制开发及未来维护的成本。
    Jason给我推荐开源的 ETL工具 Kettle来完成这个工作,他使用 Kettle加上开源的报表工具 Jasper,用了两个月的时间就把这套系统实现并上线了:
它可以自动从各个数据源获取数据、自动生成 Excel 报表,并自动投送到相关业务人员的邮箱里,这节省了我三个做报表的人力!而且数据更及时、准确!非常了不起!!
赵海生客户数据与市场秩序总监联想集团

    数据是投资的重要基础,但由于数据量大且指标较多,从各种不同格式的报告中摘取我们希望的数据一直是让我们头疼的事情。这一事情的改观发生在 2011年Jason为我们带来 Kettle工具之后,经过几个月的开发和测试,我们的指标自动抓取系统正式上线并一直沿用至今,它能从各种格式的报告中摘取重要的数据,这些数据形成我们分析的基础。实际上,这只是使用了 Kettle工具的一小部分功能而已,相信在数据抓取和处理领域,我们还将有更多的合作机会。
    从2011年就听到 Jason要翻译本书的计划,很高兴能看到这一目标最终实现,这是 Jason本人的一个里程碑,也是让更多的人受益于 Kettle工具的一次契机,祝 Jason和Kettle的路都越走越宽。
郑伟征业务总监北京中能兴业投资咨询有限公司

    从企业架构的角度来看,和传统的编写代码相比, ETL工具在开发实施效率(包括代码复用)、可靠性、低出错率、可维护性上*都是巨大的进步。我个人相信在企业 ETL领域,编程语言的工作未来可能会减少到总任务量的 10%,剩下 90%均需要借助 ETL工具来实现。
    本书和市面上林林总总的介绍 ETL工具的书籍不同。书籍的原作者 Matt是Kettle的核心设计与开发者( Kettle的灵魂所在),而且 Jason带领的团队对 Kettle的源代码有深入的了解,并有丰富的实践经验,他们对本书所涉及的主题有切身的体会,这样可以*限度地避免出现很多计算机译本图书出现的读者“不知所云”的情况。本书亦可以看作是 Jason在国内不遗余力推广 Kettle ETL解决方案的又一个里程碑。
徐洋葛兰素史克(中国)投资有限公司 Enterprise Architect

    数据对于每个企业来说都是极其重要的,它蕴含的价值不可限量,尤其是对于我服务的电信行业。我们做 ETL工作先是自己开发程序或者存储过程,后来慢慢转型使用 ETL工具,深刻体会到工具对于生产力发展的重要性。
随着对 ETL的认识越来越深入,要求也越来越高,尤其是一些企业特定的需求即使是*的商业 ETL软件也无法满足。在 2012年一次偶然的机会我认识了 Jason从而认识了 Kettle,在 Jason的帮助下仅用了三天时间就开发出一个定制化的组件,解决了长期困扰我们的问题, Kettle本身的灵活性、扩展性再加上 Jason的团队对这款软件的驾驭能力,都是我们公司所需要的。
在得知 Jason要翻译此书时,真的非常期待并衷心祝愿 Jason和Kettle在中国能有更好的发展。
黄磊上海理想信息产业(集团)有限公司 BI架构师

免费在线读

 

关于本书
本书起源于 2009年8月,此时 Roland和 Jos的第一本书《 Pentaho解决方案》(即 Pentaho Solutions)已经出版。正如跑过马拉松的人,他们发誓以后“再也不跑了”。但是当他们看到第一本的热烈反响,他们的态度慢慢地转变过来了。他们想如果还要写一本书的话,就要写 Kettle和数据整合。当《 Pentaho解决方案》一书的出版人 Bob Elliot问他们能否再写一本 Kettle书的时候, Kettle书的主题和目录其实都已经确定下来了。另外,还让他们受到鼓舞(和吃惊)的是,他们的配偶都鼓励他们继续写作。还有其他的好消息,当他们邀请 Matt Casters为本书审核时, Matt Casters也希望参与到本书的写作中,这当然是求之不得的事情了。
当时写《 Pentaho解决方案》一书的动力和主要原因,如今仍然存在:企业开始逐渐了解商业智能能给企业带来什么价值,并逐渐认识了开源和免费商业智能的解决方案。这些商业智能解决方案要求事先把数据集中在一起,然后再进行分析、报表和仪表盘等工作。所以商业智能项目的开始阶段都要先进行数据的整合,本书就可以帮助你进行数据整合的工作。
在过去的十多年里,各种类型的开源软件逐渐被大家认识和接受,来代替那些价格昂贵而不灵活的商业软件。人们常会错误地认为开源软件就是没有成本的,尽管从软件 License的角度看这是正确的,但一个商业智能解决方案(永远)不会免费。在一个解决方案里有硬件成本、方案实现的成本、维护的成本、培训和移植的成本,等等,所有这些费用加一起,软件 License的费用只占其中一小部分。开源降低了软件本身的成本,而且任何人都可以获得源代码,都可以发现源代码的 bug,这样也提高了代码的质量。开源软件一般都是基于开放的标准和通用的编程语言(大部分是 Java),这样使开源软件更灵活、更具扩展性。而且大多数开源软件都不局限在某个操作系统平台上,这样更扩展了软件的灵活性和自由度。
但开源软件缺少文档和手册。很多开源软件提供了高质量的代码,但开发人员因为更多地关注于软件本身而没有太多的时间写文档。尽管你可以找到很多关于 Kettle的零散的信息来源,但我们觉得有必要为正在探索 Kettle并构建数据整合解决方案的 ETL开发人员提供一个完整的信息来源。这就是本书的目的——帮助你使用 Kettle构建数据整合的解决方案。
谁需要读这本书
本书适合于想知道如何用 Kettle来构建 ETL解决方案的人。例如寻找低成本的 ETL方案的 IT经理、想扩充自己知识和技能的 IT专家、负责开发 ETL方案的 BI或数据仓库顾问。可能你是一个有丰富经验的软件开发人员,但对数据整合领域不太了解;也可能你是一个经验丰富的使用某些商业软件的 ETL开发人员,但对于 Kettle不太了解。无论哪种情况,因为有了这本参考书,你就可以直接上手了。当然读者如果能有商业智能、数据库等方面的知识更好,但在本书的开始部分会介绍一些这方面的知识。当然本书也会介绍数据整合方面的概念,但重点还是讲解如何把这些概念转换为实际的工作方案。这也是本书被命名为《 Pentaho Kettle解决方案》的原因。
阅读本书的前提
只要能做到下面两件事,你就可以开始阅读本书了:有一台计算机,能连接到互联网。本书使用到的所有软件都可以从互联网下载。对计算机的系统也没有太多的要求,有 1GB内存和 2GB空闲硬盘的,一般在 4年之内的计算机都可以很好地运行 Kettle作业。
本书一些章节里有提供软件下载的 URL地址。对于 Pentaho软件,除了源代码,还提供有 4种类型的软件版本:
GA(General Availability)releases:这是稳定的发布版本,并不是最新的版本,但是最 可靠的版本。
Release candidates:候选版本,可能会成为下一个发布版本的版本,里面可能还会有一 些未发现的 bug。
  Milestone releases:最新的里程碑版本,里面都会有一些新功能。
Nightly builds:每天的 build版本,最新的版本,也是最不稳定的版本。
在写作本书的时候,我们使用的都是每天的 build版本。在写作本书时, Kettle 4.0的GA版本已经发布了。也就是说,在你读本书的时候就可以使用没有多少 bug的正式发布的稳定版本。
Kettle社区版的下载地址是: http://wiki.pentaho.com/display/COM/Community+Edition+ Downloads。
从本书可以学到什么
本书会教给你:
  数据整合是什么,数据整合的价值。
Kettle解决方案的概念基础。
如何在单机和客户 /服务器环境下安装和配置 Kettle。
  如何使用 MySQL的Sakila演示数据库构建一个完整的端到端的 ETL解决方案。
  34种ETL子系统,如何使用 Kettle实现这 34种子系统。
Kettle如何完成数据抽取、清洗和确认、处理维度表、加载事实表、操作 OLAP立方 体。
Kettle的开发生命期。
如何在 Kettle环境里使用 Pentaho的敏捷 BI工具。
如何调度和监控作业和转换。
多个开发人员如何协同工作,如何管理不同版本的 ETL方案。
什么是数据的血统分析、影响分析、审计。 Kettle如何支持这些概念。
如何利用分区、并行化和动态集群技术提高 Kettle的性能。
如何使用复杂文件、 Web服务和 Web API。
如何使用 Kettle加载基于 Data Vault模型的企业数据仓库。
如何在其他应用中集成 Kettle,如何通过二次开发扩展 Kettle。
本书如何组织
本书解释了 ETL的概念、技术和解决方案。本书的很多场景都使用了 MySQL的Sakila数据库,除此之外,我们还通过其他不同的场景来演示不同的概念。如果例子还依赖于其他数据库,我们都确保这些例子和 MySQL数据库( 5.1版本)兼容。
这些例子都提供了在实际环境中应用所必需的技术细节。例子范围覆盖了从部门级的数据集市到企业级的数据仓库。
第一部分:开始
本书的第一部分在一个较高的层次上,对 Kettle的架构、功能等做了一个快速的介绍。这一部分包括下面几个章节。
第1章:ETL入门。介绍数据整合项目的主要概念和挑战。我们介绍事务系统和分析系统的主要区别、 ETL适用于哪些场合、如何用 ETL解决方案的不同部分来解决数据整合问题。
第2章:Kettle基本概念。介绍了 Kettle的一些基本设计原则,以及 Kettle的软件组成。我们介绍了 Kettle的基本概念,如作业、转换、步骤、步骤之间的连接等,以及它们之间的相互作用。另外本章还介绍了 Kettle如何和数据库交互、设置数据库特定的参数。本章还提供了 Kettle界面的一个快速教程。
第3章:安装和配置。介绍如何获得 Kettle软件,如何安装 Kettle。Kettle包含哪些组件,它们之间的关系,如何利用它们构建 ETL解决方案。最后,我们解释不同的配置选项、配置文件和配置文件的位置。
第4章:ETL示例解决方案——Sakila。基于 MySQL Sakila数据库,介绍一个完整的 ETL解决方案的例子。使用本章的星型模型,你可以了解如何处理缓慢变更维度以及如何加载事实表。另外本章的一个重要主题就是如何通过映射步骤重用转换。
第二部分:ETL
本书的第二部分介绍的是 Ralph Kimball博士和他的同事们提出的 34种ETL子系统。这些
ETL子系统分别在 The Kimball Group Reader(Wiley, 2010)和 The Data Warehouse Lifecycle Toolkit
(Wiley, 2008)书中介绍过。这一部分包括下面的章节。
第5章:ETL子系统。介绍不同 ETL子系统和它们的分类。四个类别分别是抽取、清洗和确认、发布、管理。在本章,我们还介绍了 Kettle如何支持这些子系统。本章是其他章节的基础,也是理解 ETL解决方案架构的必读材料。
第6章:数据抽取。它是 ETL子系统的第一类,包括了数据剖析、变更数据捕获和抽取系统。我们解释什么是数据剖析,为什么它应该是 ETL项目的第一个环节。变更数据捕获(CDC)用来检测源系统中变化的数据,我们提供了几个方案来实现 CDC。
第7章:清洗和校验。它是 ETL子系统的第二类,也是真正进行 ETL过程的地方。在大多数情况下,并非只是简单地从不同的源系统中读取数据,再发布这些数据。数据必须要一致,要删除冗余和重复的数据;多种数据编码模式要统一成一种编码模式。本章介绍了很多Kettle用于这类转换的步骤,如模糊查询步骤用来进行模糊匹配和排重。
第8章:处理维度表。这是第三类 ETL子系统“发布”的一部分。在这一章,我们先介绍什么是维度表。接着介绍如何使用“维度查询 /更新”步骤进行不同类型的加载和更新。然后再特别介绍子系统 10,代理键生成系统。其他的主题,如时间维度、杂项维度、小维度等,在本章做了一些介绍。最后介绍了递归层次。
第9章:加载事实表。本章介绍加载不同类型的事实表,本章的前半部分介绍不同的加载策略,并介绍如何处理早到和迟到的事实数据。我们介绍并演示了不同的批量加载方法。除了最常见的交易事实表外,我们还介绍了周期和累积事实表。我们还介绍了一种新型的事实表,“面向状态”的事实表。
第10章:处理OLAP数据。本章全部用来介绍 ETL子系统中的一个( 20,OLAP cube构建系统)。本章演示了如何处理三种类型的 OLAP数据源:从 XML/A和Mondrian的 cube中读取数据,读取和加载 Polo cube中的数据。
第三部分:管理和部署
本书前面部分介绍如何构建解决方案,本部分的章节主要介绍如何部署和管理解决方案。
第11章:ETL开发生命期。本章主要介绍如何使用 Kettle中的工具,设计、开发和测试一个 ETL解决方案。本章介绍了敏捷 BI开发方法,以及如何通过敏捷 BI方法加快开发过程。本章介绍了不同的测试方法,在解决方案发布之前都要使用这些测试方法进行测试。
第12章:调度和监控。本章介绍了不同的调度方法。包括操作系统调度工具,如 cron和 Windows计划任务,以及 Pentaho内置的 Pentaho BI调度平台。一般可以直接在设计环境中监控正在运行的作业和转换,但我们也介绍了如何通过日志表来获取成功或失败的作业信息。第13章:版本和移植。本章介绍如何管理不同版本的 Kettle作业和转换,通过版本管理,可以在必要的情况下,把作业回滚到前一个版本。本章介绍的另一个主题是如何在开发、测试、确认、生产环境中完成 Kettle作业的移植。
第14章:血统和审计。本章介绍如何使用 Kettle的元数据来判断数据的来源以及数据如何被使用。出于审计的目的,我们需要知道作业何时运行,运行了多久,给数据带来了哪些变化。为了完成这些需求, Kettle有可扩展的日志能力,这些我们在本章都做了详细介绍。
第四部分:性能和扩展性
本部分内容都是关于 Kettle的性能问题。 Kettle里有一些选项可以加快抽取、转换和加载的速度,本部分里的每一章都是 Kettle性能问题的一种解决方案。
第15章:性能调优。本章解释 Kettle转换引擎的工作原理,帮你找出 Kettle转换的性能瓶颈。我们也提供了关于如何提高 Kettle性能和吞吐量的几种解决方案。本章的大部分篇幅都用于介绍如何提高文本文件的处理速度,以及如何把数据尽可能快地加载到 Kettle的数据流里。
第16章:并行、集群和分区。本章介绍了关于提高 Kettle性能的更多技术内容。一般来说有两种方法:水平扩展和垂直扩展。垂直扩展的目标是充分利用单机的处理能力,充分利用多核 CPU的大内存。水平扩展是把任务分布在不同的服务器上。我们介绍如何在 Kettle里使用这两种方法来提高性能。
第17章:云计算中的动态集群。本章介绍如何使用云计算这样的大规模计算能力来提高 Kettle性能。如何把第 16章介绍的集群方式应用到云计算的环境中,我们使用 Amazon的 Elastic Computing Cloud(EC2)的云计算环境。本章另外还介绍了如何基于不同的工作负载,来动态扩展或缩减计算集群,以节省成本并提高性能。
第18章:实时数据整合。本章介绍 Kettle如何处理源源不断的实时数据流。 Kettle本身就是基于流的数据处理引擎,所以只要把 Kettle连接到一个持久的数据流或消息队列,并启动转换, Kettle就可以处理实时数据流了。
第五部分:高级主题
本书的高级主题覆盖了从几个方面演示了 Kettle的一些高级功能、如何扩展 Kettle的能力、如何把 Kettle用在第三方应用里。
第19章:Data Vault管理。本章解释了什么是数据仓库的 Data Vault(DV)模型,如何使用 Kettle加载 DV模型中的三类表:中心表、链接表、附属表。
第20章:处理复杂数据格式。本章介绍如何处理非关系型数据,包括结构化和半结构化的数据。介绍如何把键值对格式的数据转化为规则的数据,介绍如何使用正则表达式来结构化那些看上去是非结构化的数据,介绍如何处理重复分组和多值属性。这种键值对数据一般是存在所谓的无模式或 NoSQL数据库中的。
第21章:Web Services。本章介绍如何从互联网获取数据。介绍和 Web相关的一些组件,并描述了从互联网获取数据的不同方法,如 HTTP GET、POST和SOAP。另外介绍了如何使用Kettle处理一些常见的互联网数据格式,如 XML、JSON和RSS。
第22章:Kettle集成。本章演示了 Kettle如何被外部应用使用。描述了 Kettle API和几个例子。最简单的一个例子就是 Pentaho报表,它使用 Kettle转换作为数据源。
第23章:扩展Kettle。本章介绍如何写自己的插件来扩展 Kettle。介绍了如何开发不同类型的插件:包括步骤、作业项、分区类型、资源库类型和数据库类型。
附录
本书附录部分提供了如下一些快速参考。
附录A:Kettle 生态群。描述了在 Kettle的世界里都包括什么,如何获得帮助,如何使用论坛和其他用户沟通。我们还解释了如何使用 Jira,Jira是Pentaho的问题跟踪管理系统,通过 Jira我们可以查找和追踪 Bug,监控 Bug状态,并查看软件发展的路线图。
附录B:Kettle企业版特性。解释 Kettle企业版和社区版的不同,详细说明了企业版的一些特性。
附录C:内置的变量和属性参考。提供 Kettle内置的所有变量和属性的参考,在 Kettle解决方案里可以直接使用这些变量和属性。
前提
本书主要介绍的是 Kettle,Kettle的安装和使用是本书的基本内容。第 3章描述了 Kettle的安装和配置过程。但本书在介绍 Kettle的过程中,还用到了其他一些软件,这些软件也需要我们事先了解,这里统一做介绍。
Java
Kettle运行在 Java平台上。尽管 Java无处不在,而且你的机器上可能已经存在 Java,不过我们在第 3章中还是提供了安装向导和注意事项。
MySQL
MySQL数据库是本书所有例子的默认数据库。可以从 http://dev.mysql.com/downloads/mysql网站下载 MySQL。MySQL数据库几乎可以安装在任何操作系统下,可以通过下载后运行 Installer来安装,也可以通过 Linux的系统资源库来安装。如何你用的是 Ubuntu系统,而且还没有安装 MySQL数据库,可以通过运行 sudo apt-get install mysql-server命令来安装 MySQL数据库。另外还
要下载 MySQL的GUI客户端。从 MySQL 5.2开始, MySQL Workbench客户端提供数据库建模、管理和查询功能,成为一个集成的解决方案。
SQL Power Architect
为了给数据库建模,我们强烈推荐使用数据库建模工具, Kettle并不提供这个功能, Pentaho其他工具也不提供这个功能。最好的一个开源的建模工具就是 SQL Power Architect,本书也使用了这个建模工具。可以从 SQLPower的网站下载这个工具: www.sqlpower.ca/page/architect
Eclipse
Kettle使用 Java开发,使用了 Eclipse IDE集成开发环境,本书的最后一章介绍了如何使用 Eclipse开发自己的 Kettle插件。 Eclipse是一个全能工具,任何开发语言都可以使用 Eclipse开发环境。因为 Eclipse的框架灵活,使用不同的插件和视图,它还可以完成诸如数据建模、创建报表、数据挖掘之类的工作。 Eclipse可以从 www.eclipse.org/download下载。如果你运行的是 Ubuntu,也可以从软件中心下载( Ubuntu 10.4开发工具 →IDE,Ubuntu 9.10开发工具→ Programming)或运行命令 sudo apt-get install eclipse。
网络资源
本书用到的所有例子都可以从本书网站下载( www.wiley.com/go/kettlesolutions)。例子按照章节目

Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案