Введение в OLAP и хранилища данных

Инструменты и технологии Хранилищ данных

Рассматриваются инструменты и технологии хранилищ данных: ETL-процедуры, СУБД в составе хранилища, критерии выбора СУБД и требования к ней. Логика движется от загрузки и преобразования данных к ядру хранилища, затем к эксплуатационным свойствам, метаданным и администрированию. В финале обозначен переход к витринам данных (data mart).

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснять назначение ETL-процедур и их место в интегрированном решении хранилища.
2. Определять, почему СУБД является ядром хранилища данных.
3. Называть факторы выбора СУБД для хранилища: параллельность, производительность, масштабируемость, управляемость.
4. Перечислять требования к СУБД хранилища данных.
5. Приводить примеры многомерного запроса с иерархией и несколькими размерностями.
6. Описывать роль метаданных при загрузке и выполнении запросов.
7. Различать задачи управления и администрирования хранилища.
8. Сопоставлять витрины данных (data mart) с хранилищем как следующий объект изучения.
Показывать лекцию целиком
Краткое изложение

Инструменты и технологии хранилищ данных

Извлечение, очистка и преобразование данных

Задачи извлечения данных из источников, их очистки и преобразования для загрузки в хранилище могут выполняться несколькими отдельными подпрограммами или единым интегрированным подходом. Крупные поставщики хранилищ включают ETL-процедуры (Extract, Transform, Load — извлечение, преобразование, загрузка) в комплексное решение. Тогда не нужен отдельный модуль или продукт другого вендора, который пришлось бы интегрировать с хранилищем. Всё реализовано в одном программном продукте.

ETL-процедуры работают с первичным источником, а данные попадают в единое хранилище. Поэтому инструмент должен читать информацию независимо от её природы: база данных, сайт в интернете, файл на удалённом жёстком диске. Источник не важен. Задача любого инструмента ETL — уметь видеть всё что угодно. Поэтому такое сложное комплексное решение лучше делать интегрированной компонентой внутри хранилища, а не отдельным модулем, который будет разрабатывать неизвестно кто.

СУБД в составе хранилища

Внутри хранилища данные где-то хранятся, значит нужна СУБД (система управления базами данных; DBMS, Database Management System), управляющая этим хранением. Она находится в ядре хранилища. Обычно СУБД стандартны: набор ограничен, достоинства и недостатки известны. В курсе моделирования баз данных использовался SQL Server; работа с ним продолжится и при обсуждении хранилищ. SQL Server регламентирует внутреннюю работу и физическую реализацию базы данных. Аналогично внутри хранилища СУБД отвечает за полное функционирование, корректное выполнение запросов, корректную трансформацию данных и работу ядра системы.

Факторы выбора СУБД

При выборе СУБД нужно учитывать:

Требования к СУБД хранилища данных

Список требований более-менее абстрактный, но за ним стоит конкретный смысл. Если требование не выполняется, стоит задуматься, подходит ли такая СУБД.

Многомерный анализ и иерархии

Многомерный анализ удобно пояснить на корпоративной структуре: президент, вице-президент, департаменты, отделы, подотделы, сотрудники. Можно захотеть запрос: вернуть данные по договорам, которые курирует сотрудник Иванов, отчёт третьего уровня, составленный в департаменте номер шесть. В одном запросе фигурируют человек (низший уровень иерархии) и департамент (средний уровень). Затем запрос ограничивается временем: июнь—июль. Это ещё одна размерность (dimension). Добавляется регион, например Ленинградская область, — ещё одна размерность. В запросе смешаны три-четыре размерности. Хранилище должно оперативно двигаться по этим размерностям, видеть сложную иерархию и структуру при большом количестве размерностей и иерархии внутри отдельной размерности. Для этого нужен соответствующий инструмент, позволяющий быстро сформировать и выполнить такой запрос.

Управление и администрирование хранилища

Инструменты управления и администрирования должны позволять:

Все эти процессы нужно предоставить в управление.

Переход к витринам данных

Следующий пункт — магазины, они же витрины, они же витрины данных (data mart). Это следующий объект рассмотрения.

Краткие итоги

Практическая ценность темы определяется связкой трёх уровней: поступления данных, их хранения и эксплуатации. ETL-инструменты не сводятся к разовой загрузке; они должны обеспечивать единое чтение разнородных источников и преобразование данных до попадания в ядро. Поэтому архитектурно выигрышнее интегрированное решение, где извлечение, очистка, преобразование и хранение развиваются согласованно, а не склеиваются из случайных модулей.

Выбор СУБД становится не технической формальностью, а управленческим решением. Параллельность, отклик, запас масштабирования и управляемость определяют, сможет ли хранилище обслуживать множество пользователей и процессов без деградации. Если эти свойства не заложены заранее, рост компании и объёма данных быстро превращает удобную систему в узкое место, а экономия на этапе выбора оборачивается потерями в эксплуатации.

Требования к СУБД показывают, что хранилище — это не только место хранения. Оно должно обрабатывать данные во время загрузки, контролировать качество, быстро отвечать на запросы, поддерживать сеть хранилищ, администрирование и многомерный анализ. Особую роль играет способность работать с иерархиями и несколькими размерностями: практические вопросы часто соединяют разные уровни управления, периоды и регионы. Чем сложнее такая аналитика, тем важнее инструменты формирования запросов.

Метаданные и администрирование образуют контур управления. Синхронизация метаданных связывает разнородные источники, а средства управления позволяют контролировать загрузку, качество, производительность, аудит, репликацию, архивирование, восстановление и защиту. Без этого хранилище теряет прозрачность и предсказуемость. Переход к витринам данных логичен: после организации ядра и управления возникает потребность в специализированных представлениях для конкретных задач.

Инструменты и технологии хранилищ данных

ETL-процедуры. Извлечение, очистка и преобразование данных могут выполняться отдельными подпрограммами или единым интегрированным подходом. Крупные вендоры включают ETL-процедуры (Extract, Transform, Load — извлечение, преобразование, загрузка) в комплексное решение хранилища. Тогда не нужен отдельный модуль или продукт другого вендора, который надо интегрировать. Всё готово в одном программном продукте.

ETL работает с первичным источником, а данные попадают в единое хранилище. Инструмент должен читать информацию независимо от природы источника: база данных, сайт, файл на удалённом диске. Источник не важен. Поэтому сложное комплексное решение лучше делать интегрированной компонентой внутри хранилища, а не отдельным модулем.

СУБД в хранилище. Данные внутри хранилища где-то хранятся, значит нужна СУБД (система управления базами данных; DBMS). Она находится в ядре хранилища. СУБД стандартны: набор ограничен, достоинства и недостатки известны. В курсе использовался SQL Server; работа с ним продолжится. SQL Server регламентирует внутреннюю работу и физическую реализацию базы данных. Аналогично СУБД в хранилище отвечает за функционирование ядра, корректное выполнение запросов и трансформацию данных.

Факторы выбора СУБД:

Требования к СУБД хранилища данных:

Многомерный анализ. Пример: корпоративная иерархия — президент, вице-президент, департаменты, отделы, подотделы, сотрудники. Запрос: договоры сотрудника Иванова, отчёт третьего уровня, департамент номер шесть. В одном запросе человек и департамент. Затем ограничение по времени: июнь—июль. Это размерность (dimension). Добавляется регион, например Ленинградская область. В запросе три-четыре размерности. Хранилище должно быстро двигаться по размерностям, видеть иерархию и структуру. Нужен инструмент для быстрого формирования и выполнения таких запросов.

Управление и администрирование. Инструменты должны позволять: контролировать загрузку из нескольких источников; проверять качество и целостность данных; управлять и обновлять метаданные; контролировать текущую производительность БД; проводить аудит использования хранилища (пользователь, время, запрос, объём, отчёт); выполнять репликацию, разбиение и распределение данных для резервного копирования и распределённого хранения; удалять ненужные данные, архивировать, резервно копировать, восстанавливать после сбоя, управлять защитой.

Переход к витринам. Следующий объект — магазины, витрины, витрины данных (data mart).

Выводы

1. ETL-процедуры охватывают извлечение, очистку и преобразование данных перед загрузкой в хранилище.
2. Интегрированное решение вендора избавляет от отдельного модуля и сложной интеграции с другим продуктом.
3. ETL должна читать данные независимо от природы источника: база данных, сайт, удалённый файл.
4. СУБД находится в ядре хранилища и отвечает за хранение, запросы, трансформацию и функционирование.
5. При выборе СУБД ключевыми названы параллельность, производительность, масштабируемость, управляемость.
6. Низкая производительность делает хранилище неэффективным для пользователя.
7. Масштабируемость нужна из-за роста компании, числа пользователей и объёма данных.
8. Требования к СУБД включают быструю загрузку, обработку при загрузке, качество данных и быстрые запросы.
9. Хранилище должно поддерживать сеть хранилищ, администрирование и многомерный анализ размерностей.
10. Многомерный запрос может сочетать иерархию сотрудник—департамент, время и регион.
11. Метаданные участвуют в запросах, а их синхронизация связывает разные источники.
12. Управление хранилищем включает контроль загрузки, качества, производительности, аудит, репликацию, архивирование, восстановление и защиту.

Вопросы для самопроверки

1. Какие задачи решают ETL-процедуры?
2. Почему интегрированное решение для ETL предпочтительнее отдельного модуля?
3. Какие источники должна уметь читать ETL-процедура?
4. Где находится СУБД и за что она отвечает?
5. Какие факторы нужно учитывать при выборе СУБД?
6. Какие требования предъявляются к СУБД хранилища данных?
7. Что означает обработка данных во время загрузки?
8. Как в примере с корпоративной иерархией проявляется многомерный анализ?
9. Какую роль играют метаданные при загрузке и выполнении запросов?
10. Зачем нужна синхронизация метаданных между разными источниками?
11. Какие задачи решают инструменты управления и администрирования хранилища?
12. Что следует после темы управления хранилищем и как обозначены витрины данных?
Вернуться к учебному плану