Учебная дисциплина «Хранилища данных» Лекция 7 ОРГАНИЗАЦИЯ МНОГОМЕРНЫХ ХРАНИЛИЩ ДАННЫХ Учебные вопросы: 1. Основы многомерного представления данных. 2. Основные возможности OLAP кубов. Литература 1. 2. 3. 4. 5. Информационные технологии управления : Учебник / Б. В. Черников. - М. : Форум, 2008 ; М. : Инфра-М, 2008. – 351 с.. (Высшее образование). (ГРИФ) Советов Б.Я., Цехановский В.В Информационные технологии: Учебник для вузов / - 3-е изд., стереотип. - М. : Высшая школа, 2006. - 262[2] с. : ил, табл. - Библиогр.: с. 260-261. - ISBN 5-06004275-8 : УДК 002.6(075.8)004(075.8). Консалтинг: от бизнес-стратегии к корпоративной информационно-управляющей системе / Г. Н. Калянов. - М. : Горячая линия-Телеком, 2004. - 208 с Жуковский О.И. Информационные технологии: Учебное пособие. Рекомендовано СИБРУМЦ для межвузовского использования в качестве учебного пособия. – Томск : ТУСУР, 2003. - 168 с. : ил. Библиогр.: с. 164. - ISBN 5-86889-122-8 Проектирование реляционных хранилищ данных [Текст] : справочное издание / В. Е. Туманов, С. В. Маклаков. - М. : ДИАЛОГМИФИ, 2007. - 336 с Цель лекции Цель лекции – сформировать представление у студентов об организации многомерных хранилищ данных. Вопрос 1. Основы многомерного представления данных. Основное назначение многомерных хранилищ данных (МХД) — поддержка систем, ориентированных на аналитическую обработку данных, поскольку такие хранилища лучше справляются с выполнением сложных нерегламентированных запросов. Многомерная модель данных, лежащая в основе построения многомерных хранилищ данных, опирается на концепцию многомерных кубов, или гиперкубов. Они представляют собой упорядоченные многомерные массивы, которые также часто называют OLAP-кубами (аббревиатура OLAP расшифровывается как On-Line Analytical Processing — оперативная аналитическая обработка). Сущность многомерного представления данных состоит в том, что большинство реальных бизнес-процессов описывается множеством показателей, свойств, атрибутов и т.д. Например, для описания процесса продаж могут понадобиться сведения о наименованиях товаров или их групп, о поставщике и покупателе, о городе, где производились продажи, а также о ценах, количествах проданных товаров и общих суммах. Кроме того, для отслеживания процесса во времени должен быть введен в рассмотрение такой атрибут, как дата. Если собрать всю эту информацию в таблицу, то она окажется сложной для визуального анализа и осмысления. Более того, она может оказаться избыточной: если, например, один и тот же товар продавался в один и тот же день в различных городах, то придется несколько раз повторить одно и то же соответствие «город — товар» с указанием различных суммы и количества. Можно пойти другим путем — выполнить декомпозицию информации в несколько более простых таблиц, связать их некоторым набором отношений и перейти к реляционной модели, которую используют классические базы данных. Однако доказано, что реляционная модель не является оптимальной с точки зрения задач анализа, поскольку предполагает высокую степень нормализации, в результате чего снижается скорость выполнения запросов. Поэтому разработка многомерной модели представления данных, которая реализуется с помощью многомерных кубов, стала естественным шагом. Не следует пытаться провести геометрическую интерпретацию понятия «многомерный куб», поскольку это просто служебный термин, описывающий метод представления данных. В основе многомерного представления данных лежит их разделение на две группы — измерения и факты. Измерения — это категориальные атрибуты, наименования и свойства объектов, участвующих в некотором бизнес-процессе. Значениями измерений являются наименования товаров, названия фирм-поставщиков и покупателей, ФИО людей, названия городов и т.д. Измерения могут быть и числовыми, если какой-либо категории (например, наименованию товара) соответствует числовой код, но в любом случае это данные дискретные, то есть принимающие значения из ограниченного набора. Измерения качественно описывают исследуемый бизнес-процесс. Факты — это данные, количественно описывающие бизнеспроцесс, непрерывные по своему характеру, то есть они могут принимать бесконечное множество значений. Примеры фактов — цена товара или изделия, их количество, сумма продаж или закупок, зарплата сотрудников, сумма кредита, страховое вознаграждение и т.д. Многомерный куб можно рассматривать как систему координат, осями которой являются измерения, например Дата, Товар, Покупатель. По осям будут откладываться значения измерений — даты, наименования товаров, названия фирм-покупателей, ФИО физических лиц и т.д. Принцип организации многомерного куба поясняется на рис. 1. В ячейке 1 будут располагаться факты, относящиеся к продаже цемента ООО «Спецстрой» 3 ноября, в ячейке 2 — к продаже плит ЗАО «Пирамида» 6 ноября, а в ячейке 3 — к продаже плит ООО «Спецстрой» 4 ноября. Рисунок 1 - Принцип организации многомерного куба Многомерный взгляд на измерения Дата, Товар и Покупатель представлен на рис. 2. Фактами в данном случае могут быть Цена, Количество, Сумма. Тогда выделенный сегмент будет содержать информацию о том, сколько плит, на какую сумму и по какой цене приобрела фирма ЗАО «Строитель» 3 ноября. Рисунок 2 - Измерения и факты в многомерном кубе Преимущества многомерного подхода очевидны: – Представление данных в виде многомерных кубов более наглядно, чем совокупность нормализованных таблиц реляционной модели, структуру которой представляет только администратор БД. – Возможности построения аналитических запросов к системе, использующей МХД, более широки. – В некоторых случаях использование многомерной модели позволяет значительно уменьшить продолжительность поиска в МХД, обеспечивая выполнение аналитических запросов практически в режиме реального времени. Это связано с тем, что агрегированные данные вычисляются предварительно и хранятся в многомерных кубах вместе с детализированными, поэтому тратить время на вычисление агрегатов при выполнении запроса уже не нужно. Использование многомерной модели данных сопряжено с определенными трудностями. Недостатки многомерного представления данных: 1) Для ее реализации требуется больший объем памяти. Это связано с тем, что при реализации физической многомерности используется большое количество технической информации, поэтому объем данных, который может поддерживаться МХД, обычно не превышает нескольких десятков гигабайт. 2) Многомерная структура труднее поддается модификации; при необходимости встроить еще одно измерение требуется выполнить физическую перестройку всего многомерного куба. На основании этого можно сделать вывод, что применение систем хранения, в основе которых лежит многомерное представление данных, целесообразно только в тех случаях, когда объем используемых данных сравнительно невелик, а сама многомерная модель имеет стабильный набор измерений. В процессе поиска и извлечения из гиперкуба нужной информации над его измерениями производится ряд действий, наиболее типичными из которых являются: 1)сечение (срез); 2)транспонирование; 3)свертка; 4)детализация. Сечение заключается в выделении подмножества ячеек гиперкуба при фиксировании значения одного или нескольких измерений. В результате сечения получается срез или несколько срезов, каждый из которых содержит информацию, связанную со значением измерения, по которому он был построен. Рисунок 3 - Сечения гиперкуба Транспонирование (вращение) обычно применяется к плоским таблицам, полученным, например, в результате среза, и позволяет изменить порядок представления измерений таким образом, что измерения, отображавшиеся в столбцах, будут отображаться в строках, и наоборот. В ряде случаев транспонирование позволяет сделать таблицу более наглядной. При свертке одно или несколько подчиненных значений измерений заменяются теми значениями, которым они подчинены. При этом уровень обобщения данных уменьшается. Так, если отдельные товары образуют группы, например Стройматериалы, то в результате свертки вместо отдельных наименований товаров будет указано наименование группы, а соответствующие им факты будут агрегированы. Детализация — это процедура, обратная свертке; уровень обобщения данных уменьшается. При этом значения измерений более высокого иерархического уровня заменяются одним или несколькими значениями более низкого уровня, то есть вместо наименований групп товаров отображаются наименования отдельных товаров. Таблица 1 – Исходная форма данных Группа Товар Сумма Стройматериалы Кирпич 22 000 Цемент 12 000 Керамзит 4500 Доска 7400 Отвертка 1200 Электропила 7600 Дрель 2450 Шпатель 780 Инструмент Таблица 2 - Результат свертки исходной таблицы по измерению «Товар» Группа Сумма Стройматериалы 45 900 Инструмент 12 030 Вопрос 2. Основные возможности OLAP кубов Рассмотрим основные возможности современных OLAP кубов, и какие задачи они решают (за основу взяты Analysis Services 2005/2008): • быстрый доступ к данным, • преагрегация, • иерархии, • работа с временем, • язык доступа к многомерным данным, • KPI (Key Performance Indicators), • дата майнинг, • многоуровневое кэширование, • поддержка мультиязычности. Быстрый доступ к данным. Собственно быстрый доступ к данным, независимо от размеров массива, и является основой OLAP систем. Так как основной упор именно на этом, хранилище данных обычно строится по принципам, отличным от принципов реляционных баз данных. Преагрегация. Кроме быстрой выборки существующих данных, также предоставляется возможность преагрегировать «наиболее вероятно-используемые» значения. Например, если мы имеем ежедневные записи о продажах какого-то товара, система может преагрегировать нам также месячные и квартальные суммы продаж, а значит, если мы запросим данные помесячно или поквартально, система нам мгновенно выдаст результат. Почему же преагрегация происходит не всегда – потому, что теоретически возможных комбинаций товаров/времени/и т.д. может быть огромное количество, а значит, нужно иметь четкие правила для каких элементов агрегация будет построена, а для каких нет. Иерархии. Закономерно, что анализируя данные и строя конечные отчеты, возникает потребность учитывать то, что месяцы состоят из дней, а сами образуют кварталы, а города входят в области, которые в свою очередь являются частью регионов или стран. OLAP кубы изначально рассматривают данные с точки зрения иерархий и взаимоотношений с другими параметрам одной и той же сущности, так что построение и использования иерархией в кубах. Работа с временем. Так как в основном анализ данных происходит на временных участках, именно времени в OLAP системах выделено особое значение, а значит, просто определив для системы, где у нас тут время, в дальнейшем можно с легкостью пользоваться функциями типа Year To Date, Month To Date (период от начала года/месяца и до текущей даты), Parallel Period (в этот же день или месяц, но в прошлом году) и т.п. Язык доступа к многомерным данным. MDX (Multidimensional Expressions) — язык запросов для простого и эффективного доступа к многомерным структурам данных. Преимущество языка MDX заключается в том, что описывать нужно не то как мы хотим выбрать данные, а что именно мы хотим. Например, SELECT { [Measures].[Units] } ON COLUMNS, { [Time].[June, 2009], [Time].[July, 2009] } ON ROWS FROM [Sales] WHERE ([Product].[iPhone], [Country].[Mozambik]) Это означает - хочу узнать количество iPhone-ов, проданных в июне и июле в Мозамбике. При этом я описываю, какие именно данные я хочу и как именно я хочу их увидеть в отчете. Более сложный выбор данных имеет следующий вид: WITH MEMBER AverageSpend AS[Measures].[Amount] / [Measures].[Transaction Count] SELECT { AverageSpend } ON COLUMNS, { [Customer].[Sex].[Female], [Customer].[Sex].[Male] } ON ROWS FROM [Sales] WHERE ([Shop].[Apple]) В данном случае вначале определяем формулу подсчета «среднего размера покупки», а затем сравниваем кто (какой пол), за один заход в магазин Apple, тратит больше денег. Key Performance Indicators (KPI). Ключевые показатели эффективности — это финансовая и нефинансовая система оценки, которая помогает организации определить достижение стратегических целей. Ключевые показатели эффективности могут быть достаточно просто определены в OLAP системах и использоваться в отчетах. Дата майнинг. Интеллектуальный анализ данных (Data Mining) — по сути, выявление скрытых закономерностей или взаимосвязей между переменными в больших массивах данных. Английский термин «Data Mining» не имеет однозначного перевода на русский язык (добыча данных, вскрытие данных, информационная проходка, извлечение данных/информации) поэтому в большинстве случаев используется в оригинале. Многоуровневое кэширование. Собственно для обеспечения наиболее высокой скорости доступа к данным, кроме хитрых структур данных и преагрегаций, OLAP системы поддерживают многоуровневое кэширование. Кроме кэширования простых запросов, также кэшируются части вычитанных из хранилища данных, агрегированные значения, вычисленные значения. Таким образом, чем дольше работаешь с OLAP кубом, тем быстрее он, по сути, начинает работать. Поддержка мультиязычности. Как минимум Analysis Services 2005/2008 (правда, Enterprise Edition) нативно поддерживают мультиязычность. Достаточно привести перевод строковых параметров ваших данных, и клиенту, указавшему свой язык, будут приходить локализированные данные. Контрольные вопросы 1. Дайте понятие многомерной модели данных и многомерных хранилищ данных. 2. Охарактеризуйте группы данных, лежащих в основе их многомерного представления. 3. Поясните принцип организации многомерного куба данных. 4. Охарактеризуйте преимущества многомерного представления данных. 5. Охарактеризуйте недостатки многомерного представления данных. 6. Перечислите и охарактеризуйте действия, производимые в процессе поиска и извлечения из гиперкуба нужной информации. 7. Дайте характеристику понятиям: быстрый доступ к данным, преагрегация, иерархии, характеризующим свойства OLAP кубов. 8. Дайте характеристику понятиям: работа с временем, язык доступа к многомерным данным, KPI (Key Performance Indicators), характеризующим свойства OLAP кубов. 9. Дайте характеристику понятиям: дата майнинг, многоуровневое кэширование, поддержка мультиязычности, характеризующим свойства OLAP кубов.