前言
致谢
引言
第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