How ianfinkdata/sql-practice works
SQL Practice is a self-paced SQL learning project centered on querying the Oakhaven medallion database. Learners progress from lessons to paired exercises, then apply advanced topics to the database and use the portfolio as a reusable pattern library. The repository also includes Power BI project examples and TMDL/lineage tools, plus a browsable web version. The main workflow and capabilities are documented in the README; source-level edges below are limited to the excerpts provided.
Main entry points: build.py Database Builder · project Practice Database · messiness.py Dirty Data Helpers · curriculum Lessons
Components 21
Oakhaven Data
- Practice Database
project - Bronze Data
project/bronze - Silver Views
project/silver - Gold Models
project/gold - Database Builder
project/build.py - Build Config
project/build_lib/config.py - Dirty Data Helpers
project/build_lib/messiness.py - Customer Generator
project/build_lib/generate_customers.py - Employee Generator
project/build_lib/generate_employees.py - Product Generator
project/build_lib/generate_products.py - Sales Generator
project/build_lib/generate_sales.py - Database Validation
project/build_lib/validate.py
SQL Patterns
- Pattern Library
portfolio
Power BI
- PBIP Models
pbip/projects - TMDL Parser
pbip/pyscripts/parse_tmdl.py - TMDL Catalog Builder
pbip/pyscripts/build_tmdl_db.py - Pipeline Lineage
pbip/pyscripts/pipeline_lineage.py
Web Edition
- Browsable Lessons
docs
Other components
- Learner
Connections 27
- Learner → Lessons: studies
README.md - Learner → Exercises: practices with
README.md - Learner → Practice Database: queries
README.md - Lessons → Exercises: pairs with
README.md - Lessons → Practice Database: uses from Tier 3
README.md - Practice Database → Bronze Data: contains raw tables
README.md - Practice Database → Silver Views: contains clean views
README.md - Practice Database → Gold Models: contains analytics
README.md - Database Builder → Build Config: imports settings
project/build.py - Database Builder → Customer Generator: generates data
project/build.py - Database Builder → Employee Generator: generates data
project/build.py - Database Builder → Product Generator: generates data
project/build.py - Database Builder → Sales Generator: generates data
project/build.py - Customer Generator → Dirty Data Helpers: uses helpers
project/build_lib/generate_customers.py - Employee Generator → Dirty Data Helpers: uses helpers
project/build_lib/generate_employees.py - Product Generator → Dirty Data Helpers: uses helpers
project/build_lib/generate_products.py - Sales Generator → Dirty Data Helpers: uses helpers
project/build_lib/generate_sales.py - Database Builder → Bronze Data: creates schema
project/build.py - Database Builder → Silver Views: executes SQL
project/build.py - Database Builder → Gold Models: executes SQL
project/build.py - Database Builder → Database Validation: runs checks
project/build.py - Pattern Library → Practice Database: patterns verified against
README.md - PBIP Models → TMDL Parser: parsed by
- TMDL Catalog Builder → TMDL Parser: calls parser
pbip/pyscripts/build_tmdl_db.py - Pipeline Lineage → Practice Database: queries metadata
pbip/pyscripts/pipeline_lineage.py - Pipeline Lineage → PBIP Models: extracts lineage
pbip/pyscripts/pipeline_lineage.py - Learner → Browsable Lessons: browses
README.md