Применение OLAP технологий при извлечении данных

OLAP (Online Analyzing Processing) – это один из способов добычи и анализа данных. Суть заключается в том, что информация представляется в виде многомерного куба с возможностью произвольного манипулирования ею. По сухому описанию довольно трудно понять, зачем OLAP нужен и как он работает. Чтобы это лучше понять, я расскажу, как мы создавали свою OLAP систему – Cube. История очень показательна. Скорее всего, вы с аналогичными ситуациями встречались. Речь будет идти не о конкретной программе, а технологии.

Все началось после ввода в эксплуатацию информационной системы управляющей товародвижением организации – приход, отгрузка, заказ, оплата и т.п. После того, как были решены все проблемы с документооборотом, встал вопрос о получении нужной информации из системы. В программу была встроена возможность построения произвольных запросов и интеграция с Excel. Но этого не хватало. Дело в том, что для того, чтобы добыть информацию из базы данных, нужно знать его структуру и язык SQL. Пользователи, конечно, шарахались и от того и от другого как черт от ладана. Этим занимался программист. Все было хорошо, пока от системы не стали требовать слишком много отчетов. Новые отчеты появлялись чуть ли не каждый день. Каждому из сотрудников требовалось что-то свое. Спустя месяц их количество перевалило за полсотни. Пользователи перестали вообще хоть что-то понимать. А как понять, что скрывается за отчетом с названием – «Остатки товара»? Какие там сведения, как сгруппированы, что входит в этот отчет, а что нет? На самом деле дела обстояли еще хуже, т.к. даже сам программист перестал разбираться. Чтобы ответить на вопрос – «А какую информацию мы получим из этого отчета?», он должен был посмотреть текст SQL запроса. В общем, было ясно, что ситуация тупиковая. Мы пытались решать проблему при помощи стандартизации. «Давайте решим, какие отчеты Вам нужны, и мы их подготовим». На что нам обычно отвечали – «Мы бы с удовольствием. Нам и самим все это надоело. Но мы четко не знаем, что нам потребуется завтра и вообще не имеем представления, какую информацию через 5 минут потребует шеф». Пришлось искать радикальное решение проблемы.

Лично я противник того, чтобы по каждому поводу писать новую программу. Если старая может справиться с большей частью проблем, лучше ее не трогать. Новые системы порождают новые проблемы. Ими стоит заниматься только тогда, когда есть действительно серьезная потребность. Случай был именно такой. Руководство не понимало, почему, если есть база данных, есть нужная информация, ее нельзя получить быстро, без лишней головной боли и в нужном виде. Так появилась программа – Cube.

Речь дальше пойдет не о конкретной программе, а о технологии OLAP, т.к. как бы вы ее ни реализовывали, вы все равно столкнетесь с теми же проблемами, с которыми сталкивались мы при создании Cube.

Общий принцип работы любой OLAP системы прост. Давайте вначале представим себе отчет в виде куба.

ГородТоварЯнварь ФевральМартИтого
МоскваУтюг102215 47
 Пылесос275 14
 Чайник173420 71
Итого 2963 40132
РязаньХолодильник20 35
 Чайник563 14
 Телефон12227 41
Итого 1928 1360
ВладивостокУтюг775 19
 Телефон101215 37
 Пылесос230 5
Итого 1922 2061

Рис.1. Данные в трехмерном 
кубе

На рисунке изображен 3-х мерный куб, хотя количество измерений особого значения не имеет. Просто 3 измерения легче представить. Теперь, если мы сложим значения во всех ячейка по вертикали, то получим следующий отчет.

ГородЯнварь ФевральМартИтого
Москва296340 132
Рязань19281360
Владивосток19222061
Итого6711373253

Вся работа с кубом, собственно, и сводится к различным его поворотам, группировкам. Можно менять количество измерений, способы группировки, но это не важно. Принципы совершенно одинаковы. И эти самые принципы порождают определенные проблемы. Дело в том, что при таком представлении данных работать с информацией легко и удобно, но куб очень быстро увеличивается в размерах. И для того, чтобы получить хороший результат, необходимо, чтобы на экран выводился не весь куб, а только нужная его часть. Для этого необходимо: во-первых, иметь возможность выбирать только те измерения, которые нас интересуют. Если вам все равно, в какой город продавался товар, то нужно с самого начала убрать измерение «город». Во-вторых, иметь возможность выбрать/отсечь ненужные значения. Например, если из всей номенклатуры интересуют только утюги и холодильники, нужно строить куб только для них.

Есть еще один важный нюанс. Работа с OLAP системой должна быть простой и очевидной для пользователя. На это почему-то обращают мало внимания. Зачем нужен мощный инструмент, если им трудно пользоваться. Потыкаются пользователи пару раз и будут или делать все вручную, или вызывать программиста.  Мы несколько раз переделывали систему, чтобы сделать ее как можно проще. Если вы, при создании соей OLAP системы, будете учитывать все вышеперечисленные нюансы, пользователи обязательно будут довольны.

У любой технологии есть свои минусы и плюсы, и OLAP тоже не без греха. Во-первых, OLAP рассчитан в первую очередь на анализ процессов. Отгрузка, поступления, оплата – это эму дается легко. Если вы хотите анализировать объекты, то лучше использовать другой инструментарий. Во-вторых, при работе с OLAP исходят из предположения, что вы четко знаете, какую информацию вы хотите получить из базы данных. OLAP – это прежде всего инструмент добычи информации. Если вам нужно получить ответы на нечетко поставленные вопросы, например, – отобрать 10 лучших клиентов, тут будут проблемы. Вам нужно использовать другие методы анализа, т.к. нет простого определения понятия хороших клиентов, а следовательно невозможно сформировать SQL запрос к базе данных, а SQL – это фундамент на котором все это работает. В-третьих, к OLAP нужно относиться осторожно. Вещь очень мощная, но может мгновенно загрузить все ресурсы сервера. Так что отсекайте как можно больше информации, а лучше строить отдельные хранилища данных. Это оптимальный вариант. Соберите информацию из разных источников, систематизируйте, влейте в хранилище и анализируйте. Вот тут OLAP-у будет где разгуляться. Создание хранилища данных – очень серьезная работа, но чудесного способа решения всех проблем с информацией не существует. Если ваши данные разбросаны где попало и не систематизированы, вам ничто не поможет.

В целом, OLAP очень красивая, полезная и интересная технология. Если грамотно подходить к ее применению, то она принесет огромную пользу в вашей ежедневной работе. А пользователи, привыкнув к ней, вообще не понимают, как они могли до этого работать без нее. Быстро и легко получить из базы данных нужную информацию в нужном виде – пользователю немного нужно для счастья.

Арустамов Алексей
BaseGroup Labs.

Поиск по сайту

Продажа со склада ламинат quick step отзывы
Система автоматизации ОПТИМУМ завоевала мировое признание в номинации 'Решения для мобильных устройств' (Mobility Solutions Partner of the Year) ОПТИМУМ ММС (Мобильный Мониторинг и Сервисы)
АСУМТ ОПТИМУМ признана лучшим мобильным
решением в мире.
ОПТИМУМ ММС.
Автоматизация сервисного обслуживания и мониторинга

Вакансии компании

Популярные статьи

30.08.2010   История развития интернета
20.07.2010   Вредные советы по разработке сайта
28.05.2010   Варианты разработки сайта
17.05.2010   Внедрение информационных систем в лечебные медицинские учреждения
06.05.2010   Электронный документооборот на платформе 1C
24.03.2010   Назначение и виды CMS при разработке сайта.
16.03.2010   Что собой представляет поисковое продвижение сайтов.
11.03.2010   Кто такие - "правильные" веб дизайнеры?
02.03.2010   Услуги ИТ-аутсорсинга.
26.02.2010   CRM системы, как инструмент управления предприятием
18.02.2010   Тенденции ИТ аутсорсинга
18.02.2010   Инструменты дисковых раскопок.
05.02.2010   Создание и продвижение в интернете корпоративного сайта
02.02.2010   Создание корпоративных сайтов: чему уделить особое внимание?
01.02.2010   Мероприятия для стабильной работы вашего компьютера.
23.01.2010   Увеличиться ли доля OLAP-систем на рынке корпоративного ПО
21.01.2010   Что такое аська и для чего она нужна?
13.01.2010   Доверьте управление своим предприятием профессионалам
11.01.2010   Разработка сайта: этапы работы
11.01.2010   Абонентское обслуживание компьютеров
06.01.2010   Выбор фирмы для ремонта компьютера
23.11.2009   Как определить хостинг сайта по домену?
реклама на сайте:
Сегодня 19-05-2012