Who I Am
- The only world-class expert from Canada selected for the Snowflake Data Superhero program in 2021.
- SnowPro Certification SME (Subject Matter Expert): i.e. many exam questions have been created by me.
- Passed four SnowPro certification exams to date (with no retakes): Core, Architect, Data Engineer, Data Analyst.
- Specialized in Snowflake for the past few years, I worked for Snowflake Partner companies, and I served dozens of clients in this capacity or as an independent consultant.
- Today I continue to work with Snowflake, but I am no longer affiliated with their company in any capacity. I recently left their programs to keep my professional independence.
What You Will Learn
- How to access, expand and automate Snowflake through most if not ALL their existing APIs.
- How to build useful real-life tools and small apps with Snowflake APIs.
- How to ingest CSV and JSON data into Snowflake, through data pipelines and Snowpipe.
- How to write medium to complex data analytics queries for Snowflake.
- How to optimize queries, compute, storage and overall costs for Snowflake.
- How to process and render semi-structured and hierarchical data and metadata in Snowflake.
- I tried to cover almost EVERYTHING from Snowflake, only from a programming perspective.
What Snowflake APIs You Will Learn About
- SQL (DDL/DML/DCL) and Snowflake Scripting
- Stored Procedures, User-Defined Functions (UDFs), User-Defined Table Functions (UDTFs)
- Python Client, Snowpark for Python, Python Worksheets
- Streamlit Web Apps, Streamlit for Snowflake, Snowflake Native Apps Framework
- Secure Data Sharing and Data Clean Rooms
- Sharing with private Data Exchange or public Marketplace
- Snowflake SQL REST API and Snowpipe REST API
- Querying metadata from Account Usage and Information Schema
- I tried to cover indeed ALL possible APIs that Snowflake offers today!
What is NOT Included in This Course
- Data Science and Machine Learning APIs.
- Most external integrations, such as external functions, or Kafka and Spark connectors.
- Integrations with data transfer applications or other third-party partner apps.
- Client driver programming in Go, PHP, Java etc.
- Snowpark programming in Java or Scala.
- Main focus was on SQL and Python, with small extra snippets in JavaScript, C#, Java, Scala.
Real-Life Applications You Will Learn To Build
- CDC Data Pipelines with streams and tasks, or dynamic tables
- Generic hierarchical data viewer
- Hierarchical metadata viewer (for data lineage and object dependencies, role hierarchy, etc.)
- Enhanced query profile
- Script automation accessing the SQL REST API
- We’ll build all apps from scratch. We’ll use then Streamlit – for many of them – to create simple web apps, local or remote. We may deploy them into Snowflake, as Streamlit Apps. Or even share them with local partner accounts, as Native Apps.
- I sold tools similar to these to real-life clients and Snowflake partners!
No other course, book or documentation around – including those from Snowflake! – will offer as much insights, hands-on exercises and knowledge transfer as my course here, guaranteed!
Enroll today, to keep this course forever. And help me continue to update it with new APIs Snowflake comes frequently up with.
Curriculum
- 23 Sections
- 173 Lessons
- Lifetime
Expand all sectionsCollapse all sections
- Introduction1
- Warehouses and Cost Estimates8
- 2.1Introduction
- 2.2Hands On: Sign-up for a Free Trial Account
- 2.3Hands On: Use a Very Small Warehouse
- 2.4Hands On: Use Very Large Warehouses
- 2.5Review: Overview of the Snowflake Architecture
- 2.6Hands On: Apply Best Practices for Data and Warehouses
- 2.7Review: Snowflake Best Practices for Compute and Storage
- 2.8Check Your Knowledge10 Minutes0 Questions
- Loading and Accessing CSV Data7
- Loading and Processing JSON Data10
- 4.1Introduction
- 4.2Review: File Formats
- 4.3Hands On: Upload JSON Data
- 4.4Hands On: Transform JSON Data
- 4.5Review: JSON Data Transformations
- 4.6Hands On: Flatten JSON Data
- 4.7Review: JSON Data Flattening
- 4.8Hands On: Add Constraints and Materialized Views
- 4.9Review: Temporary Tables and Materialized Views
- 4.10Check Your Knowledge10 Minutes0 Questions
- Sample Data Extraction and Generation7
- Stored Procedures and Recursive SQL9
- 6.1Introduction
- 6.2Hands On: Prepare Hierarchical Data
- 6.3Hands On: Query Hierarchical Data with Joins
- 6.4Hands On: Query Hierarchical Data with Recursive SQL
- 6.5Review: SQL Queries for Hierarchical Data
- 6.6Hands On: Create UDFs in SQL
- 6.7Hands On: Create Stored Procedure in JavaScript
- 6.8Review: Stored Procedures and Functions
- 6.9Check Your Knowledge10 Minutes0 Questions
- SQL and Snowflake Scripting16
- 7.1Introduction
- 7.2Hands On: Use Case Sensitive Identifiers
- 7.3Hands On: Use Identifier References
- 7.4Hands On: Access JSON Object Properties
- 7.5Review: Identifiers and Variables in Snowflake SQL
- 7.6Hands On: Clone Table Data
- 7.7Review: Duplicating Table Data and Zero-Copy Cloning
- 7.8Hands On: Snowflake Scripting Procedure with Cursor
- 7.9Hands On: Snowflake Scripting Procedure with ResultSet
- 7.10Hands On: Snowflake Scripting Procedure Calling a JavaScript Function
- 7.11Hands On: Test the Generic Hierarchical Viewer in SQL
- 7.12Review: Snowflake Scripting
- 7.13Hands On: Implement Transaction
- 7.14Hands On: More Transaction Use Cases
- 7.15Review: Transactions in Snowflake
- 7.16Check Your Knowledge10 Minutes0 Questions
- Snowflake Data Pipelines10
- 8.1Introduction
- 8.2Batch & Stream Data Transfer to Snowflake
- 8.3Hands On: Manual CDC with MERGE Statement
- 8.4Hands On: Enable Change Tracking on a Table
- 8.5Hands On: CDC with Streams and Tasks
- 8.6Hands On: CDC with Dynamic Table
- 8.7Review: CDC (Change Data Capture) in Snowflake
- 8.8Hands On: Continuous Data Loading with Snowpipe on S3
- 8.9Review: Snowpipe on Amazon S3
- 8.10Check Your Knowledge10 Minutes0 Questions
- Hierarchical Data Visualizations7
- 9.1Introduction
- 9.2Hands On: Transform Tabular Data into JSON Format
- 9.3Review: Hierarchical Data Formats (JSON, XML, and YAML)
- 9.4Hands On: Show Graphs (with GraphViz)
- 9.5Hands On: Show Hierarchical Charts (with Plotly)
- 9.6Hands On: Show Animated Charts (with D3)
- 9.7Check Your Knowledge10 Minutes0 Questions
- Streamlit Web Applications10
- 10.1Introduction
- 10.2Hands On: Create Your First Streamlit Web App
- 10.3Hands On: Add Functionality with a Streamlit Tab Control
- 10.4Review: Introduction to Streamlit
- 10.5Review: Streamlit Layout Components and Interactive Widgets
- 10.6Hands On: Cache Streamlit Data
- 10.7Review: Streamlit Session and Data Caching
- 10.8Hands On: Deploy and Share a Web App in Streamlit Cloud
- 10.9Review: Deploying a Web App in Streamlit Cloud
- 10.10Check Your Knowledge10 Minutes0 Questions
- Client Programming with Snowflake9
- 11.1Introduction
- 11.2Hands On: Install Snowflake Tools and Utilities
- 11.3Review: Snowflake Tools and Utilities
- 11.4Hands On: Connect to Snowflake from a Python Client
- 11.5Hands On: Connect to Snowflake from .NET in C#
- 11.6Hands On: Connect to Snowflake from NodeJS in JavaScript
- 11.7Review: Snowflake Connector for Python
- 11.8Hands On: Connect the Hierarchical Data Viewer to Snowflake
- 11.9Check Your Knowledge10 Minutes0 Questions
- Snowpark API11
- 12.1Introduction
- 12.2Review: Snowpark for Python Architecture
- 12.3Hands On: Create Query with DataFrame API
- 12.4Snowpark API: The Object Model
- 12.5Hands On: Create Stored Procs and UDFs in Python/Java/Scala
- 12.6Review: Procedures and UDFs in Python, Java, Scala
- 12.7Hands On: Customize Stored Proc from Python Worksheet
- 12.8Review: Python Worksheets
- 12.9Hands On: Create and Call Stored Procs and UDFs from Python
- 12.10Review: Snowpark for Python
- 12.11Check Your Knowledge10 Minutes0 Questions
- Streamlit in Snowflake5
- Access Control in Snowflake7
- 14.1Introduction
- 14.2Hands On: Create Script for Users, Roles and Privileges
- 14.3Hands On: Inspect Users, Roles and Privileges
- 14.4Review: Users, Roles and Privileges
- 14.5Hands On: Run SnowSQL Scripts using Variable Substitution
- 14.6Review: Multi-Tenant Architectures with Var Substitution
- 14.7Check Your Knowledge10 Minutes0 Questions
- Snowflake REST APIs8
- 15.1Introduction
- 15.2Hands On: Configure Key Pair Authentication and Generate JWT
- 15.3Review: Key Pair Authentication in Snowflake
- 15.4Hands On: Run a Query from Script with the SQL REST API
- 15.5Review: The Snowflake SQL REST API
- 15.6Hands On: Ingest Files with Snowpipe REST API
- 15.7Review: The Snowpipe REST API
- 15.8Check Your Knowledge10 Minutes0 Questions
- Data Governance in Snowflake10
- 16.1Introduction
- 16.2Hands On: Tag Objects
- 16.3Hands On: Classify Data
- 16.4Review: Data Governance in Snowflake
- 16.5Hands On: Create a Restricted View
- 16.6Hands On: Create a Masking Policy
- 16.7Hands On: Create a Tag-Based Masking Policy
- 16.8Hands On: Create a Row Access Policy
- 16.9Review: Column Masking and Row Access Policies
- 16.10Check Your Knowledge10 Minutes0 Questions
- Data Sharing in Snowflake10
- 17.1Introduction
- 17.2Hands On: Create an Inbound Data Share
- 17.3Hands On: Consume an Outbound Data Share
- 17.4Review: Secure Data Sharing and Reader Accounts
- 17.5Hands On: Create a Listing for Private Data Shares
- 17.6Review: Data Exchange and Snowflake Marketplace
- 17.7Hands On: Solve Yao’s Millionaire Problem for Data Clean Rooms
- 17.8Hands On: Create Data Clean Room with Row Access Policies
- 17.9Review: Data Clean Rooms
- 17.10Check Your Knowledge10 Minutes0 Questions
- Create a Multi-Page Hierarchical Metadata Viewer14
- 18.1Introduction
- 18.2Review: Information Schema vs Account Usage
- 18.3Hands On: Create ER Diagram Viewer
- 18.4Review: ER Diagram Viewer
- 18.5Hands On: Create Users and Roles Inspector
- 18.6Review: Users and the Role Hierarchy
- 18.7Hands On: Create Object Dependency Inspector
- 18.8Review: Object Dependencies in Snowflake
- 18.9Hands On: Create Data Lineage Inspector
- 18.10Review: Data Lineage in Snowflake
- 18.11Hands On: Create Task Dependencies Inspector
- 18.12Review: Task Dependencies and Task Workflow Runs
- 18.13Hands On: Deploy as Multi-Page Streamlit in Snowflake App
- 18.14Check Your Knowledge10 Minutes0 Questions
- Snowflake Native App Framework4
- Create an Admin Dashboard in Snowsight4
- Data Analytics with Snowflake8
- Advanced Analytics with Snowflake9
- 22.1Introduction
- 22.2Hands On: Query with QUALIFY
- 22.3Hands On: Moving Average Query
- 22.4Hands On: Query with Rank Functions
- 22.5Hands On: Query with Offset Functions
- 22.6Review: Window Functions
- 22.7Hands On: Use Statistical Functions
- 22.8Review: Statistical Functions
- 22.9Check Your Knowledge10 Minutes0 Questions
- Snowflake Query Optimization11
- 23.1Introduction
- 23.2Hands On: Use the Query History
- 23.3Hands On: Use the Result Cache
- 23.4Hands On: Interpret the Query Profile
- 23.5Hands On: Interpret a Query Plan from EXPLAIN
- 23.6Hands On: Enhanced Query Profile and Analyzer
- 23.7Review: Query Performance Tools
- 23.8Hands On: Inspect a Table Cluster Distribution
- 23.9Review: Clustering Keys
- 23.10Check Your Knowledge10 Minutes0 Questions
- 23.11Congratulations, You Made It!
Requirements
- Basic SQL knowledge
- Basic knowledge of programming in Python
- Nice to have basic skills in other programming languages: SQL scripting, JavaScript, C#, Java, Scala...
- No prior knowledge of Snowflake or other data warehouses is expected!
- Basic knowledge of working with a git repository such as GitHub
Features
- Query anything in Snowflake through SQL and Snowflake Scripting
- Use most if not all programming APIs offered by Snowflake
- Access and use Snowflake as a software or data developer
- Build real-life tools and apps with and for Snowflake
- Process and access hierarchical data and metadata in Snowflake Data Cloud
Target audiences
- Data Engineers new to Snowflake, looking to acquire deep knowledge of the APIs
- Software Engineers and Developers looking to access Snowflake in different ways
- Data Analysts looking for medium to complex queries they can write for Snowflake
- Data Architects looking to design data pipelines for Snowflake
- Software Architects looking to design apps and tools with and for Snowflake
- Any other practitioner who enjoys data and coding, new or not to Snowflake
