Сайт обмена знаниями
Главная страница Карта сайта Обратная связь
Разделы сайта
Авторизация на сайте

К вопросу о формировании аналитической информации с использованием OLAP технологии

20.12.2000, Павел Сизых
"
Виртуальные Технологии"

При создании учетной информационной системы, например, торговой, предпочтение отдают, в качестве хранилища данных, SQL Server. На первом этапе все хорошо. БД заполняется первичными документами, пишутся процедуры формирования отчетов, выполняется аналитическая обработка данных. Но через некоторое время БД разрастается до таких размеров, что производительности севера уже не достаточно. Некоторые отчеты не выполняются, ввод первичных документов замедляется из-за перегруженности сервера.

Возникает вопрос - Что делать?

Приведу несколько путей решения проблемы:

  1. Приобретение более мощного сервера. Это конечно хорошо, но через некоторое время опять придется наращивать производительность сервера.
  2. Выполнить компрессию БД. Т.е. можно выкинуть из рабочей базы документы "закрытых" отчетных периодов в отдельную БД. В этом случае первичные документы будут вноситься так же легко как и в начале работы учетной системы, но формирование отчетов будет затруднено, т.к. теперь придется обращаться к нескольким базам. Придется адаптировать модули формирования аналитической информации, также возрастет сложность сопровождения системы в целом.
  3. Использовать механизмы расчета итоговой информации, сохранять эти итоги в отдельной БД и в последствии манипулировать вычисленными итогами для формирования аналитической информации. В этом случае лучше всего использовать технологию OLAP.

Несколько слов об OLAP

Здесь я приведу часть статьи Михаила Альперовича опубликованной на сайте olap.ru

OLAP - это Online Analytical Processing, т. е. оперативный анализ данных.
OLAP предоставляет удобные быстродействующие средства доступа, просмотра и анализа деловой информации. Пользователь получает естественную, интуитивно понятную модель данных, организуя их в виде многомерных кубов (Cubes). Осями многомерной системы координат служат основные атрибуты анализируемого бизнес-процесса. Например, для продаж это могут быть товар, регион, тип покупателя. В качестве одного из измерений используется время. На пересечениях осей - измерений (Dimensions) - находятся данные, количественно характеризующие процесс - меры (Measures). Это могут быть объемы продаж в штуках или в денежном выражении, остатки на складе, издержки и т. п. Пользователь, анализирующий информацию, может "разрезать" куб по разным направлениям, получать сводные (например, по годам) или, наоборот, детальные (по неделям) сведения и осуществлять прочие манипуляции Многомерность в OLAP-приложениях может быть разделена на три уровня:

  • Многомерное представление данных - средства конечного пользователя, обеспечивающие многомерную визуализацию и манипулирование данными; слой многомерного представления абстрагирован от физической структуры данных и воспринимает данные как многомерные.
  • Многомерная обработка - средство (язык) формулирования многомерных запросов (традиционный реляционный язык SQL здесь оказывается непригодным) и процессор, умеющий обработать и выполнить такой запрос.
  • Многомерное хранение - средства физической организации данных, обеспечивающие эффективное выполнение многомерных запросов.

Теперь о различных вариантах хранения информации. Как детальные данные, так и агрегаты могут храниться либо в реляционных, либо в многомерных структурах. Многомерное хранение позволяет обращаться с данными как с многомерным массивом, благодаря чему обеспечиваются одинаково быстрые вычисления суммарных показателей и различные многомерные преобразования по любому из измерений. Некоторое время назад OLAP-продукты поддерживали либо реляционное, либо многомерное хранение. Сегодня, как правило, один и тот же продукт обеспечивает оба этих вида хранения, а также третий вид - смешанный. Применяются следующие термины:

  • MOLAP (Multidimensional OLAP) - и детальные данные, и агрегаты хранятся в многомерной БД. В этом случае получается наибольшая избыточность, так как многомерные данные полностью содержат реляционные.
  • ROLAP (Relational OLAP) - детальные данные остаются там, где они "жили" изначально - в реляционной БД; агрегаты хранятся в той же БД в специально созданных служебных таблицах.
  • HOLAP (Hybrid OLAP) - детальные данные остаются на месте (в реляционной БД), а агрегаты хранятся в многомерной БД.

Что в итоге?

Использование OLAP технологии значительно облегчает процесс формирования аналитической информации. К умело построенному многомерному кубу можно обращаться через специальные программы использующие язык запросов MDX, через встроенные средства Exсel2000 или с помощью средств Web"а. Можно создать куб в виде файла и в последствии получать отчеты не имея при этом подключения к основному хранилищу данных. Еще один не маловажный плюс, это то что конечные пользователи могут не обладать специальными знаниями в области программирования баз данных, им достаточно понимать структуру хранения данных и уметь пользоваться Excel. В результате пользователи в состоянии формировать собственные уникальные отчеты которые им необходимы при этом не нагружая сервер баз данных и не прибегая к помощи программистов.

В окончании приведу несколько полезных ссылок на статьи посвященных технологии OLAP.
www.olap.ru - Специализированный сайт по теме OLAP
www.osp.ru/win2000/sql/2000/04/409.htm - Новые возможности OLAP в SQL Server 2000
www.osp.ru/win2000/sql/2000/04/410.htm - Обновление кубов OLAP методом приращений