Схема «звезда» в многомерном моделировании, которая получила своё широкое применение в 80-ых годах, имела ряд ограничений. При постоянно возрастающем объёме данных в организациях на рубеже 90-ых годов этот подход уже не соответствовал предъявляемым требованиям к историзации, гибкости, масштабируемости и интеграции данных. Таким образом, Data Vault был создан для преодоления недостатков схемы «звезда» в многомерном моделировании. Схема «звезда» (или снежинка) обычно хорошо подходит для простых и стабильных аналитических систем, но она становится менее гибкой при изменении бизнес-требований или добавлении новых источников данных. К тому же, имеются трудности в обслуживании данной модели и поддержании историчности атрибутов. Например, обновления атрибутов измерений могут потребовать внесения изменений в нескольких местах.
Data Vault 1.0 был разработан и представлен Дэном Линстедтом в конце 1990-х. В начале 2000-х годов дизайн Data Vault был протестирован, усовершенствован и внедрён у первых пользователей. Data Vault 1.0 был спроектирован как совершенно новый подход к моделированию данных, а не адаптация существующих моделей. Он был основан на концепции архитектуры «транзитная система» (hub-and-spoke), где данные разделены на три типа таблиц: хабы (hubs), ссылки (links) и сателлиты (satellites).
В 2013 году Дэн Линстедт и Майкл Ольшимке представили Data Vault 2.0. Это расширение и улучшение версии 1.0 с новыми функциями и улучшенными практиками. Data Vault эволюционировал, чтобы решить ограничения версии 1.0 и оптимизировать процесс создания и управления хранилищами данных.
Data Vault 2.0 по-прежнему использует архитектуру hub-and-spoke, но добавляет новые концепции:
- Business Vault — содержит бизнес-правила и преобразования, применяемые к исходным данным.
- Raw Vault — это сырой слой данных, где хранятся исходные данные.
- Information Mart и Data Mart — это аналитический слой данных. Он предназначен для построения отчётов и визуализации данных для пользователей.
Data Vault 1.0 и 2.0 различаются по своей реализации и оптимизации хранилища данных.
Во-первых, Data Vault 2.0 использует хеш-ключи для создания идентификаторов для хабов, ссылок и сателлитов, что увеличивает производительность, масштабируемость и отслеживаемость данных — это и есть основное различие между Data Vault 1.0 и Data Vault 2.0. Оно заключается во введении хэширования в качестве суррогатных ключей вместо использования последовательных ключей. Это стало сдвигом парадигмы в способе загрузки и реализации Data Vault. Такой подход открыл возможности для устранения ссылочной целостности, обеспечиваемой базой данных.
Если раньше ссылочная целостность применялась в Data Vault 1.0, это означало, что необходимо указывать внешние ключи между сателлитом и его хабом/ссылкой, а также между ссылкой и её хабами.
Таким образом, ссылочная целостность накладывала на Data Vault правила последовательной загрузки: хаб должен обновляться перед связанными сателлитами и ссылками, а ссылка должна обновляться перед связанными сателлитами.
С хэш-ключами ссылочная целостность в Data Vault 2.0 уже не поддерживается на уровне базы данных, а кодируется в рамках сверки, которая выполняется после загрузки. Таким образом, с использованием хэш-ключей больше не имеет значения, какой артефакт Data Vault обновляется первым. Все данные из подготовленного слоя загружаются непосредственно в хабы, ссылки и сателлиты независимо (параллельная загрузка).
Во-вторых, в Data Vault 2.0 вводится концепция бизнес-ключей. Бизнес-ключи являются естественными ключами исходных систем, хранимыми в хабах для связывания данных из различных источников.
В-третьих, Data Vault 2.0 применяет стандарты по именованию, моделированию, загрузке и документированию хранилища данных. Эти стандарты помогают обеспечить целостный подход к архитектуре данных. Они улучшают процессы проектирования и доставки данных, а также управления метаданными, качеством и безопасностью данных.
В завершение темы эволюции модели Data Vault отметим, что принципы проектирования Data Vault — модульность, гибкость и масштабируемость — похожи на принципы микросервисов и проектирования, ориентированного на домены (Domain Driven Design). Эти подходы появились примерно в одно и то же время в начале 2000-х годов. Оба эти подхода акцентируют внимание на разделении, адаптивности и независимом развитии. Поэтому Data Vault хорошо дополняет архитектуру микросервисов для управления и интеграции сложных данных.