About This Book |
|
xiii | |
Foreword |
|
xxi | |
Introduction |
|
xxv | |
|
Stage 1 Source (aka Siloed Data) |
|
|
1 | (22) |
|
Chapter 1 Starting with Source Data |
|
|
3 | (8) |
|
Common Options for Analyzing Source Data |
|
|
4 | (7) |
|
Chapter 2 The Need to Replicate Source Data |
|
|
11 | (4) |
|
|
12 | (2) |
|
|
14 | (1) |
|
Chapter 3 Source Data Best Practices |
|
|
15 | (8) |
|
Keep a Complexity Wiki Page |
|
|
15 | (1) |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
|
20 | (3) |
|
Stage 2 Data Lake (aka Data Combined) |
|
|
23 | (46) |
|
Chapter 4 Why Build a Data Lake? |
|
|
25 | (8) |
|
|
26 | (1) |
|
Reasons to Build a Data Lake Summarized |
|
|
27 | (6) |
|
Chapter 5 Choosing an Engine for the Data Lake |
|
|
33 | (12) |
|
Modern Columnar Warehouse Engines |
|
|
35 | (3) |
|
Modern Warehouse Engine Products |
|
|
38 | (3) |
|
|
41 | (1) |
|
|
42 | (3) |
|
Chapter 6 Extract and Load (EL) Data |
|
|
45 | (10) |
|
|
46 | (2) |
|
|
48 | (1) |
|
|
49 | (2) |
|
|
51 | (1) |
|
|
52 | (1) |
|
Other Extract and Load Routes |
|
|
53 | (2) |
|
Chapter 7 Data Lake Security |
|
|
55 | (4) |
|
|
56 | (1) |
|
|
57 | (2) |
|
Chapter 8 Data Lake Maintenance |
|
|
59 | (10) |
|
|
60 | (1) |
|
|
61 | (3) |
|
|
64 | (4) |
|
Upgrade Snippets to Views |
|
|
68 | (1) |
|
Stage 3 Data Warehouse (aka the Single Source of Truth) |
|
|
69 | (92) |
|
Chapter 9 The Power of Layers and Views |
|
|
75 | (8) |
|
|
77 | (1) |
|
|
78 | (3) |
|
|
81 | (2) |
|
Chapter 10 Staging Schemas |
|
|
83 | (28) |
|
|
84 | (1) |
|
Pick a Table and Clean It |
|
|
85 | (13) |
|
Other Staging Modeling Considerations |
|
|
98 | (8) |
|
Building on Top of Staging Schemas |
|
|
106 | (5) |
|
Chapter 11 Model Data with dbt |
|
|
111 | (8) |
|
|
111 | (1) |
|
Modularity and Reusability |
|
|
112 | (1) |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
113 | (1) |
|
|
114 | (1) |
|
|
115 | (4) |
|
Chapter 12 Deploy Modeling Code |
|
|
119 | (4) |
|
Branch Using Version Control Software |
|
|
119 | (1) |
|
|
120 | (1) |
|
|
120 | (1) |
|
|
121 | (1) |
|
|
122 | (1) |
|
Chapter 13 Implementing the Data Warehouse |
|
|
123 | (12) |
|
|
124 | (2) |
|
Combine Tables Within Schemas |
|
|
126 | (2) |
|
Combine Tables Across Schemas |
|
|
128 | (2) |
|
Keep the Grain Consistent |
|
|
130 | (1) |
|
|
131 | (2) |
|
|
133 | (2) |
|
Chapter 14 Managing Data Access |
|
|
135 | (8) |
|
How to Secure Sensitive Data in the Data Warehouse |
|
|
137 | (3) |
|
How to Secure Sensitive Data in a BI Tool |
|
|
140 | (3) |
|
Chapter 15 Maintaining the Source of Truth |
|
|
143 | (18) |
|
|
144 | (3) |
|
|
147 | (2) |
|
|
149 | (1) |
|
Resolve Conflicting Numbers |
|
|
150 | (1) |
|
Handling Ongoing Requests and Ongoing Feedback |
|
|
151 | (1) |
|
|
152 | (1) |
|
|
153 | (3) |
|
|
156 | (1) |
|
|
157 | (1) |
|
|
158 | (3) |
|
Stage 4 Data Marts (aka Data Democratized) |
|
|
161 | (50) |
|
Chapter 16 Data Mart Implementation |
|
|
167 | (4) |
|
Views on the Data Warehouse |
|
|
167 | (1) |
|
|
168 | (1) |
|
|
169 | (2) |
|
Chapter 17 Data Mart Maintenance |
|
|
171 | (6) |
|
|
172 | (1) |
|
|
172 | (4) |
|
|
176 | (1) |
|
|
176 | (1) |
|
Chapter 18 Modern versus Traditional Data Stacks: What's Changed? |
|
|
177 | (4) |
|
|
177 | (4) |
|
Chapter 19 Row - versus Column-Oriented Database |
|
|
181 | (10) |
|
|
182 | (2) |
|
Column-Oriented Databases |
|
|
184 | (6) |
|
|
190 | (1) |
|
Chapter 20 Style Guide Example |
|
|
191 | (8) |
|
|
192 | (2) |
|
|
194 | (1) |
|
|
195 | (2) |
|
|
197 | (2) |
|
Chapter 21 Building an SST Example |
|
|
199 | (12) |
|
First Attempt--Same Tables with Prefixes |
|
|
199 | (6) |
|
Second Attempt--Operational Schema (Source Agnostic) |
|
|
205 | (2) |
|
Third Attempt--Application Separate, Other Sources Smashed |
|
|
207 | (2) |
|
Less Planning, More Implementing |
|
|
209 | (2) |
Acknowledgments and Contributions |
|
211 | (2) |
Index |
|
213 | |