Prerequisites
What you need before the training day
Before You Start — 3 Steps
Step 1: Open the Training Website
- Open the URL from your facilitator — production site: https://mhp-data-engineer-2026.pages.dev/
- When the Workshop Access prompt appears, sign in with both:
- Your roster email — the address your facilitator registered for you (usually the same inbox that received the invite email). Use that exact address, not a personal alias unless your facilitator added it to the roster.
- Workshop token — the shared secret your facilitator sent separately (often in the same pre-class email as the site URL).
- Confirm the site loads: open Prerequisites (this page) and one module from the sidebar. If sign-in fails, check spelling of email and token, or ask your facilitator to confirm your roster row.
- Bookmark Setup in the sidebar — you will open tool-specific guides before each module lab.
Step 2: Fork the Repository (labs only)
Your fork is where lab code lives (Databricks notebooks, Snowflake SQL, dbt, scripts).
- Wait for your facilitator’s GitHub invite to MHPDataEngineerWorkshop and accept it in the email from GitHub (required when the repo is private).
- Open github.com/jinjuewei/MHPDataEngineerWorkshop → Fork (top-right) → keep defaults → Create fork.
- Confirm your fork URL:
github.com/<your-username>/MHPDataEngineerWorkshop.
No Fork button? Send your facilitator your GitHub username so they can add you as a collaborator. Cannot use GitHub at all? Ask about Lab source files — emergency only, and only if the facilitator approves (then use Step 3’s emergency tab instead of Codespaces/local).
Step 3: Open Your Working Environment
Complete at least one option below before class. Almost everyone uses GitHub Codespaces.
| Option | Who should use it |
|---|---|
| GitHub Codespaces (recommended) | Default — browser VS Code; GitHub runs the container (no Docker on your laptop) |
| Local machine | Local clone — Docker + Dev Container (matches Codespaces) or native Python 3.13+ + uv (no Docker) |
| Emergency fallback | Facilitator confirmed you cannot use GitHub before class |
Use this unless your facilitator told you otherwise.
- Open your fork on GitHub (from Step 2).
- Code → Codespaces → Create codespace on main.
- Wait ~2 minutes for the devcontainer to build (Python, dbt, and optional lab packages install from
pyproject.toml). - You now have a browser-based VS Code tied to your fork. Databricks and Snowflake labs still run in those platforms’ UIs; use the Codespace terminal from Module 4 onward for
dbtand optional Snowpark — Exercise: dbt § Configure.env(from Module 4 onward).
Use this if you will not use Codespaces — clone your fork on your laptop, then pick one local setup:
Option A — Dev Container (recommended local path)
Same environment as Codespaces (Python, dbt, Databricks CLI, Snowflake CLI). Requires Docker Desktop on your machine.
- Install Docker Desktop and VS Code with the Dev Containers extension.
- Clone your fork and open the repo folder in VS Code.
- Reopen in Container when prompted (or Command Palette → Dev Containers: Reopen in Container).
- Wait for the container build (~2 minutes). Then configure
.envbefore Module 4 — Exercise: dbt § Configure.env.
Option B — Native Python (no Docker)
Enough for dbt (Module 4) and optional terminal labs (Modules 8–9). Databricks and Snowflake labs still run in the browser. You install Python packages yourself; no Databricks CLI or Snowflake CLI unless you add them separately.
git clone https://github.com/<your-username>/MHPDataEngineerWorkshop.git
cd MHPDataEngineerWorkshop
# Install Python 3.13+ and uv first — https://github.com/astral-sh/uv
uv pip install --system ".[streaming,ml,notebook]"
dbt --versionBefore Module 4: Exercise: dbt § Configure .env. Local install: dbt setup § Local install.
Not the normal path. Use only when your facilitator confirmed you cannot fork or use GitHub before class.
Follow Lab source files: download module ZIPs, unzip locally, install from the bundle’s pyproject.toml. Snowflake SQL is copy-pasted into Snowsight; Databricks notebooks are imported manually — see the guide for details.
Accounts, dbt versions, and day-of checks
dbt (Module 4)
- Codespaces / Dev Container: dbt Core pre-installed from root
pyproject.toml— no manual install - Local native Python:
uv pip install --system ".[streaming,ml,notebook]"thendbt --version - Lab default target: generated
profiles.ymldefaults tosnowflake; use--target databricksfor the cross-platform Databricks lab
pyproject.toml)
Canonical pins at the repository root (your fork). The devcontainer installs from this file.
| Package | Minimum version | Notes |
|---|---|---|
| Python | 3.13 | |
dbt-core |
1.11.8 | latest compatible with dbt-databricks 1.12 (<1.11.9 ceiling) |
dbt-databricks |
1.12.0 | |
dbt-snowflake |
1.11.5 |
Before Module 4: Exercise: dbt § Configure .env → dbt debug --target snowflake should show All checks passed!
Why not dbt-core 1.11.11? PyPI ships newer core releases, but
dbt-databricks1.12.0 still requiresdbt-core<1.11.9. Until Databricks raises that ceiling, 1.11.8 is the newest core that works with both workshop adapters.
Other accounts (Modules 2–3)
- Databricks: workspace invite from facilitator; link GitHub credentials before Git folders
- Snowflake: trial account; use Workspaces (not Snowsight dbt project) for SQL labs — see Snowflake setup