理解如何存储超大规模数据。
设计并实施可提供快速热查询和精确冷结果的解决方案。
以批量数据处理、实时微批量或一次处理一个元组的方式处理实时数据。
将机器学习与你的数据管道相集成。
数据资产的管理、治理和安全。
使用示例代码,这些代码由C#、Scala、Java,以及现代数据分析管道中各种服务所使用的原生语言编写。
Microsoft Azure在存储、处理和分析不同摄取速度、形态和大小的数据方面提供了超过25种平台即服务(PaaS)功能,用以实现数据分析管道。对于你的公司业务来说,该如何选择恰当的功能呢?针对如何建立Azure大数据分析解决方案这一问题,本书提供了极具实践性的参考框架。
本书作者介绍了包括数据湖和Lambda架构在内的基本概念,同时结合示例代码详细解释了数据分析管道中的各个阶段。为了帮助你在数据分析的各个阶段中选择适当的Azure服务,本书还通过一个案例场景对全书内容进行了扩展,对书中所涉及的各项Azure服务,以示例代码的形式展示了它们在现实世界中的真实用例。
如今,在你创建软件解决方案时,令人感到不快的不仅数据方面的潜在问题,还可能 遇到高级数据分析,或是只有机器学习才能解决的复杂问题。但问题是,软件开发领 域与大数据和高级数据分析领域差不多相隔几个光年,这两个领域的人使用着不同的 软件、不同的名词,而且在多数情况下还遵循不同的工程方法,更别说各种方案还具 有多种选择。对此,本书的目标是为你提供一份银河系漫游指南,无论面对的是
来自物联网(IoT)传感器以曲速译注1产生的数据,还是像冰川一样沉积着的
历史数据,这份指南都能帮助你从中探寻数据洞察力并找明方向。
本书在结构设计上以数据管道作为内容主线,包括数据摄取、处理、存储,以及实 时(热数据)和批量(冷数据)数据处理路径。在沿着数据管道前行的途中,各种 Azure服务将成为旅途中的指引,这些服务可能会在一章或多个章节中出现。我们还 会针对数据管道中的特定步骤,对需要考虑的服务和工具进行详细介绍。或者,你也 可以换种方式思考,将这些服务和工具看作是数据分析管道中每个环节的工具箱,然 后就此得出类似这样的问答:对于长期数据存储,我该使用哪项Azure服务?对此, 我们在本书中会向你展示如何使用Azure存储和Azure数据湖存储,那么对于流数据的 存储呢?本书将为你介绍包括Azure流分析、结合Storm或Spark的Azure HDInsight以 及Event Processor Host,并展示如何编写相关代码。
当然,如果你心中没有目的地,这份地图就会显得无聊很多,为了让我们的旅途更有 趣,我们需要一个目标在Azure中构建一个数据分析管道。对此,本书通过一个 机场数据管理的虚拟业务场景,结合该场景所需的所有示例数据和代码,帮助你理解Azure的各项数据分析服务。
请你像阅读旅游指南一样使用本书,可以从头读到尾,也可以根据兴趣选择几个领 域深入了解。在这份旅游地图上,我们对各种Azure服务和工具都进行了详细介 绍,沿着它们即可依次构建出完整的数据管道。在有些场景中,有些内容可能略微复 杂、深入或难懂。还有一些部分是简单但具有针对性的解决方案,它们是专门用于解 决特定问题而设计的,其中可能使用了开源代码,也可能采用的是Microsoft的最近创 新。无论如何,在本书最后,你将有能力建立属于自己的银河系漫游指南,针对 不同目的深入了解如何使用相应的服务和工具,最终得以精通Azure数据分析。
本书的排版约定
本书通过不同排版风格表达内容,具体说明如下:
斜体字(Italic)
新名词、URL、电子邮件地址、文件名和文件扩展名。 等宽字体 (Constant width)
用于代码和段落中引用的代码片段,如变量或方法名、数据库、数据类型、环境
变量、生命和关键字等。
等宽粗体字 (Constant width) 命令或应该由用户输入的文本内容。
等宽斜体字(Constant width) 应由用户提供数值并进行替换的内容,或是应根据上下文才能确定的内容。
使用示例代码
更多补充资料(包括示例代码、练习等)可以从这里下载:https://github.com/ ZoinerTejada/mastering-azure-analytics。
本书可以帮助你完成工作任务。通常,对于书中提供的示例代码,可以直接在自己的 程序和文档中使用,无需联系我们获取授权,除非要再次分发大量示例代码。具体举 例来说,如果在编写程序时使用了本书提供的一部分代码,不用担心授权问题;但如 果要把O Reilly系列图书中的示例代码以CD-ROM等方式销售或分发,则需要获得我 们的授权;在解答问题时如需引用本书提供的代码,不需要授权;但如果是在你的产 品文档中使用本书的任意代码,则必须获得授权。
虽然并不要求,但我们感谢你能够引用本书。引用格式一般会包含书名、作者、出 版商和ISBN,例如:Mastering Azure Analytics by Zoiner Tejada(OReilly)。 Copyright 2017 Zoiner Tejada,978-1-491-95665-6。
如果你认为自己在使用示例代码时超出了上述许可范围,敬请发邮件联系我们
permissions@oreilly.com。
OReilly Safari
Safari(曾用名:Safari图书在线)是一个针对企业、政府、教育工作者和个人的会员 制技术培训和内容参考平台。
Safari会员可以浏览和观看数千本图书、培训视频、培训课程、交互式练习和我们 专门策划的内容列表,这些内容来自超过250家出版社,包括O Reilly Media、哈 佛商业评论、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett,以及Course Technology等。
了解有关Safari的更多信息,请访问http://oreilly.com/safari。
联系我们
请将关于本书的意见和问题通过以下地址提供给出版社:
前言
美国:
OReilly Media, Inc.
1005 Gravenstein Highway North Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035) 奥莱利技术咨询(北京)有限公司
针对这本书,我们还建有一个网页,列出了有关勘误、示例和其他信息。可以通过以 下地址访问这个页面:http://bit.ly/masterAzureAnalytics。
如果对这本书有什么意见,或者要询问技术上的问题,请将电子邮件发至:
bookquestions@oreilly.com。
致谢
编写这样一本内容覆盖广泛的书,离不开身后的大量支持,在本书撰写过程中,我很 荣幸能够得到许多专家的帮助。在此,我要感谢Lynn Langit,她精准地指出了书中所 有含糊或表述不清的内容,在这样严格要求的压力与挑战下,本书才能以如此完美的 质量展现给大家。同时,我也很荣幸获得了来自Microsoft工程师的技术审阅,感谢 Nishant Thacker、Ted Way和Rama Ramani以其杰出的技术水平为本书所付出的努力。
我要向Azure MVP社区的特别一员Tom Kerkhove表示感谢。感谢你在代码测试中一丝 不苟地专注于细节并认真修改,从而使读者能够获得更好的体验。
感谢Matt Winkler给我指明了从当年的工作流如何转向如今全新数据世界的道路,当 然,他也教会了我如何从消防栓取水喝。
我还要在这里向我的编辑Shannon Cutt表示感谢,在过去的一年多里,他一直提供着 细致、明慧和有益的支持。与此同时,最值得感谢的还有Kristen Brown,每当我指尖 的键盘无法跟上思想的步伐时,他都能及时帮我记录下所有想法。感谢你们让我的首 本OReilly著作成为了如此美妙的体验。
最后,我要感谢我的妻子Ashley,她与我一同编写此书,默默忍受了无数个夜晚 和无聊的周末,她的理解和耐心是爱我的最好表达。
Zoiner Tejada,架构师,拥有超过18年软件行业咨询经验,在云计算、大数据、数据分析和机器学习方面拥有卓越见解。鉴于他在Azure和数据平台(Data Platform)两个方面的贡献,Microsoft在这两个领域都向他授予了MVP(Microsoft有价值专家)称号。
目录
序1
前言3
第1章 企业数据分析基础7
数据分析管道7
数据湖8
Lambda架构9
Kappa架构11
在Lambda和Kappa间进行选择12
Azure分析管道12
数据分析场景介绍15
示例代码和示例数据集16
小结21
第2章 将数据导入Azure22
摄取加载层22
批量数据加载24
硬盘传送24
流数据加载78
小结80
第3章 在Azure中存储摄取的数据81
文件存储81
队列存储97
小结124
第4章 Azure中的实时数据处理125
流处理125
在Azure中每次处理一个元组131
小结174
第5章 Azure中的实时微批处理176
Azure中的微批处理176
小结207
第6章 Azure中的批处理208
HDInsight上的MapReduce批处理210
HDInsight上的Hive批处理214
HDInsight上的Pig批处理228
HDInsight上的Spark批处理229
使用SQL数据仓库的批处理237
使用数据湖分析的批处理247
Azure Batch批处理258
小结260
第7章 Azure中的交互式查询261
Azure SQL数据仓库的可交互式查询263
Hive和Tez交互式查询269
Spark SQL交互式查询277
USQL交互式查询281
小结284
第8章 Azure中的冷\热访问服务层285
Azure Redis缓存287
Document DB294
SQL 数据库300
SQL数据仓库308
HDInsight上的HBase309
Azure搜索314
小结315
第9章 智能和机器学习316
Azure机器学习319
HDInsight上的R服务321
SQL R服务321
Microsoft认知服务322
小结334
第10章 Azure中的元数据管理335
使用Azure数据目录管理元数据335
小结350
第11章 保护在Azure中的数据351
身份和访问管理351
数据保护353
审计355
小结356
第12章 执行数据分析357
使用Power BI进行分析357
在蓝色天际机场场景中使用Power BI批量分析报表368
展望372