Learn Postgres
The Crunchy Data Playground gives you a fully functional Postgres instance right in your browser — no installation, no setup, no credit card. Each tutorial comes with a preloaded sample database so you can start writing queries immediately.
These are some of my favorites to recommend, but there are dozens more on the platform.
| Tutorial | Description |
|---|---|
| Crunchy Data Playground | Browse all available interactive tutorials, from SQL basics to advanced geospatial queries. |
| psql Basics | Get comfortable navigating Postgres from the command line with \d, \dt, \l, and more. |
| Basics of Arrays | Postgres has native array support — learn to store, query, and manipulate arrays directly in SQL. |
| Working with Dates | Date and time handling is one of those things every developer needs eventually. Learn intervals, date math, and formatting. |
| Introduction to JSON | Store and query JSON documents natively in Postgres — no separate document database needed. |
| Window Functions | Once you learn window functions, you'll wonder how you ever lived without them. Ranking, running totals, moving averages, and more. |
| PostGIS Intro | Add geospatial superpowers to your Postgres queries — points, polygons, distance calculations, and spatial indexing. |
All Crunchy Data Playground tutorials are free, run entirely in the browser, and require no installation or account creation.
Hands-On Training - Postgres Full-Day Training Workshop
If you want to go deep in a single sitting, this open-source workshop covers six hours of material from beginner through advanced topics. Originally presented at SCaLE 23x (2026), it's designed for both instructor-led sessions and self-study.
What's covered:
- psql fundamentals and navigation
- SQL querying and data manipulation
- DBA essentials (users, roles, configuration)
- Troubleshooting common issues
- Performance analysis and monitoring
- Query tuning and indexing strategies
Setup: Docker-based environment with the Bluebox sample database (real TMDB movie data) — spin it up in minutes and start working through exercises at your own pace.
Snowflake Developer Guides
These guides walk you through real-world workflows on Snowflake Postgres — from creating your first table to building production data pipelines with pg_lake and monitoring with your observability stack of choice.
Getting Started with Snowflake Postgres Tables
Create tables, load data, and run queries on your Snowflake Postgres instance. Getting Started with Tables
Migrate to Snowflake Postgres Using Logical Replication
Set up logical replication to migrate an existing Postgres database to Snowflake Postgres with minimal downtime. Migrate Using Logical Replication
Bidirectional Data Pipelines with pg_lake
Build IoT-style pipelines that flow data between Postgres and Snowflake using pg_lake's Iceberg integration. Bidirectional Data Pipelines with pg_lake
Sync Data from Postgres to Snowflake with Iceberg
Use pg_lake to sync Postgres tables to Snowflake as Iceberg tables for analytics workloads. Sync Data with Iceberg and pg_lake
Build a Lakehouse with Snowflake Postgres
Combine Postgres as your transactional layer with Snowflake's analytics engine for a complete lakehouse architecture. Build a Lakehouse with Snowflake Postgres
Build AI Apps with Streamlit and Snowflake Cortex
Connect your Postgres data to Snowflake Cortex AI functions and build interactive Streamlit applications. Build AI Apps with Streamlit and Cortex
Monitor with Datadog
Ship Snowflake Postgres logs and metrics to Datadog for centralized observability. Monitor with Datadog
Monitor with Observe
Integrate Snowflake Postgres monitoring into Observe's unified observability platform. Monitor with Observe
Monitor with Grafana
Set up Grafana dashboards for Snowflake Postgres performance monitoring and alerting. Monitor with Grafana
All Snowflake developer guides include step-by-step instructions with working SQL, ready to follow in your own Snowflake Postgres instance. Create a free trial account to get started immediately.
This content is provided as is, and is not maintained on an ongoing basis. It may be out of date with current Snowflake instances