|
||||||||
|
|
Введение в OLAP на практическом примереВладимир Некрасов, технический директор компании Intersoft Lab
Опубликовано в PC Week RE #16/2001 Проблемы аналитики, OLAP, хранилищ данных вызывают все больший интерес
у российских ИТ-специалистов. К настоящему времени в нашей компьютерной
печати и Интернете опубликовано немало хороших, академичных по способу
изложения материалов по этой тематике, в том числе и вводного характера.
Мы же предлагаем вашему вниманию статью, в которой сознательно пытаемся
объяснить OLAP "на пальцах", на конкретном примере. Практика показывает,
что такое объяснение необходимо и некоторым ИТ-специалистам и особенно
конечным пользователям. Итак, OLAP* в первом приближении, "на пальцах", можно определить как
особый способ анализа данных и получения отчетов. Его суть состоит в
предоставлении пользователю многомерной таблицы, автоматически суммирующей
данные в различных разрезах и позволяющей интерактивно управлять
вычислениями и формой отчета. В этой статье будет рассказано о технологии
и основных операциях OLAP на примере анализа счетов-фактур предприятия,
занятого оптовой торговлей продуктами питания. В качестве инструмента будет рассмотрена OLAP-система самого простого и
недорогого класса - OLAP-клиент**. Для примера выбран наиболее простой
продукт из числа OLAP-клиентов - "Контур Стандарт" компании Intersoft Lab.
(Для наглядности далее в статье общепринятые термины OLAP будут
обозначаться жирным шрифтом и сопровождаться англоязычными аналогами.) Итак, приступим к работе с системой. Для начала потребуется описать
Источник данных (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 - http://www.iso.ru/ С него можно
также скачать демонстрационную версию системы "Контур Стандарт" с
описанным в статье примером. Замечания и вопросы техническому директору компании Intersoft Lab можно присылать по адресу: nekrasov@iso.ru. | |||||||||||||||||
За содержание страницы отвечает Гончарова М.Н. © Кафедра СПиКБ, 2002-2017 |