
- •Понятие хранилища данных
- •Физические и виртуальные хранилища данных
- •Проблематика построения хранилищ данных
- •Витрины данных
- •Понятие и модель данных olap
- •Понятие olap
- •Категории данных в хд
- •Информационные потоки в хд
- •Структура olap-куба
- •Иерархия измерений olap-кубов
- •Операции, выполняемые над гиперкубом
- •Архитектура olap-систем
- •1.8.1. Слой извлечения, преобразования и загрузки данных
- •1.8.2. Слой хранения данных
- •1.8.3. Слой анализа данных
- •Клиентские olap-средства
- •Серверные olap-средства
- •Технические аспекты многомерного хранения данных
- •Общие сведения о многомерном анализе данных при помощи службы sql Server 2008 Analysis Services
- •Возможности службы ssas
- •Компоненты bi-решения Microsoft
- •Масштабируемость и производительность
- •Представление источника данных
- •Интеграция с Microsoft Office System 2007
- •Локализация решения посредством использования переводов
- •Инструменты управления службой ssas
- •Планирование и архитектура ssas
- •Логическая архитектура
- •Физическая архитектура
- •Архитектура программирования ssas
- •3.3.1. Объекты amo
- •3.3.2. Язык assl
- •3.3.3. Поставщик данных adomd.Net
- •Разработка многомерных баз данных с использованием ssas
- •Проектирование и реализация многомерных баз данных
- •Решения, проекты и элементы
- •Типы проектов бизнес-аналитики
- •Выбор между ssms и bi Dev Studio
- •Создание проекта служб Analysis Services в среде bi Dev Studio
- •Папки проекта служб Analysis Services
- •Типы файлов проекта Analysis Services
- •Запросы к многомерным базам данных
- •4.2.1. Ключевые понятия многомерных выражений
- •4.2.2. Кортежи
- •4.2.3. Наборы
- •4.2.4. Основные понятия о запросах многомерных выражений
- •4.2.5. Основные понятия о сценариях многомерных выражений
- •Использование служб Integration Services со службами Analysis Services
- •Возможности Integration Services для работы с olap
- •5.1.1. Слияние данных из разнородных хранилищ данных
- •5.1.2. Заполнение хранилищ данных и витрин данных
- •5.1.3. Очистка и стандартизация данных
- •Архитектура служб ssis
- •Пакет ssis
- •5.3.1. Элементы потока управления
- •5.3.1.1. Контейнеры
- •5.3.1.2. Задачи
- •5.3.2. Элементы потока данных
- •5.3.2.1. Источники
- •5.3.2.2. Преобразования
- •5.3.2.3. Целевые объекты (назначения)
- •5.3.2.4. Внешние метаданные
- •5.3.2.5. Входы и выходы
- •5.3.2.6. Пути
- •6.3.2.7. Настройка компонентов потока данных
- •Развертывание служб ssas
- •Планирование развертывания служб Analysis Services
- •6.1.1. Требования к ресурсам
- •6.1.2. Поддержание доступности
- •6.1.3. Инструментарий развертывания служб ssas
- •Настройка безопасности
- •6.2.1. Обеспечение безопасности служб ssas
- •6.2.2. Настройка безопасности служб ssas
- •6.2.3. Предоставление административного доступа
- •6.2.4. Разрешения, которые роль сервера служб ssas может предоставить роли базы данных
- •Требования к файловой системе
- •Требования к программному обеспечению
- •Требования к аппаратному обеспечению
- •Версии sql Server 2008
- •Сценарий цикла лабораторных работ
- •Практические задания
- •Контрольные вопросы
- •Определение представления источника данных в проекте служб Analysis Services Теоретическое введение Выбор метода определения соединения
- •Проектирование представлений источников данных
- •Практические задания
- •Создание проекта служб Analysis Services
- •Определение источника данных
- •Определение нового представления источника данных
- •Изменение имен таблиц по умолчанию
- •Контрольные вопросы
- •Определение и развертывание куба
- •Теоретическое введение
- •Проектирование измерений
- •Развертывание проекта
- •Практические задания Определение измерения
- •Определение куба и его свойств
- •Добавление атрибутов к измерениям
- •Просмотр свойств куба и измерений в конструкторе кубов
- •Развертывание проекта служб Analysis Services
- •Просмотр куба
- •Статистические функции
- •Форматы отображения
- •Определение именованных вычислений в представлении источника данных
- •Связи атрибутов
- •Создание пользовательских иерархий
- •Настройка уровня «All» для иерархий атрибутов
- •Практические задания Изменение мер
- •Изменение измерения «Клиент»
- •Переименование атрибутов
- •Создание иерархии
- •Добавление именованного вычисления
- •Использование именованных вычислений в качестве имен элементов
- •Определение папок отображения
- •Определение составных ключевых столбцов
- •Определение связей атрибутов
- •Развертывание изменений, обработка объектов и просмотр изменений
- •Изменение измерения «Продукт»
- •Добавление именованного вычисления
- •Изменение свойства NameColumn атрибута
- •Создание иерархии
- •Определение имен папок и имени элемента «All»
- •Определение связей атрибутов
- •Просмотр изменений в измерении «Продукт»
- •Изменение измерения «Дата»
- •Добавление именованного вычисления
- •Использование именованных вычислений в качестве имен элементов
- •Создание иерархии
- •Определение связей атрибутов
- •Создание уникальных имен для элементов измерения
- •Определение составного свойства KeyColumns и задание столбца имени
- •Развертывание и просмотр изменений
- •Изменение порядка сортировки путем изменения порядка элементов составных ключей
- •Просмотр развернутого куба
- •Контрольные вопросы
- •Определение расширенных свойств атрибутов и измерений
- •Теоретическое введение Определение иерархии типа «родители-потомки»
- •Группирование элементов атрибутов
- •Скрытие и отключение иерархий атрибутов
- •Сортировка элементов атрибута по вторичному атрибуту
- •Определение связей атрибутов в определенной пользователем иерархии
- •Определение свойств Unknown Member и Null Processing
- •Практические задания Загрузка и обработка улучшенной версии учебного проекта
- •Основные сведения об улучшениях проекта
- •Определение свойств родительского атрибута в иерархии «родители-потомки»
- •Просмотр измерения Employee
- •Изменение свойств родительского атрибута в измерении Employee
- •Просмотр измерения Employee с измененными атрибутами
- •Автоматическое группирование элементов атрибута
- •Группирование элементов иерархии атрибута в измерении Customer
- •Группирование элементов иерархии атрибута в измерении Employee
- •Просмотр измененных иерархий атрибутов
- •Изменение свойств группирования и просмотр результата внесенных изменений
- •Скрытие и отключение иерархий атрибутов
- •Определение свойств иерархии атрибута в измерении «Employee»
- •Настройка свойств иерархии атрибута в измерении «Customer»
- •Сортировка элементов атрибута по вторичному атрибуту
- •Определение связей атрибутов и порядка сортировки в измерении Date
- •Определение связей атрибутов и порядка сортировки в измерении «Customer»
- •Определение связей атрибутов в определенной пользователем иерархии
- •Определение связи атрибутов в иерархии Customer Geography
- •Определение связей атрибутов в иерархии Sales Territory
- •Определение связей атрибутов в иерархии Product Model Lines
- •Определение связей атрибутов в иерархии Fiscal Date
- •Определение связей атрибутов в иерархии Calendar Date
- •Определение связей атрибутов в иерархии Geography
- •Определение свойств Unknown Member и Null Processing
- •Просмотр свойств обработки ошибок и неизвестного элемента в измерении Product
- •Определение атрибутов из связанных по схеме «снежинка» таблиц и пользовательской иерархии Product Category
- •Просмотр пользовательских иерархий в измерении Product
- •Включение неизвестного элемента, определение связи атрибутов и указание свойства пользовательской обработки для значений null
- •Повторный просмотр измерения Product
- •Контрольные вопросы
- •Определение связей между измерениями и группами мер
- •Теоретическое введение Связи измерений
- •Связи обычного измерения
- •Связи ссылочного измерения
- •Связи измерения фактов
- •Связи измерений «многие ко многим»
- •Практические задания Определение ссылочной связи
- •Распределение показателя «Reseller Sales - Sales Amount» по измерению «Geography»
- •Определение атрибута промежуточного измерения и ссылочной связи измерений
- •Распределение показателя «Reseller Sales» по измерению «Geography»
- •Определение связи фактов
- •Определение измерения фактов «Заказы через Интернет»
- •Определение связи фактов для измерений фактов
- •Просмотр куба с использованием измерения фактов
- •Определение связи «многие ко многим»
- •Добавление необходимых таблиц к представлению источника данных
- •Определение промежуточной группы мер
- •Определение измерения «многие ко многим»
- •Определение связи «многие ко многим»
- •Просмотр куба и измерения «многие ко многим»
- •Определение степени гранулярности измерения в группе мер
- •Добавление таблиц и определение группы мер «Sales Quotas»
- •Просмотр мер в группе «Sales Quota» по датам
- •Определение свойств использования измерений для группы мер Sales Quotas
- •Определение связи между атрибутом «Calendar Quarter» и другими атрибутами измерения даты
- •Просмотр мер в группе «Sales Quota» по датам
- •Контрольные вопросы
- •Определение вычислений Теоретическое введение
- •Вычисляемые элементы
- •Именованные наборы
- •Команды сценариев
- •Определение вычислений
- •Практические задания
- •Определение вычисляемых элементов Определение статистических вычислений для физических мер
- •Создание вычислений коэффициента валовой прибыли
- •Создание вычислений «Проценты от общего»
- •Просмотр новых вычисляемых элементов
- •Определение именованных наборов
- •Определение именованного набора «Основные товары»
- •Определение именованного набора «Крупные торговые посредники»
- •Просмотр куба с использованием новых именованных наборов
- •Определение назначений с указанием области с помощью команд сценариев
- •Просмотр распределения квот на количество продаж по датам и сотрудникам
- •Определение области вычисления квоты суммы продаж в финансовом году 2005
- •Определение и проверка нового вычисления квоты продаж для финансового года 2005
- •Распределение квоты суммы продаж по полугодиям и кварталам финансового года 2005
- •Распределение квот продаж по месяцам
- •Контрольные вопросы
- •Определение ключевых индикаторов производительности
- •Теоретическое введение Понятие kpi
- •Общие термины ключевых индикаторов производительности
- •Родительские ключевые показатели производительности
- •Извлечение и отображение ключевых индикаторов производительности
- •Определение kpi
- •Практические задания
- •Определение ключевого индикатора производительности «Доход от продаж через торгового посредника»
- •Просмотр куба с использованием ключевого индикатора производительности «Доход от продаж через торгового посредника»
- •Определение ключевого индикатора производительности «Итоговый коэффициент валовой прибыли»
- •Просмотр куба с использованием ключевого индикатора производительности «Итоговый коэффициент валовой прибыли»
- •Контрольные вопросы
- •Определение перспектив куба и переводов метаданных.
- •Теоретическое введение Перспективы
- •Переводы
- •Практические задания Определение и поиск перспектив
- •Определение перспективы «Продажи через Интернет»
- •Определение перспективы «Продажи через посредников»
- •Определение перспективы «Сводки о продажах»
- •Просмотр куба в каждой из перспектив
- •Определение и просмотр переводов Задание переводов для метаданных измерения «Date»
- •Указание перевода для метаданных куба «Analysis Services Tutorial»
- •Просмотр куба с использованием переводов
- •Настройка безопасности служб ssas
- •Предоставление административного доступа
- •Разрешения, которые роль сервера служб ssas может предоставить роли базы данных
- •Практические задания
- •Определение роли «Обработка объектов базы данных»
- •Контрольные вопросы
- •Заполнение куба при помощи Integration Services
- •Теоретическое введение
- •Практические задания
- •Формат данных источника
- •Формат таблицы-назначения
- •Сопоставление данных источника и назначения
- •Создание нового проекта служб Integration Services
- •Установка свойств проекта, зависящих от языка и региональных стандартов
- •Добавление диспетчера соединений с плоскими файлами
- •Добавление и настройка диспетчера соединений ole db
- •Добавление задачи потока данных в пакет
- •Добавление и настройка источника плоских файлов
- •Добавление и настройка преобразований «Уточняющий запрос»
- •Добавление и настройка преобразования «Уточняющий запрос CurrencyId»
- •Добавление и настройка преобразования «Уточняющий запрос DataId»
- •Добавление и настройка образца назначения ole db
- •Добавление заметки к потоку данных
- •Выполнение пакета
- •Контрольные вопросы
- •Литература
Технические аспекты многомерного хранения данных
OLAP-серверы скрывают от конечного пользователя способ реализации многомерной модели. Они формируют гиперкуб, с которым пользователи посредством OLAP-клиента выполняют необходимые манипуляции, анализируя данные. Однако способ реализации важен, поскольку от него зависят производительность решения и требуемые ресурсы.
Существует три основных способа реализации многомерной модели – MOLAP, ROLAP, HOLAP.
MOLAP
MOLAP (Multidimensional OLAP) – для реализации многомерной модели используются многомерные БД. При этом данные хранятся в виде упорядоченных многомерных массивов. Такие массивы подразделяются на гиперкубы, в которых все хранимые в БД ячейки имеют одинаковую мерность, и поликубы, в которых каждая ячейка хранится с собственным набором измерений. Физически данные хранятся в «плоских» файлах, при этом куб представляется в виде одной плоской таблицы, в которую построчно вписываются все комбинации элементов всех измерений с соответствующими им значениями мер (Рисунок 16).
Измерения |
Меры |
||||
Магазин |
Время |
Поставщик |
Товар |
Единицы товара |
Стоимость товара |
№1 |
01.01.09 |
Иванов |
Картофель |
100 |
20 |
№1 |
01.01.09. |
Иванов |
Морковь |
50 |
25 |
№1 |
01.02.09 |
Иванов |
Картофель |
150 |
20 |
№2 |
01.02.09 |
Петров |
Морковь |
200 |
25 |
Рисунок 16. Куб в MOLAP-системе
Преимущества использования многомерных БД в OLAP-системах:
поиск и выборка данных осуществляется значительно быстрее, чем при многомерном концептуальном взгляде на реляционную БД, так как многомерная БД денормализована и содержит заранее агрегированные показатели, обеспечивая оптимизированный доступ к запрашиваемым ячейкам и не требуя дополнительных преобразований при переходе от множества связанных таблиц к многомерной модели;
многомерные БД легко справляются с задачами включения в информационную модель разнообразных встроенных функций, тогда как объективно существующие ограничения языка SQL делают выполнение этих задач на основе реляционных БД достаточно сложным, а иногда и невозможным.
Недостатки MOLAP:
за счет денормализации и предварительно выполненной агрегации объем данных в многомерной БД, как правило, соответствует (по оценке Кодда) в 2,5... 100 раз меньшему объему исходных детализированных данных;
в подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, в подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, неопределенные значения удается удалить только за счет выбора оптимального порядка сортировки, позволяющего организовать данные в максимально большие непрерывные группы. Кроме того, оптимальный с точки зрения хранения разреженных данных порядок сортировки, скорее всего, не будет совпадать с порядком, который чаще всего используется в запросах. Поэтому в реальных системах приходится искать компромисс между быстродействием и избыточностью дискового пространства, занятого базой данных;
многомерные БД чувствительны к изменениям в многомерной модели. Например, при добавлении нового измерения приходится изменять структуру всей БД, что влечет за собой большие затраты времени.
На основании анализа достоинств и недостатков многомерных БД можно выделить следующие условия, при которых их использование является эффективным:
объем исходных данных для анализа не слишком велик (не более нескольких гигабайт), т. е. уровень агрегации данных достаточно высок;
набор информационных измерений стабилен;
время ответа системы на нерегламентированные запросы является наиболее критичным параметром;
требуется широкое использование сложных встроенных функций для выполнения кроссмерных вычислений над ячейками гиперкуба, в том числе возможность написания пользовательских функций.
ROLAP
ROLAP (Relational OLAP) – для реализации многомерной модели используются реляционные БД.
В настоящее время распространены две основные схемы реализации многомерного представления данных с помощью реляционных таблиц: схема "звезда" (Рисунок 17) и схема "снежинка" (Рисунок 18).
Если каждое измерение содержится в одной таблице, такая схема хранилища данных носит название «звезда» (star schema). Если же хотя бы одно измерение содержится в нескольких связанных таблицах, такая схема хранилища данных носит название «снежинка» (snowflake schema). Дополнительные таблицы измерений в такой схеме, обычно соответствующие верхним уровням иерархии измерения и находящиеся в соотношении «один ко многим» в главной таблице измерений, соответствующей нижнему уровню иерархии, иногда называют консольными таблицами (outrigger table).
Рисунок 17. Пример схемы данных "звезда"
Рисунок 18. Пример схемы данных "снежинка"
В сложных задачах с иерархическими измерениями целесообразно использование схемы "снежинка". В этих случаях отдельные таблицы фактов создаются для возможных сочетаний уровней обобщения различных измерений (Рисунок 18). Это позволяет добиться лучшей производительности, но часто приводит к избыточности данных и к значительным усложнениям в структуре базы данных, в которой оказывается огромное количество таблиц фактов.
Увеличение числа таблиц фактов в БД определяется не только множественностью уровней различных измерений, но и тем обстоятельством, что в общем случае факты имеют разные множества измерений. При абстрагировании от отдельных измерений пользователь должен получать проекцию максимально полного гиперкуба, причем не всегда значения показателей в ней должны являться результатом элементарного суммирования. Таким образом, при большом числе независимых измерений необходимо поддерживать множество таблиц фактов, соответствующих каждому возможному сочетанию выбранных в запросе измерений, что также приводит к неэкономному использованию внешней памяти, увеличению времени загрузки данных в БД со схемой "звезда" из внешних источников и сложностям администрирования.
Использование реляционных БД в OLAP-системах имеет следующие достоинства:
в большинстве случаев корпоративные ХД реализуются средствами реляционных СУБД, и инструменты ROLAP позволяют производить анализ непосредственно над ними. При этом размер хранилища не является таким критичным параметром, как в случае MOLAP;
в случае переменной размерности задачи, когда изменения в структуру измерений приходится вносить достаточно часто, ROLAP-системы с динамическим представлением размерности являются оптимальным решением, т. к. в них такие модификации не требуют физической реорганизации БД;
реляционные СУБД обеспечивают значительно более высокий уровень защиты данных и хорошие возможности разграничения прав доступа.
Главный недостаток ROLAP по сравнению с многомерными СУБД — меньшая производительность. Для обеспечения производительности, сравнимой с MOLAP, реляционные системы требуют тщательной проработки схемы базы данных и настройки индексов. Только при использовании схем типа "звезда" производительность хорошо настроенных реляционных систем может быть приближена к производительности систем на основе многомерных баз данных.
HOLAP
HOLAP (Hybrid OLAP) - для реализации многомерной модели используются и многомерные, и реляционные БД. HOLAP-серверы используют гибридную архитектуру, которая объединяет технологии ROLAP и MOLAP. В отличие от MOLAP, которая работает лучше, когда данные более-менее плотные, серверы ROLAP показывают лучшие параметры в тех случаях, когда данные довольно разрежены. Серверы HOLAP применяют подход ROLAP для разреженных областей многомерного пространства и подход MOLAP — для плотных областей. Серверы HOLAP разделяют запрос на несколько подзапросов, направляют их к соответствующим фрагментам данных, комбинируют результаты, а затем предоставляют результат пользователю.