Чем хуже 3NF или Start Schema?
Если долгое время мы все пользовались 3NF или всеми любимой звездой, реализовали на них сотни проектов, уважали и восхищались, то зачем придумали какой-то новый (относительно конечно новый) DataVault? Просто чтобы себе жизнь усложнить?
Далее разберем основные минусы 3NF и Start Schema.
1. Гибкость при изменении данных
Самый главный минус – их монолитность. Очень велики риски поломать что-либо. А бизнес-процессы компаний постоянно меняются, ничего ведь не стоит на месте. Каждый месяц к бедным data-инженерам приходит бизнес с новыми требованиями. И приходится жить в такой постоянно меняющейся парадигме. А в это парадигме жить со Звездой весьма больно.
Простой пример: при проектировании отдел маркетинга божился, что к одной промоакции может относится только один продукт (связь один-ко-многим). А потом внезапно один продукт проходит в рамках разных промоакций (связь многие-ко-многим). Нехорошо, товарищи! Придется переделывать модель данных, а там еще витрины данных зависимые могут быть поломаны…
Мда…
2. Поддержка исторических данных
Ответственно заявляют, что в звезде прямо таки больно хранить историчность (SCD-2). Особенно, когда у вас измерение на 50 эдак столбцов, а изменяется (причем часто) только один-два атрибута. И следовательно попросту дублируются значения других атрибутов, при записи новой строки.
Data Vault гораздо проще масштабируется по мере роста организации или изменений в инфраструктуре данных. При добавлении новых источников или сущностей в модель нужно только добавлять новые Hubs, Links и Satellites, без необходимости изменять уже существующие компоненты. А вот при добавлении нового источника в ту же Звезду начинается сущий ад.