首页>参考读物>计算机科学与技术>数据库

企业数据湖
作者 : [印度]汤姆斯·约翰(Tomcy John) 潘卡·米斯拉(Pankaj Misra)著
译者 : 张世武 李想 张浩林 译
丛书名 : 大数据技术丛书
出版日期 : 2018-12-19
ISBN : 978-7-111-61553-8
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 390
开本 : 16
原书名 : Data Lake for Enterprises
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书分为三个主要部分。第一部分介绍了数据湖的概念、企业中数据湖泊的重要性,以及Lambda架构的最新进展。第二部分将深入研究使用Lambda架构构建数据湖的主要组件,介绍了一些流行的大数据技术,如Apache Hadoop、Spark、Sqoop、Flume和弹性搜索。第三部分以实际操作的方式展示如何实现一个企业数据湖,并介绍了几个实际的用例,而且展示了如何将其他外围组件添加到湖中以提高效率。在本书的最后,读者将能够选择正确的大数据技术,使用lambda架构模式来构建企业数据湖。

图书特色

企业数据湖Data Lake for Enterprises
[ 印度 ]  汤姆斯·约翰(Tomcy John) 潘卡·米斯拉(Pankaj Misra) 著 张世武 李想 张浩林 译
GE Aviation Digital公司CTO Thomas Benjamin亲笔作序推荐
从软件工程师、架构师角度出发,系统阐述数据湖与Lambda架构原理及实践

图书前言

对许多企业来说,数据变得越来越重要,数据的重要性在多个方面得到了凸显。事实上,企业正在用核心数据来改善自己的运营。本书将首先介绍什么是数据,它与企业的相关性,以及企业如何利用这些数据以数字化的方式改变自己。为了利用数据,企业需要能存储海量数据的“仓库”,在当今时代,这些仓库不再被称为“数据仓库”,相反,它们被称为“数据湖”。
正如今天所看到的,我们有很多利用了大数据技术的用例。数据湖的概念已经存在了很长时间,但直到最近它才在企业中得到真正的关注。本书将这两个方面结合在一起,使用最新的大数据技术,并遵循良好的架构模式,提供了可立即上手的、成熟的、能稳定运行的数据湖。
本书将把数据湖和Lambda架构结合在一起,帮助读者在他们的企业中实际操作这些内容。本书从较高的层次引入了大量的大数据技术,但是我们不打算将它定位为涉及很多技术框架的权威指南,因为书中涉及的每一种技术框架都值得用一本书来深入介绍它们。
本书用所选的技术框架涵盖了数据湖、Lambda架构模式的解释和实现。当然,这些具体的技术可以在将来或者根据组织设置的标准来替换。所以,本书内容中的精髓不仅在现在,而且在将来很长一段时间内都是有效的。因此,与同一领域的其他那些依赖具体技术框架的书籍相比,本书的“保鲜期”更长。
本书将带你踏上一段奇妙的旅程,在这个过程中,它遵循一种既直观又令人兴奋的结构。
本书涵盖的内容
本书分为3部分。每部分都包含若干章,当一个部分完成后,读者将会从整体上理解该部分内容。这些部分的设计和结构使得读者首先了解主要的功能和技术;然后在接下来的部分,或者更确切地说,在本书最后一部分中,一切都会被整合在一起。在本书的末尾,读者将实现一个可操作的数据湖。
第一部分,向读者介绍了与数据、数据湖及其重要组件相关的各种概念。此部分共分4章,如下所列,各章都有明确的目标。
第1章,以通用的方式向读者介绍什么是数据,以及数据与企业的相关性。该章解释了在当前社会数据为什么重要,以及应该如何使用它们。现实生活中的各种用例已经展示了数据的重要性以及数据是如何改变企业的。这些真实的案例将启发读者的创造性思维,并思考如何利用数据来改变自己的企业。
第2章,进一步深入了解数据湖概念的细节,并解释使用数据湖能解决企业面临的哪些问题。该章还提供了关于Lambda架构以及如何将其用于数据湖的内容。到该章结束,读者将了解数据湖的概念和组织构建数据湖所采用的各种方法。
第3章,详细介绍Lambda架构、它的各种组件以及数据湖与此架构模式之间的关联。在该章中,读者将详细了解Lambda架构,包括它产生的原因和能解决的具体问题。该章还将帮助读者理解Lambda架构的核心概念以及如何在企业中应用它的能力。读者还将理解各种设计模式和组件,在构建Lambda架构时它们可以帮助实现批处理和实时数据处理。现在,读者对数据、数据湖和Lambda架构应该有了足够的了解,可以跳到下一节,学习如何为所在企业实现数据湖。
第4章,向读者介绍可用于Lambda架构每一层(组件)的技术,还将帮助读者选择一个市场中领先且让我们感觉非常棒的技术。在该章中,读者将了解当前大数据技术领域中的各种Hadoop发行版本,以及如何利用它们在企业数据湖中构建Lambda架构。在这些技术背景下,读者将了解企业数据湖中批处理层、快速处理层和服务层背后的细节及设计动机。
第二部分,向读者介绍了许多技术,这些技术将是数据湖实现的一部分。此部分中的每一章都涉及一种技术框架,它们逐步被用于构建数据湖和用例,即单一客户视图(SCV)。几乎每一章中讨论的技术的所有重要技术细节都将以整体的方式被涵盖,因为过于深入的探讨超出了本书的范围。此部分由6章组成,每章都有一个明确的目标,如下所述。
第5章,对Apache Sqoop做了深入的介绍,给出了选择这种技术框架的理由,也向读者提供了其他技术选项相关的大量细节。该章还给出了数据湖和Lambda架构的详细实例。在该章中,读者将理解Sqoop框架以及其他用于将数据从企业数据源加载到数据湖的类似工具。读者也将了解Sqoop架构相关的各种技术细节,还可以通过示例了解Sqoop的实际操作以及使用Hadoop技术时涉及的各种步骤。
第6章,将深入学习Apache Flume,它是一个中间环节,与数据湖及Lambda架构中的其他技术框架衔接。读者将会理解Flume作为一个框架,数据湖通过哪些模式来使用它。读者还将了解Flume架构和技术实现细节,并使用该框架来获取和使用数据,其中还包括了使用特定的功能来处理事务控制、数据重放的示例。读者还将了解如何使用流式数据处理技术来进行基于流的处理。
第7章,将深入介绍Apache Kafka。该章最开始给出了选择一种特定技术的理由,同时列举了其他技术选项的细节。在这一章中,读者将会理解Kafka是一个面向消息的中间件,同时会了解它与其他消息中间件的差异。读者可以从客户端(发布者)、代理和消费者(订阅者)的角度来了解Kafka及其功能的细节,以及如何利用它来构建水平扩展能力。读者还将了解如何将Kafka与Hadoop组件集成以获取企业数据,以及这种集成给数据湖带来的功能。
第8章,读者将理解基于流式数据和流式处理的概念,特别是关于Apache Flink的概念。读者将深入研究数据湖和大数据技术背景下的Apache Flink,通过示例演示Flink的实时数据处理。读者还将认识到流式处理功能如何依赖于架构中的各种其他层,以及这些层如何影响流式处理能力。
第9章,将深入介绍Apache Hadoop。在这一章中,读者将更深入地了解Hadoop,对其有一个全面的认识,同时尝试使用各种Hadoop组件及一些特定功能,这些组件可以为企业数据湖提供服务。在数据湖背景下,将在实现级上对Hadoop进行解释,如Hadoop框架是如何实现文件存储、不同文件格式数据处理和MapReduce范式的。Hadoop可以构成数据湖的基础,Hadoop技术栈也能提供近实时处理能力。
第10章,会深入研究Elasticsearch。读者将理解Elasticsearch作为数据索引框架的作用以及如何利用该框架提供的各种分析器进行有效的搜索。读者还将理解数据湖如何有效利用Elasticsearch的分片和分发机制来提供高效的一致性数据服务,了解如何使用Elasticsearch来处理快速流式数据,及构建高性能应用。
第三部分,将汇集本书第一部分和第二部分的技术组件,为读者提供数据湖的整体视图。我们将以简短的方式引入额外的概念和技术,如果有需要,读者可根据企业需求更深入地探索这些内容。另外,深入研究该章所涵盖的技术超出了本书的范围。但是,我们仍希望读者了解这些附加技术,以及在需要时如何将它们引入数据湖实现。本部分由两章组成,每章都有一个明确的目标,下面会详细叙述。
第11章,将所有技术点整合在一起,在向读者介绍完数据湖、Lambda架构及其他各种技术之后,为读者展示了整体的图景。到了这个阶段,读者应该有成就感,这时可以将代码库组织起来,展示它是如何工作的。在这一章中,读者将会意识到如何集成数据湖的各个组件来实现一个功能完备的数据湖。读者还将通过运行范例来实现数据湖的完整性,将前几章学习的内容结合在一起,完成一个可运行的数据湖实现。
第12章,贯穿本书,读者通过单一客户视图的形式来理解用例;然而,在浏览本书的过程中,还有其他与组织相关的用例,读者可对它们进行深入的思考。在这一章中,这种思想得到了进一步的阐发。读者将理解并实现各种用例,这些用例可以从数据湖中获得巨大的回报,并帮助优化它们的持有、运营和活动成本,还能从这些数据使用中推导出商业智能。在该章中,读者还将认识到这些用例的多样性以及企业数据湖能为这些用例提供多大程度的帮助。
阅读本书的必备条件
本书面向开发人员、架构师和产品/项目负责人,用于实现基于Lambda架构的企业数据湖。书中包括可运行范例,用以帮助读者理解和观察围绕数据湖及其基本实现的各种概念。为了运行这些范例,需要使用各种开源软件、所需的基础设施和开发IDE。我们努力保持示例简洁并利用常见的框架和组件。用于运行这些示例的操作系统为CentOS 7,但是这些示例可以在Linux操作系统的任何版本上运行。
本书的目标读者
致力于实现企业数据湖的Java开发者和架构师。
致力于实践Lambda架构和大数据技术的Java开发者。
致力于探索大数据技术并渴望利用大数据技术提供解决方案的Java开发者。
排版约定
在本书中,不同的文本样式用来区分不同的信息。下面是一些例子,以及每种样式的解释。
代码块样式如下所示:

命令行输入或输出样式如下所示:

警告或重要的注意事项。
提示或技巧。
范例下载
本书的范例代码可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账户下载。
本书涉及的代码也托管在GitHub上,请参考https://github.com/PacktPublishing/Data-Lake-for-Enterprises。

上架指导

大数据

封底文字

印象中这是我读过的第一本数据湖著作。数据湖逐渐演变成大数据架构的通用解决方案。本书对数据湖及Lambda架构有非常精准的介绍,理论性跟实践性结合得很好。在WiFi万能钥匙的很多业务线中都有数据湖应用场景,如果能早点读到本书,相信能极大减少技术探索的时间。
—— 章动,WiFi万能钥匙精准内容大数据总监
数据湖遵循了Lambda架构设计理念,整合了现有的各项大数据技术,从而实现了离线与在线、批量与流式的有机统一。本书介绍的设计思想和具体技术实现,包括对现有技术的评估选型,都极具参考价值。
            —— 梁磊,蚂蚁金服人工智能高级技术专家
数据湖技术涵盖了大数据处理的全周期。本书对4V、数据获取、消息队列、ETL、大数据存储、计算引擎、Lambda架构等方面有非常精彩的叙述,深入浅出,图文并茂,值得各种层次的读者研读。
—— 左春伟,淘宝高级技术专家
如今,大数据技术通常涉及多种框架的整合,初学者往往深陷技术细节的泥潭难以自拔。数据湖是对大数据技术的系统性梳理,对其进行了模块化、可插拔的架构设计,能满足4V的弹性要求。本书对数据湖原理及Lambda架构有着非常详细的阐述,值得推荐。
—— 陈铁兵,滴滴出行资深工程师
数据湖技术是基于现有大数据技术深度整合出来的一套全面的解决方案。在DT时代,企业在运营决策上对数据有强烈的依赖,数据湖技术不仅是技术框架,更是一种思维框架。本书对数据湖技术及其设计思维方式进行了全面而深入的介绍,强烈推荐给数据开发相关的读者。
—— 王尧,美团大众点评技术专家

作者简介

[印度]汤姆斯·约翰(Tomcy John) 潘卡·米斯拉(Pankaj Misra)著:汤姆斯·约翰(Tomcy John)是一名企业级Java技术专家,拥有工学学士学位,并且有超过14年多行业的开发经验。他目前担任Emirates Group IT核心架构部门的首席架构师。在此之前,他曾在甲骨文公司、安永公司任职。他主要擅长构建企业级应用,并且在企业内担任首席导师和布道者,以促进新技术融入企业标准技术栈。

潘卡·米斯拉(Pankaj Misra)是一名技术传播者,拥有工程学士学位,并且有超过16年跨多个业务领域的技术经验。自2015年以来,他一直在Emirates Group IT任职。他擅长架构和构建多技术栈的解决方案及实现。他在印度的技术论坛上也是一名活跃分子,参与过多个海量数据、可水平扩展的近实时数据处理和分析产品的构建。

译者序

大数据的概念最早可追溯到20世纪八九十年代,而Google发表的3篇论文(涉及GFS、MapReduc和BigTable)则被认为是真正划时代的大数据学术文献。在工业界,Hadoop及其生态圈则是大数据技术真正的标准。Hadoop的理论基础源自Google发表的那3篇论文。经过十几年的蓬勃发展,大数据技术出现了前所未有的繁荣景象,开源社区及商业公司创造了覆盖大数据处理所有环节的多种技术框架和组件,企业和开发者可任意组合使用这些框架和组件来构建复杂的大数据解决方案。这也给使用者带来了极大的挑战——如何有效地使用这些庞杂的技术框架?是否存在一套完备的大数据理论框架?
Lambda架构及数据湖(Data Lake)的概念应运而生,为使用者提供了一套切实可行的、功能完备的大数据解决方案。数据湖是一套非常灵活、松散耦合的架构方法,它将大数据处理划分为数据获取层、消息层、数据摄取层、数据存储层、Lambda层(服务层、批处理层、快速处理层)等模块。这些模块之间既相互独立,又相互关联。在每个模块中可根据业务需求选择最适合的技术框架。数据湖能有效处理复杂的多源异构数据。Lambda架构则是数据湖的灵魂,它为响应客户端的批处理、快速处理请求提供了一致的接口。总而言之,数据湖及Lambda架构能完美满足大数据4V(Variety,Velocity,Volume,Veracity)的弹性要求,越来越受企业的青睐。
本书对数据湖与Lambda架构原理及实践做了极为精彩的阐述。全书分三部分,第一部分介绍了与大数据、数据湖及其重要组件相关的各种概念。第二部分逐章介绍了数据湖各模块涉及的技术框架,对每种框架的优缺点、架构原理、底层实现细节做了全面、深入的介绍。第三部分整合了第一部分和第二部分介绍的技术组件,为读者提供了数据湖的整体视图。本书内容深入浅出,图文并茂,辅以丰富的实操范例,是学习数据湖技术的绝佳读本。本书译文经过精心组织,结合了译者多年的大数据实践经验,并参考了腾讯、阿里巴巴、百度、今日头条、滴滴出行、东软等众多知名企业的业界专业人士的意见,经过多轮审校,力求信、达、雅。本书翻译团队由拥有丰富大数据项目实践经验的技术专家、架构师、管理者组成。由于数据湖与Lambda架构是最近出现的概念,业界尚无统一术语,再加上译者水平有限,难免存在一些翻译方面的问题,欢迎广大读者及同行批评指正。本书的第1、3、6、7、9章由李想完成,第2、4、5、8、10章由张世武完成,第11章和第12章由张浩林完成。张世武负责全书统稿。
翻译工作枯燥而冗长,并且占用了小伙伴们宝贵的业余时间,如果没有极大的热情,很难坚持到最后。这里还要感谢翻译团队家属的理解和支持,他们提供了宽松的家庭环境,让我们心无旁骛地投入本书的翻译工作中,并保质保量完成本书的翻译任务。
本书的翻译过程中,得到译者张世武、李想、张浩林所在单位——成都数联铭品科技有限公司(BBD)的大力支持。BBD是一家行业领先的金融大数据公司,大数据及数据湖技术在BBD得到了广泛的应用和深入的实践。感谢曾途、尹康、丁国栋、田志伟、马扬、夏阳等领导的关心与支持,感谢业务部门及研发平台的小伙伴们为本书提出了宝贵意见和建议,尤其感谢数据平台的王尧同学。

推荐序

在过去的四五十年里,企业的组织形态发生了翻天覆地的变化,在企业漫长而又稳健的演化过程中,它们发现了各种通过在经营领域增加IT/软件系统来改进运营的途径和方法。所以,在世界财富200强公司中发现超过250个应用程序就不足为奇了。当企业成熟度发展到另一个阶段时,也会慢慢导致另外一个问题:系统之间互为孤岛,彼此之间很难交互。
随着企业的优化目标从局部优化转向全局优化,它们一直在利用一些新技术,如大数据技术,以找到方法和手段将数据从不同的IT系统汇集到一起,并进行进一步融合,以找到更好的方式来提高企业经营效率和有效性。这些方面的改进可以帮助企业节约成本。
Tomcy和Pankaj在多个业务与技术领域有着丰富的经验,他们一直致力于寻找更好的方法来融合组织内各种应用程序产生的信息。他们经历了充满挑战和变数的技术、文化之旅。
本书从软件工程师、架构师和管理者的角度出发,极具实践价值,因为他们都参与、主导过各种各样的企业级系统实现,为企业贡献了价值。
使用未来证明模式和当代技术概念,如数据湖,能帮助企业为未来做好准备,甚至赋予企业整合之前的多个信息孤岛中的数据,并从中导出商业智能的能力。传统企业往往缺乏这方面的能力。

Thomas Benjamin  
GE Aviation Digital公司CTO

图书目录

译者序
推荐序
关于作者
关于技术审核人员
前言
第一部分 概述
第1章 数据导论 2
1.1 探索数据 3
1.2 什么是企业数据 4
1.3 企业数据管理 5
1.4 大数据相关概念 6
1.5 数据与企业的相关性 8
1.6 数据质量 9
1.7 企业中数据如何存放 10
1.7.1 内联网(企业内部) 10
1.7.2 互联网(企业外部) 10
1.7.3 数据持久化存储(RDBMS或者NoSQL) 12
1.7.4 传统的数据仓库 13
1.7.5 文件存储 13
1.8 企业现状 14
1.9 企业数字化转型 15
1.10 数据湖用例启示 16
1.11 总结 17
第2章 数据湖概念概览 18
2.1 什么是数据湖 18
2.2 数据湖如何帮助企业 19
2.3 数据湖是如何工作的 20
2.4 数据湖与数据仓库的区别 21
2.5 数据湖的构建方法 22
2.6 Lambda架构驱动的数据湖 22
2.6.1 数据摄取层——摄取数据用于处理和存储 23
2.6.2 批处理层——批量处理已提取数据 23
2.6.3 快速处理层——近实时数据处理 24
2.6.4 数据存储层——存储所有数据 24
2.6.5 服务层——数据交付与导出 25
2.6.6 数据获取层——从源系统获取数据 25
2.6.7 消息层——数据传输的保障 26
2.6.8 探索数据摄取层 27
2.6.9 探索Lambda层 28
2.7 总结 35
第3章 Lambda架构:一种数据湖
实现模式 36
3.1 什么是Lambda架构 36
3.2 Lambda 架构简史 37
3.3 Lambda架构的原则 37
3.3.1 容错原则 38
3.3.2 不可变数据原则 38
3.3.3 重新计算原则 38
3.4 Lambda架构的组件 38
3.4.1 批处理层 39
3.4.2 快速处理层 41
3.4.3 服务层 43
3.5 Lambda架构的完整工作原理 44
3.6 Lambda架构的优势 45
3.7 Lambda架构的劣势 46
3.8 Lambda架构技术概览 46
3.9 应用Lambda 47
3.9.1 企业级日志分析 47
3.9.2 获取和分析传感器数据 47
3.9.3 电子邮件平台实时统计 48
3.9.4 实时赛事分析 48
3.9.5 推荐引擎 48
3.9.6 安全威胁分析 48
3.9.7 多渠道用户行为分析 48
3.10 Lambda架构运行范例 48
3.11 Kappa架构 49
3.12 总结 50
第4章 数据湖中的Lambda应用 51
4.1 Hadoop发行版本介绍 51
4.2 影响企业大数据技术栈选择的因素 53
4.2.1 技术能力 53
4.2.2 是否易于部署和维护 53
4.2.3 集成准备 53
4.3 批处理层与数据处理 53
4.3.1 NameNode服务器 54
4.3.2 Secondary NameNode服务器 55
4.3.3 YARN 55
4.3.4 数据存储节点 55
4.3.5 快速处理层 56
4.3.6 Flume用于数据获取 57
4.3.7 Spark Streaming 58
4.4 服务层 62
4.4.1 数据存储层 62
4.4.2 数据访问层 63
4.5 总结 64
第二部分 数据湖的技术组件
第5章 基于Apache Sqoop的批量数据获取 68
5.1 数据湖背景中的数据获取 68
5.1.1 数据获取层 68
5.1.2 批量数据获取——技术路线图 69
5.2 为什么使用Apache Sqoop 70
5.2.1 Sqoop简史 71
5.2.2 Sqoop的优势 71
5.2.3 Sqoop的劣势 72
5.3 Sqoop的功能 72
5.3.1 Sqoop 2的架构 74
5.3.2 Sqoop 1与Sqoop 2 75
5.3.3 Sqoop的功能 77
5.3.4 使用Sqoop导入数据 77
5.3.5 使用Sqoop导出数据 78
5.4 Sqoop connector 79
5.5 Sqoop对HDFS的支持 81
5.6 Sqoop运行范例 81
5.6.1 安装与配置 81
5.6.2 数据源配置 90
5.6.3 Sqoop配置(数据库驱动) 91
5.6.4 将HDFS配置为目的地 91
5.6.5 Sqoop数据导入 91
5.6.6 Sqoop数据导出 97
5.6.7 Sqoop job 98
5.6.8 Sqoop 2 99
5.6.9 SCV用例视角中的Sqoop 102
5.7 适合使用Sqoop的场景 103
5.8 不适合使用Sqoop的场景 104
5.9 实时Sqooping是否可行 104
5.10 其他选项 104
5.10.1 原生大数据connector 105
5.10.2 Talend 106
5.10.3 Pentaho Kettle(PDI——Pentaho数据集成) 106
5.11 总结 106
第6章 基于Apache Flume的流式数据获取 108
6.1 数据获取 108
6.1.1 什么是流式数据 109
6.1.2 批量数据和流式数据 110
6.1.3 流式数据获取——技术路线图 110
6.1.4 什么是Flume 111
6.1.5 Sqoop和Flume 112
6.2 为什么使用Flume 113
6.2.1 Flume简史 113
6.2.2 Flume的优势 113
6.2.3 Flume的劣势 114
6.3 Flume的架构原则 114
6.4 Flume架构 115
6.4.1 Flume 架构之一:分布式数据流水线 116
6.4.2 Flume 架构之二:扇出 117
6.4.3 Flume 架构之三:扇入 117
6.4.4 Flume架构中的3层设计 118
6.4.5 高级Flume架构 118
6.4.6 Flume的可靠性级别 120
6.5 Flume事件——流式数据 120
6.6 Flume Agent 120
6.7 Flume Source 122
6.8 Flume Channel 123
6.9 Flume Sink 125
6.10 Flume配置 126
6.11 Flume事务管理 127
6.12 Flume的其他组件 128
6.12.1 Channel Processor 128
6.12.2 Interceptor 129
6.12.3 Channel Selector 129
6.12.4 Sink Group 130
6.12.5 事件序列化 131
6.13 上下文路由 131
6.14 Flume运行范例 132
6.14.1 安装和配置 132
6.14.2 SCV用例中的Flume 133
6.15 适合使用Flume的场景 145
6.16 不适合使用Flume的场景 145
6.17 其他选项 146
6.17.1 Apache Flink 146
6.17.2 Apache NiFi 146
6.18 总结 147
第7章 使用Apache Kafka构建消息层 148
7.1 数据湖背景中的消息层 148
7.1.1 消息层 148
7.1.2 消息层——技术路线图 149
7.1.3 什么是Apache Kafka 150
7.2 为什么使用Apache Kafka 150
7.2.1 Kafka简史 151
7.2.2 Kafka的优势 152
7.2.3 Kafka的劣势 153
7.3 Kafka的架构 153
7.3.1 Kafka架构的核心原则 153
7.3.2 数据流的生命周期 154
7.3.3 Kafka的工作原理 155
7.3.4 Kafka的消息 156
7.3.5 Kafka生产者 157
7.3.6 Kafka topic中的数据持久化 157
7.3.7 Kafka中topic的划分:partition 158
7.3.8 Kafka中的消息broker 159
7.3.9 Kafka的消费者 160
7.4 其他Kafka组件 161
7.4.1 ZooKeeper 161
7.4.2 MirrorMaker 161
7.5 Kafka编程接口 162
7.5.1 Kafka核心API 162
7.5.2 Kafka REST接口 162
7.6 生产者和消费者的可靠性 162
7.7 Kafka的安全性 163
7.8 Kafka作为面向消息的中间件 164
7.9 Kafka与水平可扩展架构 165
7.10 Kafka连接 165
7.11 Kafka运行范例 166
7.11.1 安装 166
7.11.2 生产者:向Kafka写入数据 167
7.11.3 消费者:从Kafka获取数据 171
7.11.4 设置多broker集群 173
7.11.5 SCV用例中的Kafka应用 176
7.12  适合使用Kafka的场景 176
7.13 不合适使用Kafka的场景 177
7.14 其他选项 177
7.14.1 RabbitMQ 177
7.14.2 ZeroMQ 179
7.14.3 Apache ActiveMQ 179
7.15 总结 180
第8章 使用Apache Flink处理数据 181
8.1 数据湖背景中的数据摄取层 181
8.1.1 数据摄取层 182
8.1.2 数据摄取层——技术路线图 183
8.1.3 什么是Apache Flink 184
8.2 为什么使用Apache Flink 184
8.2.1 Flink简史 185
8.2.2 Flink的优势 186
8.2.3 Flink的劣势 187
8.3 Flink的工作原理 187
8.3.1 Flink架构 187
8.3.2 Flink架构的核心原则 192
8.3.3 Flink组件栈 192
8.3.4 Flink中的Checkpointing 192
8.3.5 Flink中的Savepoint 194
8.3.6 Flink中的流窗口选项 195
8.3.7 内存管理 197
8.4 Flink的API 197
8.4.1 DataStream API 198
8.4.2 DataSet API 200
8.4.3 Flink领域相关库 202
8.5 Flink运行范例 203
8.5.1 安装 204
8.5.2 范例——使用Flink处理数据 205
8.5.3 SCV用例中的Flink 212
8.6 适合使用Flink的场景 217
8.7 不适合使用Flink的场景 218
8.8 其他选项 218
8.8.1 Apache Spark 218
8.8.2 Apache Storm 219
8.8.3 Apache Tez 219
8.9 总结 220
第9章 使用Apache Hadoop存储数据 221
9.1 数据湖背景中的数据存储和Lambda批处理层 221
9.1.1 数据存储和Lambda批处理层 222
9.1.2 数据存储和Lambda批处理层——技术路线图 223
9.1.3 什么是Apache Hadoop 224
9.2 为什么使用Hadoop 224
9.2.1 Hadoop简史 225
9.2.2 Hadoop的优势 225
9.2.3 Hadoop的劣势 226
9.3 Hadoop的工作原理 227
9.3.1 Hadoop架构的核心原则 227
9.3.2 Hadoop架构 228
9.3.3 Hadoop架构组件 231
9.3.4 Hadoop架构细节 233
9.4 Hadoop生态系统 234
9.4.1 数据访问/处理组件 235
9.4.2 数据存储组件 236
9.4.3 监控、管理和协调组件 237
9.4.4 数据集成组件 239
9.5 Hadoop发行版 240
9.6 HDFS和数据格式 241
9.7 Hadoop用于近实时应用 242
9.8 Hadoop部署模式 243
9.9 Hadoop运行范例 243
9.9.1 安装 244
9.9.2 数据准备 244
9.9.3 安装Hive 244
9.9.4 范例——批量数据加载 247
9.9.5 范例——MapReduce数据处理 248
9.9.6 SCV用例中的Hadoop 254
9.10 不适合使用Hadoop的场景 262
9.11 其他选项 263
9.12 总结 263
第10章 使用Elasticsearch存储全文索引 264
10.1 数据湖背景中的数据存储层与Lambda快速处理层 264
10.1.1 数据存储层与Lambda快速处理层 265
10.1.2 数据存储层与Lambda快速处理层——技术路线图 265
10.2 什么是Elasticsearch 266
10.3 为什么使用Elasticsearch 266
10.3.1 Elasticsearch简史 267
10.3.2 Elasticsearch的优势 268
10.3.3 Elasticsearch的劣势 269
10.4 Elasticsearch的工作原理 269
10.4.1 Elasticsearch架构的核心原则 269
10.4.2 Elasticsearch术语 270
10.5 Elastic Stack 273
10.5.1 Kibana 273
10.5.2 Elasticsearch 275
10.5.3 Logstash 276
10.5.4 Beats 277
10.6 Elastic Cloud 279
10.7 Elasticsearch DSL 281
10.8 Elasticsearch中的节点 283
10.8.1 Master节点 283
10.8.2 Data节点 283
10.8.3 Client节点 284
10.9 Elasticsearch与关系数据库 284
10.10 Elasticsearch生态系统 285
10.10.1 Elasticsearch分析器 285
10.10.2 Elasticsearch插件 286
10.11 Elasticsearch部署选项 287
10.12 Elasticsearch Client 287
10.13 Elasticsearch用于快速流式处理 288
10.14 Elasticsearch作为数据源 289
10.15 Elasticsearch用于内容索引 289
10.16 Elasticsearch与Hadoop 289
10.17 Elasticsearch运行范例 290
10.17.1 安装 291
10.17.2 创建和删除索引 293
10.17.3 对文档进行索引 294
10.17.4 获取被索引的文档 296
10.17.5 搜索文档 296
10.17.6 更新文档 299
10.17.7 删除文档 299
10.17.8 SCV用例中的Elasticsearch 300
10.18 适合使用Elasticsearch的场景 317
10.19 不适合使用Elasticsearch的场景 317
10.20 其他选项 318
10.21 总结 319
第三部分 将所有技术整合在一起
第11章 数据湖组件集成 322
11.1 数据湖的学习进程 322
11.2 数据湖架构的核心原则 324
11.3 企业数据湖面临的挑战 324
11.4 企业对数据湖的期望 326
11.5 数据湖的其他用途 326
11.6 了解更多关于数据存储的信息 327
11.6.1 数据存储区域 327
11.6.2 数据模式和模型 329
11.6.3 存储选项 329
11.6.4 压缩方法 331
11.6.5 数据分区 332
11.7 更多关于数据处理的知识 333
11.7.1 数据校验和清洗 333
11.7.2 机器学习 334
11.7.3 调度器/工作流 334
11.7.4 Apache Oozie 335
11.7.5 复杂事件处理 340
11.8 数据安全 341
11.8.1 Apache Knox 342
11.8.2 Apache Ranger 342
11.8.3 Apache Sentry 344
11.9 数据加密 345
11.10 元数据管理和治理 346
11.10.1 元数据 346
11.10.2 数据治理 347
11.10.3 数据世系 347
11.10.4 如何实现 348
11.11 数据审计 350
11.12 数据可追溯性 350
11.13 了解更多服务层细节 351
11.13.1 服务层构建原则 351
11.13.2 服务类型 351
11.13.3 服务层组件 353
11.13.4 数据导出 355
11.13.5 混合数据访问 355
11.13.6 范例——服务层 355
11.14 总结 360
第12章 数据湖用例建议 361
12.1 在企业中推行网络安全实践 361
12.2 深入了解企业的客户 362
12.3 提升仓储管理效率 363
12.4 品牌创建与企业营销 364
12.5 为客户提供更个性化的服务 366
12.6 让物联网数据触手可及 367
12.7 更实用的数据归档 367
12.8 现有的数据仓库基础设施 368
12.9 实现电信安全和法规遵从 368
12.10 总结 369

教学资源推荐
作者: Thomas M.Connolly, Carolyn E.Begg
作者: [美]拉姆什·沙尔达(Ramesh Sharda),杜尔森·德伦(Dursun Delen),埃弗雷姆·特班(Efraim Turban) 等著
作者: 邱李华,曹青,郭志强
参考读物推荐
作者: 赵雪 胡可 王建强 等编著
作者: Marlene Theriault, Rachel Carmichael, James Viscusi