Что такое схемы звезда, снежинка и Data Vault
Что проверяют
Различаете ли вы три ответа на разные вопросы. Звезда и снежинка это модели витрины, то есть удобства чтения, а Data Vault это модель ядра хранилища, то есть удобства загрузки и историчности. Выстраивание их в один ряд «какая лучше» и есть главный признак поверхностного ответа.
Как отвечать
Звезда: таблица фактов на выбранном зерне, одна строка на событие или на позицию документа, и денормализованные измерения вокруг. Мало соединений, понятна инструментам отчётности, легко объясняется аналитику.
Снежинка: те же измерения, но нормализованные по уровням, товар отдельно, категория отдельно, группа отдельно. Убирает рассогласование справочников и экономит место ценой дополнительных соединений. В колоночных хранилищах экономия почти не заметна, поэтому выбор чаще диктует устройство источника, а не объём.
Data Vault: хабы с бизнес-ключами, линки со связями между ними, сателлиты с атрибутами и историей изменений. Данные пишутся только вставкой, с меткой времени и источником, ничего не перезаписывается. Платой становятся количество таблиц и длина запроса, зато загрузка идемпотентна, распараллеливается и не переделывается при добавлении нового источника.
Практичный ответ звучит так: Data Vault в ядре, витрины звездой поверх него, снежинка точечно там, где измерение действительно иерархическое.
Где спотыкаются
Отдают Data Vault аналитикам напрямую. Отчёт собирается из десятка соединений, скорость падает, и хранилище получает репутацию медленного, хотя проблема в отсутствии слоя витрин.
Проектируют факт, не договорившись о зерне. Строка на заказ и строка на позицию заказа это разные таблицы, а попытка совместить оба уровня в одной даёт удвоение сумм при соединении с измерением.
Перезаписывают измерение при изменении атрибута. Отчёты за прошлые периоды начинают меняться задним числом, и вместо истории остаётся только сегодняшняя картина, по которой нельзя объяснить прошлогодние цифры.