Добавлен: 05.07.2023
Просмотров: 135
Скачиваний: 1
Введение
Трудно найти в компьютерном мире человека, который хотя бы на интуитивном уровне
не понимал, что такое базы данных и зачем они нужны. В отличие от традиционных
реляционных СУБД, концепция OLAP [1]н
так широко известна, хотя загадочный термин "кубы OLAP" слышали, наверное,
почти все. Что же такое Online Analytical Processing?
OLAP - это не отдельно взятый программный продукт, не язык программирования и
даже не конкретная технология. Если постараться охватить OLAP во всех его
проявлениях, то это совокупность концепций, принципов и требований, лежащих в
основе программных продуктов, облегчающих аналитикам доступ к данным.
Для начала мы выясним, зачем аналитикам надо как-то специально облегчать
доступ к данным. Дело в том, что аналитики - это особые потребители
корпоративной информации. Задача аналитика - находить закономерности в
больших массивах данных. Поэтому аналитик не будет обращать внимания на
отдельно взятый факт, что в четверг четвертого числа контрагенту Чернову
была продана партия черных чернил - ему нужна информация о сотнях и тысячах
подобных событий. Одиночные факты в базе данных могут заинтересовать, к
примеру, бухгалтера или начальника отдела продаж, в компетенции которого
находится сделка. Аналитику одной записи мало - ему, к примеру, могут
понадобиться все сделки данного филиала или представительства за месяц, год.
Заодно аналитик отбрасывает ненужные ему подробности вроде ИНН покупателя,
его точного адреса и номера телефона, индекса контракта и тому подобного. В
то же время данные, которые требуются аналитику для работы, обязательно
содержат числовые значения - это обусловлено самой сущностью его
деятельности.
Централизация и удобное структурирование - это далеко не все, что нужно
аналитику. Ему ведь еще требуется инструмент для просмотра, визуализации
информации. Традиционные отчеты, даже построенные на основе единого
хранилища, лишены одного - гибкости. Их нельзя “покрутить”, “развернуть” или
“свернуть”, чтобы получить желаемое представление данных. Конечно, можно
вызвать программиста, и он сделает новый отчет достаточно быстро - скажем, в
течение часа. Получается, что аналитик может проверить за день не более двух
идей. А ему (если он хороший аналитик) таких идей может приходить в голову по
нескольку в час. И чем больше “срезов” и “разрезов” данных аналитик видит,
тем больше у него идей, которые, в свою очередь, для проверки требуют все
новых и новых “срезов”. Вот бы ему такой инструмент, который позволил бы
разворачивать и сворачивать данные просто и удобно! В качестве такого
инструмента и выступает OLAP.
Хотя OLAP и не представляет собой необходимый атрибут хранилища данных, он
все чаще и чаще применяется для анализа накопленных в этом хранилище
сведений.
Компоненты, входящие в типичное хранилище, представлены на рис. 1.
Реферат: OLAP технологии
Рисунок 1. Структура хранилища данных
Оперативные данные собираются из различных источников, очищаются, интегрируются
и складываются в реляционное хранилище[2].
При этом они уже доступны для анализа при помощи различных средств построения
отчетов. Затем данные (полностью или частично) подготавливаются для
OLAP-анализа. Они могут быть загружены в специальную БД OLAP или оставлены в
реляционном хранилище. Важнейшим его элементом являются метаданные, т. е.
информация о структуре, размещении и трансформации данных. Благодаря ним
обеспечивается эффективное взаимодействие различных компонентов хранилища.
Подытоживая, можно определить OLAP как совокупность средств многомерного
анализа данных, накопленных в хранилище. Теоретически средства OLAP можно
применять и непосредственно к оперативным данным или их точным копиям (чтобы
не мешать оперативным пользователям). Но мы тем самым рискуем наступить на
уже описанные выше грабли, то есть начать анализировать оперативные данные,
которые напрямую для анализа непригодны.
2 Хранилища данных
2.1 Что такое хранилище данных?
Информационные системы масштаба предприятия, как правило, содержат
приложения, предназначенные для комплексного многомерного анализа данных, их
динамики, тенденций и т.п. Такой анализ в конечном итоге призван
содействовать принятию решений. Нередко эти системы так и называются —
системы поддержки принятия решений.
Принять любое управленческое решение невозможно не обладая необходимой для
этого информацией, обычно количественной. Для этого необходимо создание
хранилищ данных (Data warehouses), то есть процесс сбора, отсеивания и
предварительной обработки данных с целью предоставления результирующей
информации пользователям для статистического анализа (а нередко и создания
аналитических отчетов).
Ральф Кимбалл (Ralph Kimball), один из авторов концепции хранилищ данных,
описывал хранилище данных как "место, где люди могут получить доступ к своим
данным" (см., например, Ralph Kimball, "The Data Warehouse Toolkit: Practical
Techniques for Building Dimensional Data Warehouses", John Wiley & Sons,
1996 и "The Data Web house Toolkit: Building the Web-Enabled Data Warehouse",
John Wiley & Sons, 2000). Он же сформулировал и основные требования к
хранилищам данных:
· поддержка высокой скорости получения данных из хранилища;
· поддержка внутренней непротиворечивости данных;
· возможность получения и сравнения так называемых срезов данных
(slice and dice);
· наличие удобных утилит просмотра данных в хранилище;
· полнота и достоверность хранимых данных;
· поддержка качественного процесса пополнения данных.
Удовлетворять всем перечисленным требованиям в рамках одного и того же
продукта зачастую не удается. Поэтому для реализации хранилищ данных обычно
используется несколько продуктов, одни их которых представляют собой
собственно средства хранения данных, другие — средства их извлечения и
просмотра, третьи — средства их пополнения и т.д.
Типичное хранилище данных, как правило, отличается от обычной реляционной
базы данных. Во-первых, обычные базы данных предназначены для того, чтобы
помочь пользователям выполнять повседневную работу, тогда как хранилища
данных предназначены для принятия решений. Например, продажа товара и выписка
счета производятся с использованием базы данных, предназначенной для
обработки транзакций, а анализ динамики продаж за несколько лет, позволяющий
спланировать работу с поставщиками, — с помощью хранилища данных.
Во-вторых, обычные базы данных подвержены постоянным изменениям в процессе
работы пользователей, а хранилище данных относительно стабильно: данные в нем
обычно обновляются согласно расписанию (например, еженедельно, ежедневно или
ежечасно — в зависимости от потребностей). В идеале процесс пополнения
представляет собой просто добавление новых данных за определенный период
времени без изменения прежней информации, уже находящейся в хранилище.
И, в-третьих, обычные базы данных чаще всего являются источником данных,
попадающих в хранилище. Кроме того, хранилище может пополняться за счет
внешних источников, например статистических отчетов.
2.2 Типичная структура хранилищ данных
Как мы уже знаем, конечной целью использования OLAP является анализ данных и
представление результатов этого анализа в виде, удобном для восприятия и
принятия решений. Основная идея OLAP заключается в построении многомерных
кубов, которые будут доступны для пользовательских запросов. Однако исходные
данные для построения OLAP-кубов обычно хранятся в реляционных базах данных.
Нередко это специализированные реляционные базы данных, называемые также
хранилищами данных (Data Warehouse). В отличие от так называемых оперативных
баз данных, с которыми работают приложения, модифицирующие данные, хранилища
данных предназначены исключительно для обработки и анализа информации,
поэтому проектируются они таким образом, чтобы время выполнения запросов к
ним было минимальным. Обычно данные копируются в хранилище из оперативных баз
данных согласно определенному расписанию.
Типичная структура хранилища данных существенно отличается от структуры
обычной реляционной СУБД. Как правило, эта структура денормализована (это
позволяет повысить скорость выполнения запросов), поэтому может допускать
избыточность данных.
Для дальнейших примеров мы снова воспользуемся базой данных Northwind,
входящей в комплекты поставки Microsoft SQL Server и Microsoft Access. Ее
структура данных приведена на рис. 2.
Реферат: OLAP технологии
Рисунок 2. Структура базы данных Northwind
Основными составляющими структуры хранилищ данных являются таблица фактов
(fact table) и таблицы измерений (dimension tables).
2.2.1 Таблица фактов
Таблица фактов является основной таблицей хранилища данных. Как правило, она
содержит сведения об объектах или событиях, совокупность которых будет в
дальнейшем анализироваться. Обычно говорят о четырех наиболее часто
встречающихся типах фактов. К ним относятся:
факты, связанные с транзакциями (Transaction facts). Они основаны
на отдельных событиях (типичными примерами которых являются телефонный
звонок или снятие денег со счета с помощью банкомата);
факты,
связанные с «моментальными снимками» (Snapshot facts). Основаны на
состоянии объекта (например, банковского счета) в определенные моменты
времени, например на конец дня, или месяца. Типичными примерами таких
фактов являются объем продаж за день или дневная выручка;
факты, связанные с элементами документа (Line-item facts). Основаны на том
или ином документе (например, счете за товар или услуги) и содержат
подробную информацию об элементах этого документа (например, количестве,
цене, проценте скидки);
факты, связанные с событиями или
состоянием объекта (Event or state facts). Представляют возникновение
события без подробностей о нем (например, просто факт продажи или факт
отсутствия таковой без иных подробностей).
Для примера рассмотрим факты, связанные с элементами документа (в данном
случае счета, выставленного за товар).
Таблица фактов, как правило, содержит уникальный составной ключ, объединяющий
первичные ключи таблиц измерений. Чаще всего это целочисленные значения либо
значения типа «дата/время» — ведь таблица фактов может содержать сотни тысяч
или даже миллионы записей, и хранить в ней повторяющиеся текстовые описания,
как правило, невыгодно — лучше поместить их в меньшие по объему таблицы
измерений. При этом как ключевые, так и некоторые неключевые поля должны
соответствовать будущим измерениям OLAP-куба. Помимо этого таблица фактов
содержит одно или несколько числовых полей, на основании которых в дальнейшем
будут получены агрегатные данные.
Пример таблицы фактов, которая может быть построена на основе базы данных
Northwind, приведен на рис. 3.
Реферат: OLAP технологии
Реферат: OLAP технологии
Рисунок 3. Пример таблицы фактов
В данном примере измерениям будущего куба соответствуют первые шесть полей, а
агрегатным данным — последние четыре.
Отметим, что для многомерного анализа пригодны таблицы фактов, содержащие как
можно более подробные данные (то есть соответствующие членам нижних уровней
иерархии соответствующих измерений). В данном случае предпочтительнее взять
за основу факты продажи товаров отдельным заказчикам, а не суммы продаж для
разных стран — последние все равно будут вычислены OLAP-средством. Исключение
можно сделать, пожалуй, только для клиентских OLAP-средств (о них мы
поговорим чуть позже), поскольку в силу ряда ограничений они не могут
манипулировать большими объемами данных.
Отметим, что в таблице фактов нет никаких сведений о том, как группировать
записи при вычислении агрегатных данных. Например, в ней есть идентификаторы
продуктов или клиентов, но отсутствует информация о том, к какой категории
относится данный продукт или в каком городе находится данный клиент. Эти
сведения, в дальнейшем используемые для построения иерархий в измерениях