The Data Warehouse Toolkit, 3rd Edition — книга Ralph Kimball и Margy Ross (Wiley, 2013). Это главный учебник по dimensional modeling. В ней 21 глава: основы и приёмы моделирования (главы 1–2), 14 глав с кейсами из бизнеса и отраслей (3–16), жизненный цикл проекта, ETL и big data. Это конспект на русском. К каждой главе есть схема и практика на DuckDB.
Это собственный пересказ, а не перевод. За полным текстом идите в оригинал. Схемы и данные для SQL придуманы заново.
- Dimensional modeling — основа
dbt-проектов и BI-витрин. Слои fct_* и dim_* пришли из этой книги.
- Книга нужна не только data engineer. Analytics engineer и аналитик тоже строят и читают star schema.
- Приёмы работают в любом хранилище: Snowflake, BigQuery, Redshift, DuckDB.
- Книга учит на примерах из отраслей. Вы сравниваете свой случай с готовым.
- Глава 2 — справочник: все приёмы моделирования на нескольких страницах.
| Часть | Главы | О чём |
|---|
| Основы | 1–2 | DW/BI, star schema, все приёмы моделирования |
| Бизнес-процессы | 3–9 | Розница, склад, закупки, заказы, учёт, CRM, HR |
| Отрасли | 10–16 | Финансы, телеком, транспорт, образование, медицина, e-commerce, страхование |
| Проект и ETL | 17–20 | Жизненный цикл, процесс моделирования, 34 подсистемы ETL |
| Big data | 21 | Большие данные и аналитика |
| Приём | Где разбирается |
|---|
| Grain, fact, dimension, star schema | Глава 3 |
| Slowly changing dimensions (SCD 0–7) | Глава 5, кратко в главе 2 |
| Conformed dimensions и bus matrix | Главы 4, 18 |
| Три типа fact table: transaction, snapshot, accumulating | Главы 4, 6 |
| Junk, role-playing, degenerate dimensions | Главы 2, 6 |
| Bridge table для связи many-to-many | Главы 8, 10, 14 |
| Mini-dimension | Главы 5, 8, 10 |
| Factless fact table | Главы 3, 13 |
- Новичок. Главы 1–3, затем 4 и 6. После них хватает для первой витрины.
- Analytics engineer. Главы 2, 3, 6, 8, 9. Затем 19–20 про загрузку.
- Data engineer. Главы 2, 19, 20 и отраслевая глава, близкая к вашей работе.
- Руководитель. Главы 1, 17, 18.
- Установите DuckDB:
brew install duckdb или откройте shell.duckdb.org.
- Данные в каждой главе создаются SQL-кодом. Файлы скачивать не нужно.
- Блоки кода идут по порядку. Выполняйте их сверху вниз в одной сессии.
- Сначала решайте задание сами. Потом открывайте решение.
- Нужен вводный курс перед книгой? Пройдите базовый минимум Dimensional Modeling: 11 уроков на данных одного магазина.
| Глава | Тема |
|---|
| 1. DW/BI и основы dimensional modeling | Архитектура DW/BI, Kimball и Inmon, star schema и OLAP |
| 2. Приёмы dimensional modeling | Справочник приёмов: SCD, виды fact table, conformance |
| 3. Продажи в рознице | Четыре шага проектирования, star schema |
| 4. Склад | Snapshot, accumulating snapshot, semi-additive |
| 5. Закупки | Заказы поставщикам, общие dimensions |
| 6. Заказы | Заголовок и строки, role-playing, pipeline |
| 7. Бухгалтерский учёт | Главная книга, бюджеты, проводки |
| 8. CRM | Клиент 360, mini-dimension, поведение |
| 9. HR | История сотрудников, иерархии, навыки |
| 10. Финансовые услуги | Счета, домохозяйства, bridge |
| 11. Телеком | Биллинг, звонки, география |
| 12. Транспорт | Маршруты и сегменты, role-playing |
| 13. Образование | Приём, регистрация, посещаемость |
| 14. Медицина | Диагнозы, bridge с весами |
| 15. E-commerce | Clickstream, сессии, воронки |
| 16. Страхование | Полисы, покрытия, убытки |
| 17. Жизненный цикл Kimball | Этапы DW/BI-проекта |
| 18. Процесс моделирования | Bus matrix, workshops, проверка grain |
| 19. Подсистемы ETL | 34 подсистемы ETL |
| 20. Разработка ETL | Проектирование и запуск ETL |
| 21. Big data | Big data и dimensional modeling |