Sources
The sources layer is the first dbt-managed layer. It takes the raw JSON columns from the bet365__* landing tables and projects them into typed, well-named columns. Materialised as ReplacingMergeTree ClickHouse tables, partitioned by event_partition_key and built incrementally.
| Model | Grain | Source |
|---|---|---|
| ended_events | one row per finished event | bet365.ended_events |
| odds | one row per (event, odd snapshot) | bet365.odds |