
- •Понятие хранилища данных
- •Физические и виртуальные хранилища данных
- •Проблематика построения хранилищ данных
- •Витрины данных
- •Понятие и модель данных 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
- •Добавление заметки к потоку данных
- •Выполнение пакета
- •Контрольные вопросы
- •Литература
Информационные потоки в хд
Данные в ХД образуют следующие информационные потоки (Рисунок 5):
входной поток – образуется данными, копируемыми из OLTP-систем в ХД; данные при этом часто очищаются и обогащаются путем добавления новых атрибутов;
поток обобщения – образуется агрегированием детальных данных и их сохранением в ХД;
архивный поток – образуется перемещением детальных данных, количество обращений к которым снизилось;
поток метаданных – образуется потоком информации о данных в репозиторий данных;
выходной поток – образуется данными, извлекаемыми пользователями;
обратный поток – образуется очищенными данными, записываемыми обратно в OLTP-системы.
Структура olap-куба
В процессе анализа данных часто возникает необходимость построения зависимостей между различными параметрами, число которых может быть значительным.
Под измерением будем понимать последовательность значений одного из анализируемых параметров. Например, для параметра «время» это – последовательность дней, месяцев, кварталов, лет.
Возможность анализа зависимостей между различными параметрами предполагает возможность представления данных в виде многомерной модели – гиперкуба (Рисунок 6), или OLAP-куба.
Рисунок 6. Гиперкуб
Оси куба представляют собой измерения, по которым откладывают параметры, относящиеся к анализируемой предметной области, например, названия товаров и названия месяцев года.
На пересечении осей измерений располагаются данные, количественно характеризующие анализируемые факты – меры, например, объемы продаж, выраженные в единицах продукции.
В простейшем случае двумерного куба получается таблица, показывающая значения уровней продаж по товарам и месяцам.
Дальнейшее усложнение модели данных возможно по нескольким направлениям:
увеличение числа измерений ‑ данные о продажах не только по месяцам и товарам, но и по регионам. В этом случае куб становится трехмерным;
усложнение содержимого ячейки ‑ например, нас может интересовать не только уровень продаж, но и чистая прибыль или остаток на складе. В этом случае в ячейке будет несколько значений;
введение иерархии в пределах одного измерения ‑ общее понятие «время» связано с иерархией значений: год состоит из кварталов, квартал из месяцев и т.д.
Иерархия измерений olap-кубов
Каждое из измерений OLAP-куба может быть представлено в виде иерархической структуры. Например, измерение «Регион» может иметь следующие уровни иерархии: «страна – федеральный округ – область – город – район».
Некоторые измерения могут иметь несколько уровней иерархического представления, например измерение «время» - представление «год – квартал – месяц - день» и представление «год – неделя – день».
Точно так же в рамках измерения «География» можно ввести уровни «Страна», «Регион», «Область» и «Город».
Операции, выполняемые над гиперкубом
Над гиперкубом могут выполняться следующие операции:
Срез (Рисунок 7) – формируется подмножество многомерного массива данных, соответствующее единственному значению одного или нескольких элементов измерений, не входящих в это подмножество.
Рисунок 7. Срез
Вращение (Рисунок 8) – изменение расположения измерений, представленных в отчете или на отображаемой странице. Например, операция вращения может заключаться в перестановке местами строк и столбцов таблицы. Кроме того, вращением куба данных является перемещение внетабличных измерений на место измерений, представленных на отображаемой странице, и наоборот.
Рисунок 8. Вращение
Консолидация (Рисунок 9) и детализация (Рисунок 10) – операции, которые определяют переход вверх по направлению от детального представления данных к агрегированному и наоборот, соответственно. Направление детализации (обобщения) может быть задано как по иерархии отдельных измерений, так и согласно прочим отношениям, установленным в рамках измерений или между измерениями.
Рисунок 9. Консолидация
Рисунок 10. Детализация
Например, если при анализе данных о продажах в Северной Америке выполнить операцию детализации для измерения «Регион», то будут отображены такие элементы, как «Канада», «Восточные штаты США» и «Западные штаты США». В результате дальнейшей детализации элемента «Канада» будут отображены элементы «Торонто», «Ванкувер» и т.д.
Таблица фактов
Таблица фактов — является основной таблицей хранилища данных. Как правило, она содержит сведения об объектах или событиях, совокупность которых будет в дальнейшем анализироваться. Обычно говорят о четырех наиболее часто встречающихся типах фактов. К ним относятся:
факты, связанные с транзакциями (Transaction facts). Они основаны на отдельных событиях (типичными примерами которых являются телефонный звонок или снятие денег со счета с помощью банкомата);
факты, связанные с «моментальными снимками» (Snapshot facts). Основаны на состоянии объекта (например, банковского счета) в определенные моменты времени, например на конец дня или месяца. Типичными примерами таких фактов являются объем продаж за день или дневная выручка;
факты, связанные с элементами документа (Line-item facts). Основаны на том или ином документе (например, счете за товар или услуги) и содержат подробную информацию об элементах этого документа (например, количестве, цене, проценте скидки);
факты, связанные с событиями или состоянием объекта (Event or state facts). Представляют возникновение события без подробностей о нем (например, просто факт продажи или факт отсутствия таковой без иных подробностей).
Таблица фактов, как правило, содержит уникальный составной ключ, объединяющий первичные ключи таблиц измерений. Чаще всего это целочисленные значения либо значения типа «дата/время» — ведь таблица фактов может содержать сотни тысяч или даже миллионы записей, и хранить в ней повторяющиеся текстовые описания, как правило, невыгодно — лучше поместить их в меньшие по объему таблицы измерений. При этом как ключевые, так и некоторые неключевые поля должны соответствовать будущим измерениям OLAP-куба. Помимо этого таблица фактов содержит одно или несколько числовых полей, на основании которых в дальнейшем будут получены агрегатные данные.
Для многомерного анализа пригодны таблицы фактов, содержащие как можно более подробные данные (то есть соответствующие членам нижних уровней иерархии соответствующих измерений). В данном случае предпочтительнее взять за основу факты продажи товаров отдельным заказчикам, а не суммы продаж для разных стран — последние все равно будут вычислены OLAP-средством.
В таблице фактов нет никаких сведений о том, как группировать записи при вычислении агрегатных данных. Например, в ней есть идентификаторы продуктов или клиентов, но отсутствует информация о том, к какой категории относится данный продукт или в каком городе находится данный клиент. Эти сведения, в дальнейшем используемые для построения иерархий в измерениях куба, содержатся в таблицах измерений.
Пример фрагмента схемы данных хранилища данных AdventureWorks приведен на Рисунок 11.
Рисунок 11. Фрагмент схемы данных хранилища данных AdventureWorks
В приведенной схеме данных таблица FactInternetSales является таблицей фактов и содержит сведения о продажах через Интернет в разрезе товаров, дат, валют, рекламы, клиентов и территории. Перечень столбцов таблицы и их типов данных приведен на Рисунок 12.
Рисунок 12. Столбцы таблицы FactInternetSales и их типы данных
Таблицы измерений
Таблицы измерений содержат неизменяемые либо редко изменяемые данные. В подавляющем большинстве случаев эти данные представляют собой по одной записи для каждого члена нижнего уровня иерархии в измерении. Таблицы измерений также содержат как минимум одно описательное поле (обычно с именем члена измерения) и, как правило, целочисленное ключевое поле (обычно это суррогатный ключ) для однозначной идентификации члена измерения. Если будущее измерение, основанное на данной таблице измерений, содержит иерархию, то таблица измерений также может содержать поля, указывающие на «родителя» данного члена в этой иерархии. Нередко (но не всегда) таблица измерений может содержать и поля, указывающие на «прародителей», и иных «предков» в данной иерархии (это обычно характерно для сбалансированных иерархий), а также дополнительные атрибуты членов измерений, содержавшиеся в исходной оперативной базе данных (например, адреса и телефоны клиентов).
Каждая таблица измерений должна находиться в отношении «один ко многим» с таблицей фактов.
Отметим, что скорость роста таблиц измерений должна быть незначительной по сравнению со скоростью роста таблицы фактов; например, добавление новой записи в таблицу измерений, характеризующую товары, производится только при появлении нового товара, не продававшегося ранее.
Так, в приведенном выше примере одной из таблиц измерений является таблица DimCustomer, содержащая редко изменяемые сведения о клиентах. Состав ее столбцов и их типы данных приведены на Рисунок 13.
Рисунок 13. Состав столбцов таблицы измерений DimCusromer и их типы данных