Minimal dbt project for UniSchema S3 NDJSON egress
July 24, 2026 · View on GitHub
Stages ConstituentEvent batches after UniSchema S3 push. The mart_constituent_rfm_features model outputs columns compatible with PhilanthroPy batch scoring.
Layout
dbt/
├── dbt_project.yml
├── models/
│ ├── sources.yml
│ ├── staging/
│ │ ├── stg_constituent_events.sql
│ │ └── schema.yml
│ └── marts/
│ ├── mart_constituent_engagement_daily.sql
│ ├── mart_constituent_rfm_features.sql
│ └── schema.yml
Quick start
- Create the Snowflake external table from ../snowflake_external_table.sql.
- Configure
profiles.ymlfor your warehouse. - Run:
dbt run
PhilanthroPy consumption
Export mart_constituent_rfm_features to CSV or query via Python:
# Warehouse mart produces model-ready aliases (total_gift_amount, event_attendance_count)
# See docs/philanthropy-integration.md
Column contract documented in models/marts/schema.yml.
See ../../../docs/downstream-pipeline.md for the full pilot → warehouse path.