理解如何存儲超大規(guī)模數(shù)據(jù)。
設計并實施可提供快速熱查詢和精確冷結(jié)果的解決方案。
以批量數(shù)據(jù)處理、實時微批量或一次處理一個元組的方式處理實時數(shù)據(jù)。
將機器學習與你的數(shù)據(jù)管道相集成。
數(shù)據(jù)資產(chǎn)的管理、治理和安全。
使用示例代碼,這些代碼由C#、Scala、Java,以及現(xiàn)代數(shù)據(jù)分析管道中各種服務所使用的原生語言編寫。
Microsoft Azure在存儲、處理和分析不同攝取速度、形態(tài)和大小的數(shù)據(jù)方面提供了超過25種平臺即服務(PaaS)功能,用以實現(xiàn)數(shù)據(jù)分析管道。對于你的公司業(yè)務來說,該如何選擇恰當?shù)墓δ苣?針對如何建立Azure大數(shù)據(jù)分析解決方案這一問題,本書提供了極具實踐性的參考框架。
本書作者介紹了包括數(shù)據(jù)湖和Lambda架構(gòu)在內(nèi)的基本概念,同時結(jié)合示例代碼詳細解釋了數(shù)據(jù)分析管道中的各個階段。為了幫助你在數(shù)據(jù)分析的各個階段中選擇適當?shù)腁zure服務,本書還通過一個案例場景對全書內(nèi)容進行了擴展,對書中所涉及的各項Azure服務,以示例代碼的形式展示了它們在現(xiàn)實世界中的真實用例。
如今,在你創(chuàng)建軟件解決方案時,令人感到不快的不僅數(shù)據(jù)方面的潛在問題,還可能 遇到高級數(shù)據(jù)分析,或是只有機器學習才能解決的復雜問題。但問題是,軟件開發(fā)領(lǐng) 域與大數(shù)據(jù)和高級數(shù)據(jù)分析領(lǐng)域差不多相隔幾個光年,這兩個領(lǐng)域的人使用著不同的 軟件、不同的名詞,而且在多數(shù)情況下還遵循不同的工程方法,更別說各種方案還具 有多種選擇。對此,本書的目標是為你提供一份銀河系漫游指南,無論面對的是
來自物聯(lián)網(wǎng)(IoT)傳感器以曲速譯注1產(chǎn)生的數(shù)據(jù),還是像冰川一樣沉積著的
歷史數(shù)據(jù),這份指南都能幫助你從中探尋數(shù)據(jù)洞察力并找明方向。
本書在結(jié)構(gòu)設計上以數(shù)據(jù)管道作為內(nèi)容主線,包括數(shù)據(jù)攝取、處理、存儲,以及實 時(熱數(shù)據(jù))和批量(冷數(shù)據(jù))數(shù)據(jù)處理路徑。在沿著數(shù)據(jù)管道前行的途中,各種 Azure服務將成為旅途中的指引,這些服務可能會在一章或多個章節(jié)中出現(xiàn)。我們還 會針對數(shù)據(jù)管道中的特定步驟,對需要考慮的服務和工具進行詳細介紹;蛘,你也 可以換種方式思考,將這些服務和工具看作是數(shù)據(jù)分析管道中每個環(huán)節(jié)的工具箱,然 后就此得出類似這樣的問答:對于長期數(shù)據(jù)存儲,我該使用哪項Azure服務?對此, 我們在本書中會向你展示如何使用Azure存儲和Azure數(shù)據(jù)湖存儲,那么對于流數(shù)據(jù)的 存儲呢?本書將為你介紹包括Azure流分析、結(jié)合Storm或Spark的Azure HDInsight以 及Event Processor Host,并展示如何編寫相關(guān)代碼。
當然,如果你心中沒有目的地,這份地圖就會顯得無聊很多,為了讓我們的旅途更有 趣,我們需要一個目標在Azure中構(gòu)建一個數(shù)據(jù)分析管道。對此,本書通過一個 機場數(shù)據(jù)管理的虛擬業(yè)務場景,結(jié)合該場景所需的所有示例數(shù)據(jù)和代碼,幫助你理解Azure的各項數(shù)據(jù)分析服務。
請你像閱讀旅游指南一樣使用本書,可以從頭讀到尾,也可以根據(jù)興趣選擇幾個領(lǐng) 域深入了解。在這份旅游地圖上,我們對各種Azure服務和工具都進行了詳細介 紹,沿著它們即可依次構(gòu)建出完整的數(shù)據(jù)管道。在有些場景中,有些內(nèi)容可能略微復 雜、深入或難懂。還有一些部分是簡單但具有針對性的解決方案,它們是專門用于解 決特定問題而設計的,其中可能使用了開源代碼,也可能采用的是Microsoft的最近創(chuàng) 新。無論如何,在本書最后,你將有能力建立屬于自己的銀河系漫游指南,針對 不同目的深入了解如何使用相應的服務和工具,最終得以精通Azure數(shù)據(jù)分析。
本書的排版約定
本書通過不同排版風格表達內(nèi)容,具體說明如下:
斜體字(Italic)
新名詞、URL、電子郵件地址、文件名和文件擴展名。 等寬字體 (Constant width)
用于代碼和段落中引用的代碼片段,如變量或方法名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境
變量、生命和關(guān)鍵字等。
等寬粗體字 (Constant width) 命令或應該由用戶輸入的文本內(nèi)容。
等寬斜體字(Constant width) 應由用戶提供數(shù)值并進行替換的內(nèi)容,或是應根據(jù)上下文才能確定的內(nèi)容。
使用示例代碼
更多補充資料(包括示例代碼、練習等)可以從這里下載:https://github.com/ ZoinerTejada/mastering-azure-analytics。
本書可以幫助你完成工作任務。通常,對于書中提供的示例代碼,可以直接在自己的 程序和文檔中使用,無需聯(lián)系我們獲取授權(quán),除非要再次分發(fā)大量示例代碼。具體舉 例來說,如果在編寫程序時使用了本書提供的一部分代碼,不用擔心授權(quán)問題;但如 果要把O Reilly系列圖書中的示例代碼以CD-ROM等方式銷售或分發(fā),則需要獲得我 們的授權(quán);在解答問題時如需引用本書提供的代碼,不需要授權(quán);但如果是在你的產(chǎn) 品文檔中使用本書的任意代碼,則必須獲得授權(quán)。
雖然并不要求,但我們感謝你能夠引用本書。引用格式一般會包含書名、作者、出 版商和ISBN,例如:Mastering Azure Analytics by Zoiner Tejada(OReilly)。 Copyright 2017 Zoiner Tejada,978-1-491-95665-6。
如果你認為自己在使用示例代碼時超出了上述許可范圍,敬請發(fā)郵件聯(lián)系我們
permissions@oreilly.com。
OReilly Safari
Safari(曾用名:Safari圖書在線)是一個針對企業(yè)、政府、教育工作者和個人的會員 制技術(shù)培訓和內(nèi)容參考平臺。
Safari會員可以瀏覽和觀看數(shù)千本圖書、培訓視頻、培訓課程、交互式練習和我們 專門策劃的內(nèi)容列表,這些內(nèi)容來自超過250家出版社,包括O Reilly Media、哈 佛商業(yè)評論、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等。
了解有關(guān)Safari的更多信息,請訪問http://oreilly.com/safari。
聯(lián)系我們
請將關(guān)于本書的意見和問題通過以下地址提供給出版社:
前言
美國:
OReilly Media, Inc.
1005 Gravenstein Highway North Sebastopol, CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035) 奧萊利技術(shù)咨詢(北京)有限公司
針對這本書,我們還建有一個網(wǎng)頁,列出了有關(guān)勘誤、示例和其他信息?梢酝ㄟ^以 下地址訪問這個頁面:http://bit.ly/masterAzureAnalytics。
如果對這本書有什么意見,或者要詢問技術(shù)上的問題,請將電子郵件發(fā)至:
bookquestions@oreilly.com。
致謝
編寫這樣一本內(nèi)容覆蓋廣泛的書,離不開身后的大量支持,在本書撰寫過程中,我很 榮幸能夠得到許多專家的幫助。在此,我要感謝Lynn Langit,她精準地指出了書中所 有含糊或表述不清的內(nèi)容,在這樣嚴格要求的壓力與挑戰(zhàn)下,本書才能以如此完美的 質(zhì)量展現(xiàn)給大家。同時,我也很榮幸獲得了來自Microsoft工程師的技術(shù)審閱,感謝 Nishant Thacker、Ted Way和Rama Ramani以其杰出的技術(shù)水平為本書所付出的努力。
我要向Azure MVP社區(qū)的特別一員Tom Kerkhove表示感謝。感謝你在代碼測試中一絲 不茍地專注于細節(jié)并認真修改,從而使讀者能夠獲得更好的體驗。
感謝Matt Winkler給我指明了從當年的工作流如何轉(zhuǎn)向如今全新數(shù)據(jù)世界的道路,當 然,他也教會了我如何從消防栓取水喝。
我還要在這里向我的編輯Shannon Cutt表示感謝,在過去的一年多里,他一直提供著 細致、明慧和有益的支持。與此同時,最值得感謝的還有Kristen Brown,每當我指尖 的鍵盤無法跟上思想的步伐時,他都能及時幫我記錄下所有想法。感謝你們讓我的首 本OReilly著作成為了如此美妙的體驗。
最后,我要感謝我的妻子Ashley,她與我一同編寫此書,默默忍受了無數(shù)個夜晚 和無聊的周末,她的理解和耐心是愛我的最好表達。
Zoiner Tejada,架構(gòu)師,擁有超過18年軟件行業(yè)咨詢經(jīng)驗,在云計算、大數(shù)據(jù)、數(shù)據(jù)分析和機器學習方面擁有卓越見解。鑒于他在Azure和數(shù)據(jù)平臺(Data Platform)兩個方面的貢獻,Microsoft在這兩個領(lǐng)域都向他授予了MVP(Microsoft有價值專家)稱號。
目錄
序1
前言3
第1章 企業(yè)數(shù)據(jù)分析基礎7
數(shù)據(jù)分析管道7
數(shù)據(jù)湖8
Lambda架構(gòu)9
Kappa架構(gòu)11
在Lambda和Kappa間進行選擇12
Azure分析管道12
數(shù)據(jù)分析場景介紹15
示例代碼和示例數(shù)據(jù)集16
小結(jié)21
第2章 將數(shù)據(jù)導入Azure22
攝取加載層22
批量數(shù)據(jù)加載24
硬盤傳送24
流數(shù)據(jù)加載78
小結(jié)80
第3章 在Azure中存儲攝取的數(shù)據(jù)81
文件存儲81
隊列存儲97
小結(jié)124
第4章 Azure中的實時數(shù)據(jù)處理125
流處理125
在Azure中每次處理一個元組131
小結(jié)174
第5章 Azure中的實時微批處理176
Azure中的微批處理176
小結(jié)207
第6章 Azure中的批處理208
HDInsight上的MapReduce批處理210
HDInsight上的Hive批處理214
HDInsight上的Pig批處理228
HDInsight上的Spark批處理229
使用SQL數(shù)據(jù)倉庫的批處理237
使用數(shù)據(jù)湖分析的批處理247
Azure Batch批處理258
小結(jié)260
第7章 Azure中的交互式查詢261
Azure SQL數(shù)據(jù)倉庫的可交互式查詢263
Hive和Tez交互式查詢269
Spark SQL交互式查詢277
USQL交互式查詢281
小結(jié)284
第8章 Azure中的冷\熱訪問服務層285
Azure Redis緩存287
Document DB294
SQL 數(shù)據(jù)庫300
SQL數(shù)據(jù)倉庫308
HDInsight上的HBase309
Azure搜索314
小結(jié)315
第9章 智能和機器學習316
Azure機器學習319
HDInsight上的R服務321
SQL R服務321
Microsoft認知服務322
小結(jié)334
第10章 Azure中的元數(shù)據(jù)管理335
使用Azure數(shù)據(jù)目錄管理元數(shù)據(jù)335
小結(jié)350
第11章 保護在Azure中的數(shù)據(jù)351
身份和訪問管理351
數(shù)據(jù)保護353
審計355
小結(jié)356
第12章 執(zhí)行數(shù)據(jù)分析357
使用Power BI進行分析357
在藍色天際機場場景中使用Power BI批量分析報表368
展望372