Infrastructure

Lab infrastructure

Snowflake account, source schema, dbt project layout, auth model, and team ownership for the HOL.

At a glance

Summary

Snowflake account
<account-locator> Distributed at the lab. Internal lab instance.
Source database
SNOWFLAKE_SUMMIT_2026_HOL_DB
Source schema
SF_HOL_2026_RETAIL (Fivetran-synced retail tables prefixed RET_*)
Warehouse
DEFAULT
Lab role
LAB_INSTRUCTOR_ROLE (instructors) / LAB_USER_* (attendees - assigned on arrival)
Auth method
Keypair (no MFA prompts during the lab)
dbt project repo
fivetran-jacklowery/dbt_wizard_hol
dbt profile name
dbt_hands_on_lab_profile
Default target schema
DEV_<initials_or_id> per attendee - auto-suffixed by tier via the generate_schema_name macro
dbt project

dbt project layout

Standard layered dbt project. Staging models map 1:1 to source tables. Intermediate models handle joins and shaping. Mart models split into 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
Sources

Source tables

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
Auth

Snowflake keypair auth

Keypair authentication avoids MFA prompts during the lab. Each attendee receives a pre-generated keypair, a profiles.yml template, and a .env template for the passphrase.

Session-scoped credentials. Keys are distributed at the lab, scoped to the session, and revoked when the lab ends. Don't take them home and don't commit them to a repo.
dbt_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
Agent runtime

dbt Wizard runtime

Components in play during the lab.

BYOK during the beta. Each attendee needs their own GCP auth and dbt platform account before the lab. Install steps are distributed a week ahead for this reason.
Team

Ownership

HOL build-out ownership.

Owner

Garrett Kelly

Messaging and narrative bridging the product launch to the lab.

Owner

Javid Igani

Skill and script co-owner. Agent skill definitions and scenario script content.

Owner

Jason Chletsos

Skill and script co-owner. Recorded video assets and supporting documentation site.

Owner

Jack Lowery

Seeded source data, dbt project structure, and lab-day machine images.

Additional team members to be added.

Quick links

Quick links

Source

GitHub repo

The dbt project, seed data, scripts, and lab assets.

Reference

Slab article

Original dbt Wizard getting-started writeup.

Warehouse

Snowflake instance

The HOL Snowflake account where source data lives.

Platform

dbt platform login

Where first-run account setup happens.

Feedback

Slack channel

Bug reports and product feedback during the beta.