雲數據平台:設計、實現與管理 Designing Cloud Data Platforms

Danil Zburivsky ,Lynda Partner

商品描述

本書是為了幫助你設計一個既可伸縮又足夠靈活的雲數據平台,以應對不可避免的技術變化。
你將了解雲數據平台設計的核心組件,以及Spark和Kafka流等關鍵技術的作用。
你還將探索如何設置流程來管理基於雲的數據、確保數據的安全,並使用高級分析和BI工具對數據進行分析。
本書旨在幫助企業通過現代云數據平台使用所有數據的業務集成視圖,並利用先進的分析實踐來驅動預測和數據服務。
本書總結了不同的數據消費者如何使用平台中的數據,
並討論了影響雲數據平台項目成功的常見業務問題。

目錄大綱

前言
致謝
引言
第1章數據平台介紹1
1.1 從數據倉庫向數據平台轉變背後的趨勢2
1.2 數據倉庫與數據的多樣性、規模和速度3
1.2.1 多樣性3
1.2.2 規模4
1.2.3 速度5
1.2.4 所有的V同時出現5
1.3 數據湖6
1.4 雲來了7
1.5 雲、數據湖、數據倉庫:雲數據平台的出現9
1.6 雲數據平台的構建塊9
1.6.1 攝取層10
1.6.2 存儲層10
1.6.3 處理層11
1.6.4 服務層13
1.7 雲數據平台如何處理這三個V14
1.7.1 多樣性14
1.7.2 規模14
1.7.3 速度15
1.7.4 另外兩個V15
1.8 常見用例16
第2章為什麼是數據平台而不僅僅是數據倉庫18
2.1 雲數據平台和雲數據倉庫的實踐19
2.1.1 近距離觀察數據源20
2.1.2 雲數據倉庫—純架構示例21
2.1.3 雲數據平台架構示例22
2.2 攝取數據24
2.2.1 將數據直接攝取到Azure Synapse24
2.2.2 將數據攝取到Azure數據平台25
2.2.3 管理上游數據源的變化26
2.3 處理數據28
2.3.1 處理數據倉庫中的數據29
2.3.2 處理數據平台上的數據31
2.4 訪問數據32
2.5 云成本方面的考慮34
2.6 練習答案36
第3章不斷壯大並利用三巨頭:Amazon、Microsoft Azure和Google37
3.1 雲數據平台分層架構38
3.1.1 數據攝取層40
3.1.2 快存儲和慢存儲43
3.1.3 處理層45
3.1.4 技術元數據層47
3.1.5 服務層和數據消費者48
3.1.6 編排層和ETL覆蓋層52
3.2 數據平台架構中層的重要性57
3.3 將雲數據平台層映射到特定工具59
3.3.1 AWS61
3.3.2 Google Cloud65
3.3.3 Azure70
3.4 開源和商業替代方案73
3.4.1 批量數據攝取74
3.4.2 流數據攝取和實時分析74
3.4.3 編排層75
3.5 練習答案77
第4章將數據導入平台78
4.1 數據庫、文件、API和流79
4.1.1 關係型數據庫80
4.1.2 文件81
4.1.3 通過API的SaaS數據81
4.1.4 流82
4.2 從關係型數據庫中攝取數據83
4.2.1 使用SQL接口從RDBMS攝取數據83
4.2.2 全表攝取85
4.2.3 增量表攝取90
4.2.4 變更數據捕獲94
4.2.5 CDC供應商概述98
4.2.6 數據類型轉換100
4.2.7 從NoSQL數據庫攝取數據102
4.2.8 為RDBMS或NoSQL攝取管道捕獲重要的元數據104
4.3 從文件中攝取數據107
4.3.1 跟踪已攝取的文件109
4.3.2 捕獲文件攝取元數據112
4.4 從流中攝取數據113
4.4.1 批量攝取和流攝取的區別117
4.4.2 捕獲流管道元數據118
4.5 從SaaS應用程序攝取數據119
4.5.1 沒有標準的API設計方法121
4.5.2 沒有標準的方法來處理全數據導出和增量數據導出121
4.5.3 結果數據通常是高度嵌套的JSON122
4.6 將數據攝取到雲中需要考慮的網絡和安全問題122
4.7 練習答案125
第5章組織和處理數據126
5.1 在數據平台中作為單獨的層進行處理127
5.2 數據處理階段129
5.3 組織你的雲存儲130
5.4 通用數據處理步驟137
5.4.1 文件格式轉換137
5.4.2 重複數據清除142
5.4.3 數據質量檢查147
5.5 可配置的管道149
5.6 練習答案152
第6章實時數據處理和分析153
6.1 實時攝取與實時處理154
6.2 實時數據處理用例156
6.2.1 零售用例:實時攝取156
6.2.2 線上游戲用例:實時攝取和實時處理158
6.2.3 實時攝取與實時處理的總結160
6.3 什麼時候應該使用實時攝取或實時處理161
6.4 為實時使用組織數據163
6.4.1 對快存儲的解剖163
6.4.2 快存儲是如何擴展的166
6.4.3 在實時存儲中組織數據168
6.5 通用的實時數據轉換173
6.5.1 實時系統中數據重複的原因173
6.5.2 實時系統中的數據重複清除176
6.5.3 在實時管道中轉換消息格式181
6.5.4 實時數據質量檢查182
6.5.5 將批量數據與實時數據相結合183
6.6 用於實時數據處理的雲服務184
6.6.1 AWS實時處理服務185
6.6.2 Google Cloud實時處理服務186
6.6.3 Azure實時處理服務188
6.7 練習答案190
第7章元數據層架構191
7.1 元數據是什麼192
7.1.1 業務元數據192
7.1.2 數據平台內部元數據或管道元數據193
7.2 利用管道元數據193
7.3 元數據模型197
7.4 元數據層實現選項207
7.4.1 元數據層作為配置文件的集合207
7.4.2 元數據數據庫210
7.4.3 元數據API212
7.5 現有的解決方案概述214
7.5.1 雲元數據服務214
7.5.2 開源元數據層實現216
7.6 練習答案220
第8章模式管理221
8.1 為什麼要進行模式管理222
8.1.1 傳統數據倉庫架構中的模式變化222
8.1.2 讀時模式方法223
8.2 模式管理方法225
8.2.1 模式即契約226
8.2.2 數據平台中的模式管理228
8.2.3 監控模式變化234
8.3 模式註冊表實現235
8.3.1 Apache Avro模式236
8.3.2 現有的模式註冊表實現237
8.3.3 模式註冊表作為元數據層的一部分238
8.4 模式演化場景240
8.4.1 模式兼容性規則242
8.4.2 模式演化和數據轉換管道244
8.5 模式演化和數據倉庫247
8.6 練習答案252
第9章數據訪問和安全253
9.1 不同類型的數據消費者254
9.2 雲數據倉庫255
9.2.1 AWS Redshift256
9.2.2 Azure Synapse259
9.2.3 Go