About the Author |
|
xi | |
About the Technical Reviewer |
|
xiii | |
Acknowledgments |
|
xv | |
Introduction |
|
xvii | |
|
Chapter 1 Snowflake Architecture |
|
|
1 | (18) |
|
Technology and Data Are Inseparable |
|
|
1 | (1) |
|
|
1 | (1) |
|
Business Agility Is More Important Than Ever |
|
|
2 | (1) |
|
|
3 | (1) |
|
Decisions, Decisions, Decisions! |
|
|
4 | (1) |
|
|
4 | (2) |
|
|
6 | (1) |
|
|
6 | (2) |
|
What Is the Benefit of Micro Partitioning? |
|
|
8 | (1) |
|
Partitioning in the Pre-Snowflake World |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
11 | (1) |
|
Configuring Virtual Warehouses |
|
|
12 | (1) |
|
|
12 | (2) |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
15 | (1) |
|
|
16 | (1) |
|
|
16 | (1) |
|
Infrastructure Management |
|
|
16 | (1) |
|
|
16 | (1) |
|
Query Parsing and Execution |
|
|
17 | (1) |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
19 | (34) |
|
|
19 | (1) |
|
|
20 | (1) |
|
External Tables and Data Lakes |
|
|
20 | (2) |
|
|
22 | (1) |
|
|
22 | (2) |
|
|
24 | (1) |
|
|
25 | (1) |
|
|
26 | (1) |
|
Data Loading Considerations |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
Dedicated Virtual Warehouses |
|
|
29 | (1) |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
31 | (1) |
|
Unloading Data from Snowflake |
|
|
32 | (1) |
|
Bulk vs. Continuous Loading |
|
|
32 | (1) |
|
Continuous Data Loads Using Snowpipe |
|
|
33 | (1) |
|
|
34 | (1) |
|
Change Tracking Using Streams |
|
|
35 | (1) |
|
|
36 | (1) |
|
|
36 | (3) |
|
|
39 | (1) |
|
|
39 | (1) |
|
|
40 | (12) |
|
|
52 | (1) |
|
|
53 | (14) |
|
A Word on Performance Testing |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
57 | (1) |
|
|
58 | (1) |
|
Which Objects Can Be Cloned? |
|
|
59 | (1) |
|
|
60 | (2) |
|
|
62 | (1) |
|
|
63 | (1) |
|
|
63 | (2) |
|
|
65 | (2) |
|
Chapter 4 Managing Security and Access Control |
|
|
67 | (32) |
|
|
67 | (2) |
|
|
69 | (1) |
|
|
70 | (2) |
|
|
72 | (1) |
|
Extending the Role Hierarchy |
|
|
72 | (3) |
|
User and Application Authentication |
|
|
75 | (1) |
|
Multi-Factor Authentication |
|
|
75 | (5) |
|
|
80 | (1) |
|
Security Assertion Markup Language |
|
|
80 | (1) |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
83 | (1) |
|
|
83 | (1) |
|
Option 1 Native Network Security |
|
|
84 | (1) |
|
Option 2 Network Policies |
|
|
84 | (1) |
|
Option 3 Cloud Service Provider Capabilities |
|
|
85 | (1) |
|
|
85 | (1) |
|
Separately Storing PII Data |
|
|
86 | (1) |
|
|
86 | (1) |
|
|
87 | (1) |
|
Controlling Access to PII Data |
|
|
87 | (6) |
|
|
93 | (1) |
|
|
93 | (1) |
|
|
93 | (4) |
|
Advanced Snowflake Security Features |
|
|
97 | (1) |
|
|
97 | (1) |
|
|
97 | (1) |
|
|
98 | (1) |
|
Chapter 5 Protecting Data in Snowflake |
|
|
99 | (14) |
|
|
100 | (1) |
|
Encryption Key Management |
|
|
101 | (1) |
|
|
102 | (2) |
|
|
104 | (1) |
|
|
104 | (1) |
|
|
105 | (1) |
|
Dropping and Undropping Historical Data |
|
|
106 | (1) |
|
|
107 | (1) |
|
Underlying Storage Concepts |
|
|
107 | (1) |
|
Temporary and Transient Tables |
|
|
108 | (1) |
|
|
108 | (3) |
|
|
111 | (2) |
|
Chapter 6 Business Continuity and Disaster Recovery |
|
|
113 | (18) |
|
Regions and Availability Zones |
|
|
114 | (1) |
|
Data Replication, Failover, and Fallback |
|
|
114 | (1) |
|
Primary and Secondary Databases |
|
|
115 | (1) |
|
|
116 | (1) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
117 | (4) |
|
Monitoring Replication Progress |
|
|
121 | (1) |
|
|
122 | (1) |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
125 | (4) |
|
|
129 | (2) |
|
Chapter 7 Data Sharing and the Data Cloud |
|
|
131 | (18) |
|
|
132 | (3) |
|
|
135 | (1) |
|
|
136 | (1) |
|
|
137 | (1) |
|
|
137 | (3) |
|
|
140 | (1) |
|
Using a Dedicated Database for Data Sharing |
|
|
140 | (1) |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
142 | (6) |
|
|
148 | (1) |
|
|
149 | (18) |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
152 | (2) |
|
|
154 | (1) |
|
|
154 | (2) |
|
|
156 | (1) |
|
|
156 | (2) |
|
|
158 | (1) |
|
Transactions Within Stored Procedures |
|
|
159 | (2) |
|
|
161 | (1) |
|
|
161 | (1) |
|
|
162 | (1) |
|
|
162 | (1) |
|
|
162 | (4) |
|
|
166 | (1) |
|
Chapter 9 Advanced Performance Tuning |
|
|
167 | (34) |
|
Designing Tables for High Performance |
|
|
167 | (1) |
|
|
168 | (4) |
|
Designing High-Performance Queries |
|
|
172 | (1) |
|
|
172 | (6) |
|
|
178 | (2) |
|
Search Optimization Service |
|
|
180 | (3) |
|
Optimizing Warehouse Utilization |
|
|
183 | (3) |
|
Warehouse Utilization Patterns |
|
|
186 | (6) |
|
|
192 | (1) |
|
Monitoring Resources and Account Usage |
|
|
193 | (1) |
|
|
193 | (2) |
|
|
195 | (2) |
|
|
197 | (1) |
|
|
198 | (3) |
|
Chapter 10 Developing Applications in Snowflake |
|
|
201 | (20) |
|
|
201 | (2) |
|
|
203 | (1) |
|
|
204 | (1) |
|
|
205 | (1) |
|
|
206 | (4) |
|
|
210 | (1) |
|
Java User-Defined Functions |
|
|
210 | (1) |
|
|
211 | (2) |
|
Combining Snowpark and UDFs |
|
|
213 | (2) |
|
|
215 | (1) |
|
Snowflake Connector for Python |
|
|
215 | (1) |
|
|
216 | (1) |
|
Snowflake Connector for Kafka |
|
|
217 | (1) |
|
A Solution Architecture Example |
|
|
217 | (2) |
|
|
219 | (2) |
Index |
|
221 | |