Пример хранилища данных по методологии Data Vault 2.0, моделирующий учебную базу данных Northwind.
База данных Northwind — это учебная база данных, изначально созданная компанией Microsoft и на протяжении десятилетий использовавшаяся в качестве основы для обучающих материалов по различным продуктам управления базами данных. База данных Northwind содержит данные о продажах вымышленной компании «Northwind Traders», которая занимается импортом и экспортом специализированных продуктов питания со всего мира.
Northwind представляет собой отличную учебную схему для ERP-системы малого бизнеса и охватывает такие области, как клиенты, заказы, запасы, закупки, поставщики, доставка, сотрудники и упрощённый (одноконтурный) учёт. Со временем база данных Northwind была портирована на множество немайкрософтовских СУБД, включая PostgreSQL.
Набор данных Northwind включает примерные данные по следующим сущностям:
- categories -
- customers - клиенты, приобретающие продукты у Northwind
- employee_territories -
- employees - информация о сотрудниках компании Northwind Traders
- order_details - детали заказов
- orders - заказы на продажу, происходящие между клиентами и компанией
- products - сведения о товарах
- region -
- shippers - информация о компаниях-перевозчиках, доставляющих товары от Northwind конечным клиентам
- suppliers - поставщики и вендоры компании Northwind
- territories -
- us_states -
Цель данного проекта — разработать пример хранилища данных, демонстрирующий, как моделировать хорошо известную учебную базу данных Northwind с использованием стандартов моделирования Data Vault 2.0.
Цель стейджинговой зоны — подготовка входящих данных для снижения нагрузки на операционные системы и сокращения времени доступа к ним. Стейджинговая зона определяется как временное хранилище входящих данных. При загрузке данных в стейджинг к исходным данным не применяются никакие изменения, за исключением приведения их к ожидаемым типам данных.
Мета-март, март метрик и март ошибок — это специальные разновидности информационных витрин, которые в основном используются для анализа внутренних процессов хранилища данных. В данной реализации эти витрины объединены в одну базу данных и разделены по схемам.
Назначение слоя Data Vault — постоянное хранение корпоративных данных со всей их историей. База данных включает как «сырой» (Raw Vault), так и бизнес-уровень (Business Vault), размещённые в отдельных схемах.
Information_Mart - Формируется на основе базы данных Data Vault и предназначен для доступа конечных пользователей с целью анализа данных. Содержит оптимизированные по производительности таблицы бизнес-уровня Data Vault, а также факты и измерения в стиле Kimball.
- В базе данных PostgreSQL запустите скрипт
init_northwind/northwind.sql.
-
Создайте базы данных Data Vault. Доступны два варианта:
- первый каталог содержит скрипты для быстрого создания баз данных;
- второй позволяет создавать их пошагово.
Конечный результат в обоих случаях будет идентичным:
SQL\DDL\SimpleSQL\DDL\Detailed
-
Выполните одноразовую загрузку «призрачных» (ghost) записей в необходимые таблицы сырого слоя Data Vault:
SQL\DML\ghost_records.sql
-
Убедитесь, что установка выполнена корректно, выполнив начальную загрузку. Запустите следующий скрипт для выполнения хранимых процедур в слоях Staging, Data_Vault и Information_Mart:
SQL\DCL\load_all.sql
-
После этого вы сможете выполнять запросы к представлениям размерной модели типа «звезда» (star schema) в базе Information_Mart.
- Базовая документация, описывающая модели данных, принятые соглашения и другие аспекты, находится в каталоге
init_northwind. - На текущем этапе проект не охватывает создание мета-, метрик- или error-мартов. Необходимые детали описаны в книге Дэна Линстедта «Building a Scalable Data Warehouse with Data Vault 2.0».
- Любая попытка построения промышленного хранилища данных по методологии Data Vault 2.0 должна предваряться прохождением курса CDVP2, предлагаемого Data Vault Alliance.