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

Итак, OLAP *1 в первом приближении, “на пальцах”, можно определить как особый способ анализа данных и получения отчетов. Его суть состоит в предоставлении пользователю многомерной таблицы, автоматически суммирующей данные в различных разрезах и позволяющей интерактивно управлять вычислениями и формой отчета. В этой статье будет рассказано о технологии и основных операциях OLAP на примере анализа счетов-фактур предприятия, занятого оптовой торговлей продуктами питания.

_____

*1. OLAP - On-Line Analytical Processing, оперативный анализ данных.

В качестве инструмента будет рассмотрена OLAP-система самого простого и недорогого класса - OLAP-клиент *1. Для примера выбран наиболее простой продукт из числа OLAP-клиентов - “Контур Стандарт” компании Intersoft Lab. (Для наглядности далее в статье общепринятые термины OLAP будут обозначаться жирным шрифтом и сопровождаться англоязычными аналогами.)

_____

*1. Более подробно о классификации OLAP-систем рассказано в статье "OLAP, сделано в России" в PC Week/RE, №3/2001.

Итак, приступим к работе с системой. Для начала потребуется описать Источник данных (data source) - путь к таблице и ее поля. Это задача пользователя, знающего физическую реализацию базы данных. Для конечных пользователей он переводит название таблицы и ее полей в термины предметной области. За “источником данных” стоит локальная таблица, таблица или представление (view) SQL-сервера или хранимая процедура.

Скорее всего в конкретной базе данных счета-фактуры хранятся не в одной, а в нескольких таблицах. Кроме того, часть полей или записей может не использоваться для анализа. Поэтому далее создается Выборка (result set или query), - в которой настраиваются: алгоритм объединения таблиц по ключевым полям, условия фильтрации и набор возвращаемых полей. Назовем нашу выборку “Счета-фактуры” и поместим в нее все поля источника данных “Счета-фактуры”. Таким образом, ИТ-специалист, создавая семантический слой, скрывает физическую реализацию базы данных от конечного пользователя.

Затем настраивается OLAP-отчет. Этим может заняться специалист в предметной области. Сначала поля плоской выборки данных разбиваются на две группы - факты (facts или measures) и измерения (dimensions). Факты - это цифры, а измерения - “разрезы”, в которых будут суммироваться факты. В нашем примере измерениями станут: “Регион”, “Город”, “Покупатель”, “Товар”, “Дата”, а факт будет один - поле “Сумма” счета-фактуры. Для факта нужно выбрать один или несколько алгоритмов агрегации. OLAP способен не только суммировать итоги, но и выполнять более сложные вычисления, вплоть до статистического анализа. При выборе нескольких алгоритмов агрегации будут созданы виртуальные, вычисляемые факты (calculated facts). В примере выбран один алгоритм агрегации - “Сумма”.

Особое свойство OLAP-систем - генерация измерений и данных по старшим временным периодам из даты и автоматическое вычисление итогов по этим периодам. Выберем периоды “Год”, “Квартал” и “Месяц”, при этом данных за каждый день в отчете не будет, но появятся сгенерированные измерения “Год”, “Квартал” и “Месяц”. Назовем отчет “Анализ продаж” и сохраним его. Работа по созданию интерфейса аналитического приложения закончена.

Теперь, ежедневно или ежемесячно запуская этот интерфейс, пользователь будет видеть таблицу и график, в которых счета-фактуры просуммированы по товарам, покупателям и периодам.

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

Например, перетащив (операция “move”) колонку “Товар” на первое место, мы получим отчет о сравнении - “Сравнение объемов продаж товаров за год”. Чтобы агрегировать данные за год, достаточно перетащить колонки “Квартал” и “Месяц” в верхнюю часть таблицы - “область неактивных измерений”. Измерения “Квартал” и “Месяц”, перенесенные в эту область, будут закрыты (операция “close dimension”), т. е. исключены из отчета; при этом факты просуммируются за год. Несмотря на то что измерения закрыты, по ним можно задавать конкретные годы, кварталы и месяцы для фильтрации данных (операция “filter”).

Для большей наглядности изменим тип графика, иллюстрирующего OLAP-таблицу, и его расположение на экране.

Углубление в данные (операция “drill down”) позволяет получить более детальные сведения о продажах интересующего нас товара. Щелкнув на знаке “+” напротив товара “Кофе”, мы увидим объемы его продаж в разрезе регионов. Раскрыв регион “Урал”, получим объемы продаж в разрезе городов Уральского региона, углубившись в данные по “Екатеринбургу”, сможем просмотреть данные по оптовым покупателям этого города.

Для установки фильтров можно использовать и открытые измерения. Чтобы сравнить динамику продаж конфет в Москве и Екатеринбурге, установим фильтры на измерения “Товар” и “Город”.

Закроем ненужные измерения и выберем тип графика “Линия”. На получившемся графике можно проследить динамику продаж, оценить сезонные колебания и связь падений и роста сбыта товара в разных городах.

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

Действительно, OLAP - это естественное продолжение и развитие идеи электронных таблиц. По сути, визуальный интерфейс OLAP - это тоже электронная таблица (spreadsheet), но оснащенная мощной машиной вычислений и особым стандартом представления данных и управления ими. Более того, некоторые OLAP-клиенты реализованы как add-in к MS Excel. Поэтому миллионная армия “белых воротничков”, уверенно владеющая электронными таблицами, очень быстро осваивает и OLAP-инструменты. Для них это “бархатная революция”, предоставляющая новые возможности, но не сопряженная с необходимостью переучиваться.

Если читатель, прочитав эту статью, не потерял интереса к OLAP, он может обратиться к упомянутым в начале материалам. Сборники таких материалов размещены на ряде сайтов в Интернете, включая сайт Intersoft lab - www.iso.ru. С него можно также скачать демонстрационную версию системы “Контур Стандарт” с описанным в статье примером.

Замечания и вопросы техническому директору компании Intersoft Lab можно присылать по адресу: nekrasov@iso.ru.