Оперативный анализ данных Идея обработки многомерных данных возникла в 1962 г., когда была опубликована статья "Язык программирования APL". Это математически определённый язык с многомерными переменными и абстрактными операторам. который активно использовался в 70-80-е гг. в бизнес-приложениях, функционально похожих на OLAP-системы. В 1970 г. появился первый продукт для многомерного анализа данных "Express". В 1992 г. появилась программа "Essbase" -- первый OLAP-продукт, который получил большой рынок. В 1993 г. вышла статья математика Кодда, в котором впервые было дано формальное определение OLAP-технологии и описано 12 правил OLAP, к которым в 1995 г. были ещё добавлены правила. OLAP -- технология оперативной аналитической обработки данных, использующая методы и средства сбора, хранения и анализа многомерных данных, методы CRF-поддержки принятия решений. Что происходит? | Что будет, если...? Ключевые показатели | Моделирование эффективности | | Что произошло? нг|Ан Почему это отчёты, ториХраал произошло? консолидация Мо нениеиз Анализ / План вание\ / иро \ / \ /Что Что я \ /произойдёт? хочу, \ /Прогнозирование чтобы \ / произошло?\ /Планирование,бюджетирование Пользователи OLAP-системы: руководители и менеджмент; бизнес-аналитики, маркетологи и аналитики по планированию развития; руководители среднего и младшего звена; сотрудники IT-служб. "Online" в названии системы не означает, что используются наиболее актуальные данные, а понимается быстрая реакция системы на формируемую пользователем последовательность уточняющих запросов. Например, пользователь может рассуждать следующим образом: чем вызван спад продаж в регионе в прошлом месяце? Это связано с определённым магазином? Как в магазине распределялись продажи по дням? Почему такие низкие продажи в начале месяца? Как продавались товары группы A? Были ли эти товары на складе? Не обязательно, чтобы в хранилище данных присутствовали данные до последней транзакции. Неверным является восприятие OLAP-системы как средства получения всей требуемой отчётности. Типы используемых данных: 1) агрегированные данные: пользователя, который выполняет анализ, редко интересуют детализированные данные, и чем выше уровень пользователя в иерархии должностей -- тем выше уровень агрегации данных, используемых им для принятия решений; 2) исторические данные: после того, как некоторый продавец продал компьютер -- это становится историческим фактом, и информация об этом. введённая в базу данных, может быть многократно считана, но не изменена; 3) прогнозируемые данные. Данные для OLAP-систем можно представить в виде куба: Город |Товар |Январь|Февраль|Март|Итого| Киев |Утюг |10 |22 |15 |47 | |Пылесос |2 |7 |7 |14 | |Чайник |17 |34 |20 |71 | +----+----+----+----+ -------+-----------+------+-------+----+-----+ / / / / /| Итого | |29 |63 |40 |132 | +----+----+----+----+ + -------+-----------+------+-------+----+-----+ / / / / /|/| Харьков|Холодильник| | | | | +----+----+----+----+ + + |Чайник | | | | | / / / / /|/|/| |Телефон | | | | | +----+----+----+----+ + + + -------+-----------+------+-------+----+-----+ Телефон | | | | |/|/|/| Итого | | | | | | +----+----+----+----+ + + + -------+-----------+------+-------+----+-----+ Пылесос | | | | |/|/|/Киев Одесса |Утюг | | | | | +----+----+----+----+ + + |Телефон | | | | | Чайник | | | | |/|/Харьков |Пылесос | | | | | +----+----+----+----+ + -------+-----------+------+-------+----+-----+ Утюг | | | | |/Одесса Итого | | | | | | +----+----+----+----+ -------+-----------+------+-------+----+-----+ Янв. Февр. Март Апр. Вся работа с куборм сводит к разным поворотам и группировкам. Можно менять количество измерений, уровень группировки, но принципы работы одинаковые. Работа с таким кубом является удобной, но при этом куб очень быстро увеличивается в размере, поэтому должна быть возможность выбирать только нужные измерения и нужный уровень группировки. Основные характеристики OLAP (правило Кодда) Группы: 1) основные 1.1) многомерность модели данных: OLAP-система должна на концептуальном уровне представлять данные в виде многомерной модели (куба); 1.2) интуитивные механизмы манипулирования данными; 1.3) доступность: OLAP-система должна представлять пользователю единую согласованную и целостную модель данных, обеспечивая доступ к данным независимо от того, где они хранятся; 1.4) пакетное извлечение данных: OLAP-система должна предоставлять возможность работать как со своей БД, так и с внешним источником; 1.5) архитектура "клиент-сервер": сервер хранит данные, выполняет операции над ними, представляет их в виде многомерной модели, а клиент обеспечивает визуализацию данных и возможность выполнять операции; 1.6) прозрачность: пользователь может не знать, откуда берутся данные, но иметь доступ ко всем операциям, которые обспечиваются сервером OLAP-системы; 1.7) многопользовательская работа; 1.8) поддержка всех моделей OLAP-анализа: категориальная (формирование параметрически настраиваемых отчётов), толковательная (формирование разрезов, группировок с обращением), умозрительная (анализ "что, если"), стереотипная (поиск целей); 2) специальные характеристики 2.1) обработка ненормализованных данных; 2.2) хранение агрегированных данных отдельно от исходных данных; 2.3) выделение отсутствующих данных (они должны отличаться от нулевого значения); 2.4) обработка отсутствующих значений; 3) характеристики построения отчётов 3.1) гибкое построение отчётов; 3.2) стабильная производительность при построении отчётов: производительность OLAP-системы не должна значительно изменяться при увеличении числа измерений и при увеличении БД; 3.3) автоматическое регулирование физического уровня; 4) управление размерностью 4.1) равноправие измерений; 4.2) неограниченное число измерений и уровней агрегации (порядка 20 измерений); 4.3) неограниченные операции между данными различных измерений. В 1995 г. на основе правил Кодда был разработан т. н. тест FASMI (Fast Analysis of Shared Multidimensional Information) -- быстрый анализ разделяемой многомерной информации. Этот тест определяет следующие требования для приложений многомерного анализа: 1) предоставление пользователю результатов анализа за приемлемое время (5с); 2) анализ -- возможность осуществления любого логического и статистического анализа, поддерживаемого приложением, и сохранение результатов анализа в доступном для пользователя виде; 3) разделяемость -- многопользовательский доступ к данным с поддержкой механизма блокировок; 4) многомерное концептуальное представление данных, включая полную поддержку иерархий и множественных иерархий; 5) возможность обращаться к любой нужной информации независимо от её объёма и места хранения. Основные способы реализации многомерной модели: 1) с т. з. анализа, каждый факт удобно рассматривать как функцию от его характеристик, например: производство изделия можно рассматривать как функцию от материалов, станков, рабочих, технологий и т. д. По типу исходной базы данных программные продукты OLAP делятся на три класса: MOLAP (Multidimensional) (данные хранятся в виде многомерных массивов: данные передаются от источника в многомерную базу данных, а затем в базе данных выполняется агрегация; преимущества: выборка быстрее, чем из реляционной БД, проще включать встроенные функции, которые отсутствуют в SQL, структура и интерфейс наилучшим образом соответствуют структуре аналитических запросов; недостатки: большое количество хранимых данных, сильная разрежённость куба, сложно добавлять новое измерение); ROLAP (Relational) (многомерная модель реализована в реляционной базе данных; достоинства: проще вносить, новые измерения, более высокий уровень защиты данных; недостаток: низкая производительность); HOLAP (Hybrid).