Every component the HOL touches - Snowflake account, source schema, dbt project, auth model, and the supporting team.
<account-locator> Distributed at the lab. Internal lab instance.SNOWFLAKE_SUMMIT_2026_HOL_DBSF_HOL_2026_RETAIL (Fivetran-synced retail tables prefixed RET_*)DEFAULTLAB_INSTRUCTOR_ROLE (instructors) / LAB_USER_* (attendees - assigned on arrival)fivetran-jacklowery/dbt_wizard_holdbt_hands_on_lab_profileDEV_<initials_or_id> per attendee - auto-suffixed by tier via the generate_schema_name macroA standard layered dbt project: staging models map 1:1 to source tables, intermediate models do the heavy joins and shaping, and mart models split into business-facing core and marketing layers.
models/
staging/
stg_customers.sql
stg_orders.sql
stg_order_items.sql
stg_products.sql
stg_product_categories.sql
stg_product_subcategories.sql
stg_product_reviews.sql
stg_inventory.sql
stg_inventory_transactions.sql
stg_promotions.sql
stg_tickets.sql
stg_warehouses.sql
_staging__sources.yml
intermediate/
int_customer_metrics.sql
int_customer_cohorts.sql
int_customer_churn_risk.sql
int_orders_enriched.sql
int_daily_summary.sql
int_weekly_summary.sql
int_quarterly_summary.sql
int_repeat_purchase_behavior.sql
int_rfm_segmentation.sql
marts/
core/
fct_orders.sql
fct_monthly_revenue.sql
customer_analytics.sql
daily_revenue_trends.sql
quarterly_performance.sql
marketing/
cohort_analysis.sql
churn_risk_analysis.sql
discount_effectiveness.sql
high_value_segment.sql
promo_campaign_analysis.sql
repeat_purchase_analysis.sql
rfm_segment_performance.sql
Twelve Fivetran-synced retail tables live in SNOWFLAKE_SUMMIT_2026_HOL_DB.SF_HOL_2026_RETAIL. All tables include _FIVETRAN_DELETED and _FIVETRAN_SYNCED system columns. The physical primary key is CTID_FIVETRAN_ID; the business key is ID on every table.
| Table name | Description | Primary key |
|---|---|---|
RET_CUSTOMERS |
One row per registered customer, including contact info and geographic segmentation. | ID |
RET_ORDERS |
One row per customer order, including status, shipping details, and pre-computed totals. | ID |
RET_ORDER_ITEMS |
One row per line item within an order, including quantity, unit price, and discount. | ID |
RET_PRODUCTS |
Product catalog with SKU, pricing, brand, and active status. | ID |
RET_PRODUCT_CATEGORIES |
Top-level product category lookup table. | ID |
RET_PRODUCT_SUBCATEGORIES |
Product subcategory lookup, each belonging to a parent category. | ID |
RET_PRODUCT_REVIEWS |
Customer product reviews with a 1-5 rating and optional review text. | ID |
RET_INVENTORY |
Current inventory levels per product per warehouse, with reorder thresholds. | ID |
RET_INVENTORY_TRANSACTIONS |
Log of every inventory movement (receipt, sale, adjustment, return) per product per warehouse. | ID |
RET_PROMOTIONS |
Promotional campaigns with discount type, value, date range, and applicable category. | ID |
RET_TICKETS |
Customer support tickets linked to customers and optionally to orders. | ID |
RET_WAREHOUSES |
Warehouse locations with address, capacity, and active status. | ID |
We use keypair authentication so attendees don't get MFA-prompted mid-lab. Each lab user gets a pre-generated keypair, a profiles.yml template, and a .env template for the passphrase.
profiles.yml template pointing at dbt_hands_on_lab_profile.env template with SNOWFLAKE_PRIVATE_KEY_PATH and SNOWFLAKE_PRIVATE_KEY_PASSPHRASEdbt_hands_on_lab_profile:
target: dev
outputs:
dev:
type: snowflake
# your account locator, distributed at the lab
account: "<account-locator>"
user: "LAB_USER_N@example.com"
private_key_path: "{{ env_var('SNOWFLAKE_PRIVATE_KEY_PATH') }}"
private_key_passphrase: "{{ env_var('SNOWFLAKE_PRIVATE_KEY_PASSPHRASE', '') }}"
role: "LAB_USER_ROLE"
database: "SNOWFLAKE_SUMMIT_2026_HOL_DB"
schema: "DEV_LAB_USER_N"
warehouse: "DEFAULT"
threads: 4
What's actually in play during the lab.
Action-item ownership for the HOL build-out.
"Why dbt Wizard" messaging and story. Owns the narrative that bridges the marketing launch to the hands-on lab.
Skill and script co-owner. Drives the agent skill definitions and the scenario script content.
Skill and script co-owner, lab walkthrough recording. Owns the recorded video assets and the supporting documentation site.
Laptop build, dataset, repo owner. Owns the seeded source data, the dbt project structure, and the lab-day machine images.
Additional team members will be added once their roles are pinned down.
The dbt project, seed data, scripts, and lab assets.
Original dbt Wizard getting-started writeup.
The HOL Snowflake account where source data lives.
Where first-run account setup happens.
Bug reports and product feedback during the beta.