Prerequisites

What you need before the training day

Before You Start — 3 Steps

Step 1: Open the Training Website

  1. Open the URL from your facilitator — production site: https://mhp-data-engineer-2026.pages.dev/
  2. 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).
  3. 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.
  4. 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).

  1. Wait for your facilitator’s GitHub invite to MHPDataEngineerWorkshop and accept it in the email from GitHub (required when the repo is private).
  2. Open github.com/jinjuewei/MHPDataEngineerWorkshopFork (top-right) → keep defaults → Create fork.
  3. 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 filesemergency 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.

  1. Open your fork on GitHub (from Step 2).
  2. CodeCodespacesCreate codespace on main.
  3. Wait ~2 minutes for the devcontainer to build (Python, dbt, and optional lab packages install from pyproject.toml).
  4. 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 dbt and 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 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 --version

Before 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]" then dbt --version
  • Lab default target: generated profiles.yml defaults to snowflake; use --target databricks for the cross-platform Databricks lab

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 .envdbt debug --target snowflake should show All checks passed!

Why not dbt-core 1.11.11? PyPI ships newer core releases, but dbt-databricks 1.12.0 still requires dbt-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