«Лаборатория Касперского» перешла от классического DWH Кимбалла к гибридной модели, объединив Data Lake на базе Hadoop и Data Vault в MS SQL Server. Data Lake аккумулирует потоки данных из различных источников, включая real-time брокеры, внешние API и облака, используя подход Schema-on-Read.
Data Vault был выбран для промежуточного слоя хранения из-за гибкости при изменениях схем данных, удобства интеграции и предсказуемости разработки. Он позволяет хранить исторические данные и отслеживать изменения, но возникают проблемы производительности из-за нормализации данных, сложности моделирования и необходимости автоматизации загрузки.
Для автоматизации загрузки был разработан фреймворк на базе Spark, позволяющий читать данные из источников по частям, преобразовывать их с помощью DataFrame API, обогащать техническими полями, и маппить атрибуты на поля Data Vault. Фреймворк генерирует SQL-запросы на основе шаблонов для вставки данных в таблицы, а также управляет метаданными для отслеживания инкрементов и обеспечения Data Lineage.
Результатом стало ускорение разработки витрин данных. При этом отмечается важность учёта специфики архитектуры и стека, а также необходимости взвешенного подхода к нормализации данных и выбору инструментов для автоматизации Data Vault.
Изображение носит иллюстративный характер
Data Vault был выбран для промежуточного слоя хранения из-за гибкости при изменениях схем данных, удобства интеграции и предсказуемости разработки. Он позволяет хранить исторические данные и отслеживать изменения, но возникают проблемы производительности из-за нормализации данных, сложности моделирования и необходимости автоматизации загрузки.
Для автоматизации загрузки был разработан фреймворк на базе Spark, позволяющий читать данные из источников по частям, преобразовывать их с помощью DataFrame API, обогащать техническими полями, и маппить атрибуты на поля Data Vault. Фреймворк генерирует SQL-запросы на основе шаблонов для вставки данных в таблицы, а также управляет метаданными для отслеживания инкрементов и обеспечения Data Lineage.
Результатом стало ускорение разработки витрин данных. При этом отмечается важность учёта специфики архитектуры и стека, а также необходимости взвешенного подхода к нормализации данных и выбору инструментов для автоматизации Data Vault.