Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных
Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных
Contents
Полубояров В.В. 1
Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных. 2
Лекции. 5
1. Введение в основы OLAP. 5
1.1. Хранилища данных. 5
1.2. Понятие и модель данных OLAP. 10
1.3. Структура OLAP-куба. 12
1.4. Иерархия измерений OLAP-кубов. 13
1.5. Операции, выполняемые над гиперкубом.. 13
1.6. Таблица фактов. 15
1.7. Таблицы измерений. 17
1.8. Архитектура OLAP-систем.. 18
1.9. Клиентские OLAP-средства. 22
1.10. Серверные OLAP-средства. 23
1.11. Технические аспекты многомерного хранения данных. 26
2. Общие сведения о многомерном анализе данных при помощи службы SQL Server 2008 Analysis Services 30
2.1. Возможности службы SSAS. 30
2.2. Инструменты управления службой SSAS. 33
3. Планирование и архитектура SSAS. 35
3.1. Логическая архитектура. 35
3.2. Физическая архитектура. 40
3.3. Архитектура программирования SSAS. 41
4. Разработка многомерных баз данных с использованием SSAS. 45
4.1. Проектирование и реализация многомерных баз данных. 45
4.2. Запросы к многомерным базам данных. 52
5. Использование служб Integration Services со службами Analysis Services. 58
5.1. Возможности Integration Services для работы с OLAP. 58
5.2. Архитектура служб SSIS. 61
5.3. Пакет SSIS. 62
6. Развертывание служб SSAS. 68
6.1. Планирование развертывания служб Analysis Services. 68
6.2. Настройка безопасности. 70
Лабораторные работы.. 75
1. Развертывание служб Analysis Services. 75
Теоретическое введение. 75
Практические задания. 78
Контрольные вопросы.. 97
2. Определение представления источника данных в проекте служб Analysis Services. 98
Теоретическое введение. 98
Практические задания. 100
Создание проекта служб Analysis Services. 100
Определение источника данных. 102
Определение нового представления источника данных. 107
Изменение имен таблиц по умолчанию.. 112
Контрольные вопросы.. 114
4. Определение и развертывание куба. 114
Теоретическое введение. 114
Практические задания. 116
Контрольные вопросы.. 148
5. Изменение мер, атрибутов и иерархий. 148
Теоретическое введение. 148
Практические задания. 154
Контрольные вопросы.. 224
6. Определение расширенных свойств атрибутов и измерений. 225
Теоретическое введение. 225
Практические задания. 230
Контрольные вопросы.. 303
7. Определение связей между измерениями и группами мер. 303
Теоретическое введение. 303
Практические задания. 309
Контрольные вопросы.. 368
8. Определение вычислений. 369
Теоретическое введение. 369
Практические задания. 371
Контрольные вопросы.. 414
9. Определение ключевых индикаторов производительности. 415
Теоретическое введение. 415
Практические задания. 419
Контрольные вопросы.. 426
10. Определение перспектив куба и переводов метаданных. 426
Теоретическое введение. 426
Практические задания. 428
Контрольные вопросы.. 443
11. Определение ролей администраторов и пользователей. 443
Теоретическое введение. 443
Практические задания. 447
Контрольные вопросы.. 450
12. Заполнение куба при помощи Integration Services. 451
Теоретическое введение. 451
Практические задания. 451
Контрольные вопросы.. 487
Литература. 487
Лекции
Введение в основы OLAP
Хранилища данных
Понятие хранилища данных
Технология ХД предназначена для хранения и анализа больших объемов данных с целью дальнейшего обнаружения в них скрытых закономерностей и, наряду с технологией Data Mining, входит в понятие «предсказательная аналитика». Data Mining, в свою очередь, изучает процесс нахождения новых, действительных и потенциально полезных знаний в базах данных.
ХД – предметно-ориентированный, интегрированный, редко меняющийся, поддерживающий хронологию набор данных, организованный для целей поддержки принятия решений. Предметная ориентация означает, что ХД интегрируют информацию, отражающую различные точки зрения на предметную область. Интеграция предполагает, что данные, хранящиеся в ХД, приводятся к единому формату. Поддержка хронологии означает, что все данные в ХД соответствуют последовательным интервалам времени.
Кроме возможности работать с единым источником информации, руководители и аналитики должны иметь удобные средства визуализации данных, агрегирования, поиска тенденций, прогнозирования. Несмотря на многообразие аналитической деятельности можно выделить типовые технологии анализа данных, каждой из которых соответствует определенный набор инструментальных средств. Вместе с хранилищем данных эти средства обеспечивают полное решение для автоматизации аналитической деятельности и создания корпоративной информационно-аналитической системы.
Витрины данных
Сокращение затрат на проектирование и разработку ХД может быть достигнуто путем создания витрин данных (ВД). ВД – это упрощенный вариант ХД, содержащий только тематически объединенные данные (Рисунок 3).
Рисунок 3. Структура СППР с самостоятельными ВД
ВД содержит данные, ориентированные на конкретного пользователя, существенно меньше по объему, и для ее реализации требуется меньше затрат. ВД могут строиться как самостоятельно, так и вместе с ХД. ВД внедряются гораздо быстрее и быстрее виден эффект от их использования. Недостатками ВД является многократное хранение одних и тех же данных в различных ВД и отсутствие консолидированности на уровне предметной области.
Обычно информация попадает в ВД из ХД в этом случае ВД называются зависимыми. Возможна также ситуация, когда источником информации для пополнения ВД служат непосредственно OLTP-системы. Такие ВД, получившие название независимых, как правило, рассматриваются как временное решение, позволяющее достаточно быстро и с небольшими затратами решить наиболее важные задачи, оценить преимущества нового подхода, сформулировать некоторые рекомендации для более масштабного проекта разработки общего ХД.
Возможно также совмещение ХД и ВД в рамках одной СППР. ХД в этом случае представляет собой единый источник данных для всей предметной области, а ВД являются подмножествами данных из хранилища, организованными для представления информации по тематическим разделам данной области. В том случае, если пользователю, для которого создавалась ВД, содержащихся в ней данных недостаточно, то он может обратиться к ХД (Рисунок 4).
Рисунок 4. Структура СППР с ХД и ВД
Достоинствами такого решения являются простота создания и наполнения ВД, поскольку наполнение происходит из единого стандартизированного источника очищенных данных – из ХД, простота расширения за счет добавления новых ВД, а также снижение нагрузки на основное ХД.
Недостатки заключаются в избыточности, так как данные хранятся и в ХД, и в ВД, а также дополнительные затраты на разработку СППР с ХД и ВД.
Понятие OLAP
OLAP (Online Analytical Processing) – технология оперативной аналитической обработки данных, использующая методы и средства для сбора, хранения и анализа многомерных данных в целях поддержки процессов принятия решений.
Основное назначение OLAP-систем – поддержка аналитической деятельности, произвольных запросов пользователей – аналитиков. Цель OLAP-анализа – проверка возникающих гипотез.
Категории данных в ХД
Все данные в ХД делятся на три категории (Рисунок 5):
Рисунок 5. Архитектура ХД
- детальные данные – данные, переносимые непосредственно из OLTP-подсистем. Соответствуют элементарным событиям, фиксируемым в OLTP-системах. Подразделяются на:
- измерения – наборы данных, необходимые для описания событий (товар, продавец, покупатель, магазин, … );
- факты – данные, отражающие сущность события (количество проданного товара, сумма продаж, …);
- агрегированные (обобщенные) данные – данные, получаемые на основании детальных путем суммирования по определенным измерениям;
- метаданные – данные о данных, содержащихся в ХД. Могут описывать:
- объекты предметной области, информация о которых содержится в ХД;
- категории пользователей, использующих данные в ХД;
- места и способы хранения данных;
- действия, выполняемые над данными;
- время выполнения различных действий над данными;
- причины выполнения различных действий над данными.
Информационные потоки в ХД
Данные в ХД образуют следующие информационные потоки (Рисунок 5):
- входной поток – образуется данными, копируемыми из OLTP-систем в ХД; данные при этом часто очищаются и обогащаются путем добавления новых атрибутов;
- поток обобщения – образуется агрегированием детальных данных и их сохранением в ХД;
- архивный поток – образуется перемещением детальных данных, количество обращений к которым снизилось;
- поток метаданных – образуется потоком информации о данных в репозиторий данных;
- выходной поток – образуется данными, извлекаемыми пользователями;
- обратный поток – образуется очищенными данными, записываемыми обратно в OLTP-системы.
Структура OLAP-куба
В процессе анализа данных часто возникает необходимость построения зависимостей между различными параметрами, число которых может быть значительным.
Под измерением будем понимать последовательность значений одного из анализируемых параметров. Например, для параметра «время» это – последовательность дней, месяцев, кварталов, лет.
Возможность анализа зависимостей между различными параметрами предполагает возможность представления данных в виде многомерной модели – гиперкуба (Рисунок 6), или OLAP-куба.
Рисунок 6. Гиперкуб
Оси куба представляют собой измерения, по которым откладывают параметры, относящиеся к анализируемой предметной области, например, названия товаров и названия месяцев года.
На пересечении осей измерений располагаются данные, количественно характеризующие анализируемые факты – меры, например, объемы продаж, выраженные в единицах продукции.
В простейшем случае двумерного куба получается таблица, показывающая значения уровней продаж по товарам и месяцам.
Дальнейшее усложнение модели данных возможно по нескольким направлениям:
- увеличение числа измерений ‑ данные о продажах не только по месяцам и товарам, но и по регионам. В этом случае куб становится трехмерным;
- усложнение содержимого ячейки ‑ например, нас может интересовать не только уровень продаж, но и чистая прибыль или остаток на складе. В этом случае в ячейке будет несколько значений;
- введение иерархии в пределах одного измерения ‑ общее понятие «время» связано с иерархией значений: год состоит из кварталов, квартал из месяцев и т.д.
Таблица фактов
Таблица фактов — является основной таблицей хранилища данных. Как правило, она содержит сведения об объектах или событиях, совокупность которых будет в дальнейшем анализироваться. Обычно говорят о четырех наиболее часто встречающихся типах фактов. К ним относятся:
- факты, связанные с транзакциями (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 и их типы данных
Архитектура OLAP-систем
Полномасштабная OLAP-система должна выполнять сложные и разнообразные функции, включающие сбор данных из различных источников, их согласование, преобразование и загрузку в хранилище, хранение аналитической информации, регламентную отчетность, поддержку произвольных запросов, многомерный анализ и др.
В настоящее время существуют фактические стандарты построения OLAP-систем, основанных на концепции ХД. Эти стандарты опираются на современные исследования и общемировую практику создания хранилищ данных и аналитических систем.
В общем виде архитектура корпоративной OLAP-системы описывается схемой с тремя выделенными слоями (Рисунок 14):
Рисунок 14. Архитектура корпоративной OLAP-системы
- извлечение, преобразование и загрузка данных;
- хранение данных;
- анализ данных.
Данные поступают из различных внутренних OLTP-систем, от подчиненных структур, от внешних организаций в соответствии с установленным регламентом, формами и макетами отчетности. Вся эта информация проверяется, согласуется, преобразуется и помещается в хранилище и витрины данных. После этого пользователи с помощью специализированных инструментальных средств получают необходимую им информацию для построения различных табличных и графических представлений, прогнозирования, моделирования и выполнения других аналитических задач.
1.8.1. Слой извлечения, преобразования и загрузки данных
С организационной точки зрения, данный слой включает подразделения и структуры организации всех уровней, поддерживающие базы данных оперативного доступа. Он представляет собой низовой уровень генерации информации, уровень внутренних и внешних информационных источников, вырабатывающих “сырую” информацию. Эта информация является рабочей для повседневной деятельности различных подразделений, которые ее вырабатывают и используют.
С системно-технической точки зрения данный слой представлен ЛВС всех подразделений всех уровней, к которым подключены специализированные технические комплексы, хранящие информацию, чаще всего реализованные в виде реляционных СУБД.
Из источников данных информация перемещается на основе некоторого регламента в централизованное хранилище. Как правило, необходимые для хранилища данные не хранятся в окончательном виде ни в одной из OLTP-систем. Эти данные обычно можно получить из исходных баз данных путем специальных преобразований, вычислений и агрегирования.
Кроме того, несмотря на различную функциональную направленность, исходные транзакционные системы часто «пересекаются» по данным, т.е. их локальные базы данных содержат однотипную по смыслу информацию. Это, прежде всего, касается нормативно-справочной информации, которая используется в том или ином виде в любой OLTP-системе. При этом существенно, что одинаковые по смыслу данные обычно имеют в разных системах различный формат, вид представления, идентификацию, единицы измерения и т.п. Перед загрузкой в хранилище вся эта информация должна быть согласована, чтобы обеспечить целостность и непротиворечивость аналитических данных.
Согласование данных необходимо и при загрузке данных из одного источника. Дело в том, что в хранилище хранятся исторические данные, т.е. данные за достаточно большой промежуток времени. В оперативной системе данные хранятся в целостном виде за ограниченный промежуток, после чего они отправляются в архив. При изменениях в структуре или собственно данных архивы не подвергаются никакой дополнительной обработке, а хранятся в исходном виде. Следовательно, при необходимости иметь данные за достаточно большой период времени необходимо согласовывать архивную информацию с текущей.
Таким образом, загрузка данных из источников в хранилище осуществляется специальными процедурами, позволяющими:
- извлекать данные из различных баз данных, текстовых файлов;
- выполнять различные типы согласования и очистки данных;
- преобразовывать данные при перемещении их от источников к хранилищу;
- загружать согласованные и «очищенные» данные в структуры хранилища.
Слой хранения данных
Слой хранения данных предназначен непосредственно для хранения значимой, проверенной, согласованной, непротиворечивой и хронологически целостной информации, которую с достаточно высокой степенью уверенности можно считать достоверной.
Собственно ХД не ориентировано на решение какой-либо определенной функциональной аналитической задачи. Цель ХД – обеспечить целостность и поддерживать хронологию всевозможных корпоративных данных, и с этой точки зрения оно нейтрально по отношению к приложениям. В связи с этим в большинстве случаев для выполнения определенного комплекса функционально замкнутых аналитических задач рационально создавать витрины данных, в основе которых может быть как многомерная, так и реляционная модель данных. По существу витрина представляет собой относительно небольшое, но что самое важное, функционально-ориентированное ХД, в котором информация хранится специальным образом, оптимизированным с точки зрения решения конкретных аналитических задач некоторого подразделения или группы аналитиков.
ХД чаще всего реализуется в виде реляционной БД, работающей под управлением достаточно мощной реляционной СУБД. Такая СУБД должна поддерживать эффективную работу с терабайтными объемами информации, иметь развитые средства ограничения доступа, обеспечивать повышенный уровень надежности и безопасности, соответствовать необходимым требованиям по восстановлению и архивации.
Слой анализа данных
Для организации доступа аналитиков к данным ХД и ВД используются специализированные рабочие места, поддерживающие необходимые технологии как оперативного, так и долговременного анализа. Результаты работы аналитиков оформляются в виде отчетов, графиков, рекомендаций и сохраняются как на локальном компьютере, так и в общедоступном узле локальной сети.
Аналитическая деятельность в рамках корпорации достаточно разнообразна и определяется характером решаемых задач, организационными особенностями компании, уровнем и степенью подготовленности аналитиков.
В связи с этим современный подход к инструментальным средствам анализа не ограничивается использованием какой-то одной технологи. В настоящее время принято различать следующие основные вида аналитической деятельности:
- стандартная отчетность;
- нерегламентированные запросы;
- многомерный анализ (OLAP);
- извлечение знаний (data mining).
Каждая из этих технологий имеет свои особенности, определенный набор типовых задач и должна поддерживаться специализированной инструментальной средой.
Клиентские OLAP-средства
Клиентские OLAP-средства представляют собой приложения, осуществляющие вычисление агрегатных данных (сумм, средних величин, максимальных или минимальных значений) и их отображение, при этом сами агрегатные данные содержатся в кэше внутри адресного пространства такого OLAP-средства.
Если исходные данные содержатся в настольной СУБД, вычисление агрегатных данных производится самим OLAP-средством. Если же источник исходных данных — серверная СУБД, многие из клиентских OLAP-средств посылают на сервер SQL-запросы, содержащие оператор GROUP BY, и в результате получают агрегатные данные, вычисленные на сервере.
Как правило, OLAP-функциональность реализована в средствах статистической обработки данных (из продуктов этого класса на российском рынке широко распространены продукты компаний StatSoft и SPSS) и в некоторых электронных таблицах. В частности, средствами многомерного анализа обладает Microsoft Excel. С помощью этого продукта можно создать и сохранить в виде файла небольшой локальный многомерный OLAP-куб и отобразить его двух- или трехмерные сечения.
Надстройки к пакету приложений Microsoft Office для извлечения и обработки данных представляют собой ряд функций, обеспечивающих доступ к возможностям извлечения и обработки данных из приложений Microsoft Office, и тем самым позволяющих осуществлять прогностический анализ на локальном компьютере. Благодаря тому, что встроенные в службы платформы Microsoft SQL Server алгоритмы извлечения и обработки данных доступны из среды приложений Microsoft Office, бизнес-пользователи могут легко извлекать ценную информацию из сложных наборов данных всего несколькими щелчками мыши. Надстройки к пакету приложений Office для извлечения и обработки данных дают конечным пользователям возможность выполнять анализ непосредственно в приложениях Microsoft Excel и Microsoft Visio.
В состав Microsoft Office 2007 входят три отдельных OLAP-компонента:
- клиент извлечения и обработки данных для Excel позволяет создавать проекты извлечения и обработки данных на базе служб SSAS и управлять ими из Excel 2007;
- средства анализа таблиц для приложения Excel позволяют использовать встроенные в службы SSAS функции извлечения и обработки информации для анализа данных, хранящихся в таблицах Excel;
- шаблоны извлечения и обработки данных для приложения Visio позволяют визуализировать деревья решений, деревья регрессии, кластерные диаграммы и сети зависимостей на диаграммах Visio.
На Рисунок 15 изображена сводная таблица Excel, используемая для доступа клиентов к данным служб аналитики.
Рисунок 15. Сводная таблица Excel 2007
С помощью приложения Microsoft Office Visio можно аннотировать, дополнять и отображать графические представления результатов извлечения и обработки данных. Платформа SQL Server 2008 в сочетании с приложением Visio 2007 позволяет:
- визуализировать деревья решений, деревья регрессии, кластерные диаграммы и сети зависимостей;
- сохранять модели извлечения и обработки данных в виде документов Visio, внедренных в другие документы приложений Office или сохраненных в виде веб-страниц.
Клиентские OLAP-средства применяются, как правило, при малом числе измерений (обычно рекомендуется не более шести) и небольшом разнообразии значений этих параметров, — ведь полученные агрегатные данные должны умещаться в адресном пространстве подобного средства, а их количество растет экспоненциально при увеличении числа измерений. Поэтому даже самые примитивные клиентские OLAP-средства, как правило, позволяют произвести предварительный подсчет объема требуемой оперативной памяти для создания в ней многомерного куба.
Серверные OLAP-средства
Преимущества применения серверных OLAP-средств по сравнению с клиентскими OLAP-средствами сходны с преимуществами применения серверных СУБД по сравнению с настольными: в случае применения серверных средств вычисление и хранение агрегатных данных происходят на сервере, а клиентское приложение получает лишь результаты запросов к ним, что позволяет в общем случае снизить сетевой трафик, время выполнения запросов и требования к ресурсам, потребляемым клиентским приложением. Отметим, что средства анализа и обработки данных масштаба предприятия, как правило, базируются именно на серверных OLAP-средствах, например, таких как Oracle Database Server и Microsoft SQL Server.
Некоторые клиентские OLAP-средства (в частности, Microsoft Excel) позволяют обращаться к серверным OLAP-хранилищам, выступая в этом случае в роли клиентских приложений, выполняющих подобные запросы. Помимо этого имеется немало продуктов, представляющих собой клиентские приложения к OLAP-средствам различных производителей.
MOLAP
MOLAP (Multidimensional OLAP) – для реализации многомерной модели используются многомерные БД. При этом данные хранятся в виде упорядоченных многомерных массивов. Такие массивы подразделяются на гиперкубы, в которых все хранимые в БД ячейки имеют одинаковую мерность, и поликубы, в которых каждая ячейка хранится с собственным набором измерений. Физически данные хранятся в «плоских» файлах, при этом куб представляется в виде одной плоской таблицы, в которую построчно вписываются все комбинации элементов всех измерений с соответствующими им значениями мер (Рисунок 10).
Измерения | Меры | ||||
Магазин | Время | Поставщик | Товар | Единицы товара | Стоимость товара |
№1 | 01.01.09 | Иванов | Картофель | ||
№1 | 01.01.09. | Иванов | Морковь | ||
№1 | 01.02.09 | Иванов | Картофель | ||
№2 | 01.02.09 | Петров | Морковь |
Рисунок 16. Куб в MOLAP-системе
Преимущества использования многомерных БД в OLAP-системах:
- поиск и выборка данных осуществляется значительно быстрее, чем при многомерном концептуальном взгляде на реляционную БД, так как многомерная БД денормализована и содержит заранее агрегированные показатели, обеспечивая оптимизированный доступ к запрашиваемым ячейкам и не требуя дополнительных преобразований при переходе от множества связанных таблиц к многомерной модели;
- многомерные БД легко справляются с задачами включения в информационную модель разнообразных встроенных функций, тогда как объективно существующие ограничения языка SQL делают выполнение этих задач на основе реляционных БД достаточно сложным, а иногда и невозможным.
Недостатки MOLAP:
- за счет денормализации и предварительно выполненной агрегации объем данных в многомерной БД, как правило, соответствует (по оценке Кодда) в 2,5... 100 раз меньшему объему исходных детализированных данных;
- в подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, в подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, неопределенные значения удается удалить только за счет выбора оптимального порядка сортировки, позволяющего организовать данные в максимально большие непрерывные группы. Кроме того, оптимальный с точки зрения хранения разреженных данных порядок сортировки, скорее всего, не будет совпадать с порядком, который чаще всего используется в запросах. Поэтому в реальных системах приходится искать компромисс между быстродействием и избыточностью дискового пространства, занятого базой данных;
- многомерные БД чувствительны к изменениям в многомерной модели. Например, при добавлении нового измерения приходится изменять структуру всей БД, что влечет за собой большие затраты времени.
На основании анализа достоинств и недостатков многомерных БД можно выделить следующие условия, при которых их использование является эффективным:
- объем исходных данных для анализа не слишком велик (не более нескольких гигабайт), т. е. уровень агрегации данных достаточно высок;
- набор информационных измерений стабилен;
- время ответа системы на нерегламентированные запросы является наиболее критичным параметром;
- требуется широкое использование сложных встроенных функций для выполнения кроссмерных вычислений над ячейками гиперкуба, в том числе возможность написания пользовательских функций.
ROLAP
ROLAP (Relational OLAP) – для реализации многомерной модели используются реляционные БД.
В настоящее время распространены две основные схемы реализации многомерного представления данных с помощью реляционных таблиц: схема "звезда" (Рисунок 11) и схема "снежинка" (Рисунок 12).
Если каждое измерение содержится в одной таблице, такая схема хранилища данных носит название «звезда» (star schema). Если же хотя бы одно измерение содержится в нескольких связанных таблицах, такая схема хранилища данных носит название «снежинка» (snowflake schema). Дополнительные таблицы измерений в такой схеме, обычно соответствующие верхним уровням иерархии измерения и находящиеся в соотношении «один ко многим» в главной таблице измерений, соответствующей нижнему уровню иерархии, иногда называют консольными таблицами (outrigger table).
Рисунок 17. Пример схемы данных "звезда"
Рисунок 18. Пример схемы данных "снежинка"
В сложных задачах с иерархическими измерениями целесообразно использование схемы "снежинка". В этих случаях отдельные таблицы фактов создаются для возможных сочетаний уровней обобщения различных измерений (Рисунок 12). Это позволяет добиться лучшей производительности, но часто приводит к избыточности данных и к значительным усложнениям в структуре базы данных, в которой оказывается огромное количество таблиц фактов.
Увеличение числа таблиц фактов в БД определяется не только множественностью уровней различных измерений, но и тем обстоятельством, что в общем случае факты имеют разные множества измерений. При абстрагировании от отдельных измерений пользователь должен получать проекцию максимально полного гиперкуба, причем не всегда значения показателей в ней должны являться результатом элементарного суммирования. Таким образом, при большом числе независимых измерений необходимо поддерживать множество таблиц фактов, соответствующих каждому возможному сочетанию выбранных в запросе измерений, что также приводит к неэкономному использованию внешней памяти, увеличению времени загрузки данных в БД со схемой "звезда" из внешних источников и сложностям администрирования.
Использование реляционных БД в OLAP-системах имеет следующие достоинства:
- в большинстве случаев корпоративные ХД реализуются средствами реляционных СУБД, и инструменты ROLAP позволяют производить анализ непосредственно над ними. При этом размер хранилища не является таким критичным параметром, как в случае MOLAP;
- в случае переменной размерности задачи, когда изменения в структуру измерений приходится вносить достаточно часто, ROLAP-системы с динамическим представлением размерности являются оптимальным решением, т. к. в них такие модификации не требуют физической реорганизации БД;
- реляционные СУБД обеспечивают значительно более высокий уровень защиты данных и хорошие возможности разграничения прав доступа.
Главный недостаток ROLAP по сравнению с многомерными СУБД — меньшая производительность. Для обеспечения производительности, сравнимой с MOLAP, реляционные системы требуют тщательной проработки схемы базы данных и настройки индексов. Только при использовании схем типа "звезда" производительность хорошо настроенных реляционных систем может быть приближена к производительности систем на основе многомерных баз данных.
HOLAP
HOLAP (Hybrid OLAP) - для реализации многомерной модели используются и многомерные, и реляционные БД. HOLAP-серверы используют гибридную архитектуру, которая объединяет технологии ROLAP и MOLAP. В отличие от MOLAP, которая работает лучше, когда данные более-менее плотные, серверы ROLAP показывают лучшие параметры в тех случаях, когда данные довольно разрежены. Серверы HOLAP применяют подход ROLAP для разреженных областей многомерного пространства и подход MOLAP — для плотных областей. Серверы HOLAP разделяют запрос на несколько подзапросов, направляют их к соответствующим фрагментам данных, комбинируют результаты, а затем предоставляют результат пользователю.
Возможности службы SSAS
Microsoft SQL Server Analysis Services (SSAS) является базовой платформой для развития систем бизнес-анализа (Business Intelligence). SSAS 2008 обеспечивают высокую производительность работы приложений и масштабируемость на уровне миллионов записей и тысяч пользователей.
UDM
SSAS построены на основе Унифицированной Многомерной Модели (Unified Dimensional Model, UDM), появившейся в версии 2005, которая позволяет различным типам клиентских приложений получать доступ к данным как из реляционных, так и из многомерных баз данных без использования отдельных моделей для каждого типа баз данных.
Основой UDM является архитектура измерений на основе атрибутов. Архитектура измерений на основе атрибутов дает возможность группировать свойства (атрибуты), определяющие функционирование бизнеса, в одно измерение и от