Джерело
IASAedu 🇺🇦 | Junior Data Engineer interview: Star Schema vs Snowflake Schema#Edu_pr...
232 Охват/переглядів
2026-10-15 07:03
Повідомлення №1213
Junior Data Engineer interview: Star Schema vs Snowflake Schema
#Edu_preparation
Що таке схема "Зірка" (Star Schema) та чим вона відрізняється від "Сніжинки" (Snowflake Schema)?
Схема "Зірка" та схема "Сніжинка" — це два основні підходи до багатовимірного моделювання даних в аналітичних сховищах (Data Warehouses). Обидві архітектури будуються навколо центральної таблиці фактів (Fact Table), яка зберігає кількісні метрики бізнес-подій, та пов'язаних із нею таблиць вимірів (Dimension Tables), що надають контекст цим подіям (хто, що, де, коли). Головна відмінність між ними полягає у підході до організації та нормалізації таблиць вимірів.
Відмінності базуються на таких ключових аспектах:
• Нормалізація даних (Data Normalization):
У схемі "Зірка" таблиці вимірів залишаються денормалізованими. Уся інформація про вимір зберігається в одній "плоскій" таблиці, що призводить до дублювання даних (наприклад, назва країни повторюється для кожного міста). У "Сніжинці" таблиці вимірів нормалізовані: вони розбиваються на ієрархічні підтаблиці, що повністю усуває надлишковість збереження інформації.
• Складність запитів (Query Complexity):
"Зірка" має максимально просту і зрозумілу структуру. Для аналізу даних зазвичай потрібен лише один рівень з'єднань (JOINs) між фактами та вимірами. У "Сніжинці" структура розгалужена, тому для збору повного контексту необхідно прописувати складні запити з великою кількістю JOIN-ів між різними рівнями підтаблиць.
• Продуктивність та швидкість читання (Query Performance):
Оскільки аналітичні бази даних оптимізовані для швидкого читання великих обсягів інформації, "Зірка" є стандартом де-факто. Завдяки мінімальній кількості JOIN-ів вона забезпечує найвищу швидкість виконання запитів. "Сніжинка" працює повільніше, оскільки рушію бази даних потрібно витрачати час на об'єднання багатьох таблиць.
• Використання пам'яті та оновлення (Storage & Maintenance):
Денормалізована схема "Зірка" потребує більше дискового простору через дублювання інформації, і її важче оновлювати (при зміні назви категорії потрібно оновлювати всі відповідні рядки). Схема "Сніжинка" суттєво економить пам'ять завдяки нормалізації та робить процеси оновлення даних (UPDATE) більш швидкими й безпечними.
#Edu_preparation
Що таке схема "Зірка" (Star Schema) та чим вона відрізняється від "Сніжинки" (Snowflake Schema)?
Схема "Зірка" та схема "Сніжинка" — це два основні підходи до багатовимірного моделювання даних в аналітичних сховищах (Data Warehouses). Обидві архітектури будуються навколо центральної таблиці фактів (Fact Table), яка зберігає кількісні метрики бізнес-подій, та пов'язаних із нею таблиць вимірів (Dimension Tables), що надають контекст цим подіям (хто, що, де, коли). Головна відмінність між ними полягає у підході до організації та нормалізації таблиць вимірів.
Відмінності базуються на таких ключових аспектах:
• Нормалізація даних (Data Normalization):
У схемі "Зірка" таблиці вимірів залишаються денормалізованими. Уся інформація про вимір зберігається в одній "плоскій" таблиці, що призводить до дублювання даних (наприклад, назва країни повторюється для кожного міста). У "Сніжинці" таблиці вимірів нормалізовані: вони розбиваються на ієрархічні підтаблиці, що повністю усуває надлишковість збереження інформації.
• Складність запитів (Query Complexity):
"Зірка" має максимально просту і зрозумілу структуру. Для аналізу даних зазвичай потрібен лише один рівень з'єднань (JOINs) між фактами та вимірами. У "Сніжинці" структура розгалужена, тому для збору повного контексту необхідно прописувати складні запити з великою кількістю JOIN-ів між різними рівнями підтаблиць.
• Продуктивність та швидкість читання (Query Performance):
Оскільки аналітичні бази даних оптимізовані для швидкого читання великих обсягів інформації, "Зірка" є стандартом де-факто. Завдяки мінімальній кількості JOIN-ів вона забезпечує найвищу швидкість виконання запитів. "Сніжинка" працює повільніше, оскільки рушію бази даних потрібно витрачати час на об'єднання багатьох таблиць.
• Використання пам'яті та оновлення (Storage & Maintenance):
Денормалізована схема "Зірка" потребує більше дискового простору через дублювання інформації, і її важче оновлювати (при зміні назви категорії потрібно оновлювати всі відповідні рядки). Схема "Сніжинка" суттєво економить пам'ять завдяки нормалізації та робить процеси оновлення даних (UPDATE) більш швидкими й безпечними.