• OLTP - системы оперативной обработки транзакций. OLTP- и OLAP-технологии

    Сегодня среди средств, предлагаемых рынком информационных технологий, по обработке и визуализации данных для принятия управленческих решений в наибольшей мере отвечают OLTP- и OLAP-технологии. OLTP-технология ориентирована на оперативную обработку данных, а более современная OLAP-технология - на интерактивный анализ данных. Системы, разработанные на их основе, позволяют достигнуть понимания процессов, происходящих на объекте управления, путем оперативного доступа к разнообразным срезам данных (представлениям содержимого баз данных, организованным так, чтобы отразить различные аспекты деятельности предприятия). В частности, обеспечивая графическое представление данных, OLAP способна сделать результаты обработки данных легкими для восприятия.

    OLTP (Online Transaction Processing) - обработка транзакций в реальном времени. Способ организации БД, при котором система работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом клиенту требуется от системы максимально быстрое время ответа.

    В современных СУБД сериализация транзакций организуется через механизм блокировки, т.е. на время выполнения транзакции СУБД блокирует БД или ее часть, к которым обращается транзакция, блокировка сохраняется до момента фиксации транзакции. Если в процессе параллельной обработки другой транзакцией делается попытка обратиться к блокированным данным, то обработка транзакции приостанавливается и возобновляется только после завершения транзакции, заблокировавшей данные и снятия блокировки. Чем меньше блокируемый объект, тем больше оперативность БД. Транзакция, обновляющая данные на нескольких узлах сети, называется РАСПРЕДЕЛЕННОЙ. Если транзакция работает с БД, расположенной на одном узле, то она называется ЛОКАЛЬНОЙ. С точки зрения пользователя локальная и распределенная транзакция должны обрабатываться одинаково, т.е. СУБД должна организовывать процесс выполнения распределения транзакции так чтобы все входящие в нее локальные транзакции синхронно фиксировались на всех затрагиваемых ими узлах распределенной системы. При этом распределенная транзакция должна фиксироваться лишь в том случае, когда зафиксированы все составляющие ее локальной транзакции, а если прерывается хотя бы одна из локальных транзакций – должна быть прервана и вся распределенная транзакция. Для реализации этих требований на практике СУБД используется механизм двухстадийной фиксации транзакций.

    1. Сервер БД, фиксирующий распределенную транзакцию посылает команду «Приготовиться к фиксации» всем узлам сети, зарегистрированным для выполнения транзакций. Если хотя бы один из серверов не дает ответа о готовности, то сервер распределенной БД совершает откат локальной транзакции на всех узлах.

    2. Все локальные СУБД готовы к фиксации, т.е. сервер обрабатывает распределенную транзакцию, заканчивает ее фиксацию, посылая команду зафиксировать транзакцию всем локальным серверам.

    OLAP (англ. online analytical processing, аналитическая обработка в реальном времени) - технология обработки информации, включающая составление и динамическую публикацию отчётов и документов. Используется аналитиками для быстрой обработки сложных запросов к базе данных. Служит для подготовки бизнес-отчётов по продажам, маркетингу, в целях управления, т. н. data mining - добыча данных (способ анализа информации в базе данных с целью отыскания аномалий и трендов без выяснения смыслового значения записей).

    OLAP делает мгновенный снимок реляционной БД и структурирует её в пространственную модель для запросов. Заявленное время обработки запросов в OLAP составляет около 0,1 % от аналогичных запросов в реляционную БД.

    OLAP-структура, созданная из рабочих данных, называется OLAP-куб. Куб создаётся из соединения таблиц с применением схемы звезды или схемы снежинки. В центре схемы звезды находится таблица фактов, которая содержит ключевые факты, по которым делаются запросы. Множественные таблицы с измерениями присоединены к таблице фактов. Эти таблицы показывают, как могут анализироваться агрегированные реляционные данные. Количество возможных агрегирований определяется количеством способов, которыми первоначальные данные могут быть иерархически отображены.

    Например, все клиенты могут быть сгруппированы по городам или по регионам страны (Запад, Восток, Север и т. д.), таким образом, 50 городов, 8 регионов и 2 страны составят 3 уровня иерархии с 60 членами. Также клиенты могут быть объединены по отношению к продукции; если существуют 250 продуктов по 2 категориям, 3 группы продукции и 3 производственных подразделения, то количество агрегатов составит 16560. При добавлении измерений в схему, количество возможных вариантов быстро достигает десятков миллионов и более.

    OLAP-куб содержит в себе базовые данные и информацию об измерениях (агрегатах). Куб потенциально содержит всю информацию, которая может потребоваться для ответов на любые запросы. Из-за громадного количества агрегатов, зачастую полный расчёт происходит только для некоторых измерений, для остальных же производится «по требованию».

    Сложность в применении OLAP состоит в создании запросов, выборе базовых данных и разработке схемы, в результате чего большинство современных продуктов OLAP поставляются вместе с огромным количеством предварительно настроенных запросов. Другая проблема - в базовых данных. Они должны быть полными и непротиворечивыми

    Первым продуктом, выполняющим OLAP-запросы, был Express (компания IRI). Однако, сам термин OLAP был предложен Эдгаром Коддом, «отцом реляционных БД». А работа Кодда финансировалась Arbor, компанией, выпустившей свой собственный OLAP-продукт - Essbase (позже купленный Hyperion, которая в 2007 г. была поглощена компанией Oracle) - годом ранее.

    Другие хорошо известные OLAP-продукты включают Microsoft Analysis Services (ранее называвшиеся OLAP Services, часть SQL Server), Oracle OLAP Option, DB2 OLAP Server от IBM (фактически, EssBase с дополнениями от IBM), SAP BW, SAS OLAP Server, продукты Brio, BusinessObjects, Cognos, MicroStrategy и других производителей.

    Наибольшее применение OLAP находит в продуктах для бизнес-планирования и хранилищах данных.

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

    • многомерное представление данных;
    • поддержка сложных расчетов;
    • правильный учет фактора времени.

    Преимущества OLAP:

    • повышение производительности производственного персонала, разработчиков прикладных программ. Своевременный доступ к стратегической информации.
    • предоставление пользователям достаточных возможностей для внесения собственных изменений в схему.
    • приложения OLAP опираются на хранилища данных и системы OLTP, получая от них актуальные данные, что дает сохранение контроля целостности корпоративных данных.
    • уменьшение нагрузки на системы OLTP и хранилища данных.
    OLAP OLTP
    Хранилище данных должно включать как внутренние корпоративные данные, так и внешние данные основным источником информации, поступающей в оперативную БД, является деятельность корпорации, а для проведения анализа данных требуется привлечение внешних источников информации (например, статистических отчетов)
    Объем аналитических БД как минимум на порядок больше объема оперативных. для проведения достоверных анализа и прогнозирования в хранилище данных нужно иметь информацию о деятельности корпорации и состоянии рынка на протяжении нескольких лет Для оперативной обработки требуются данные за несколько последних месяцев
    Хранилище данных должно содержать единообразно представленную и согласованную информацию, максимально соответствующую содержанию оперативных БД. Необходима компонента для извлечения и "очистки" информации из разных источников. Во многих крупных корпорациях одновременно существуют несколько оперативных ИС с собственными БД (по историческим причинам). Оперативные БД могут содержать семантически эквивалентную информацию, представленную в разных форматах, с разным указанием времени ее поступления, иногда даже противоречивую
    Набор запросов к аналитической базе данных предсказать невозможно. хранилища данных существуют, чтобы отвечать на нерегламентированные запросы аналитиков. Можно рассчитывать только на то, что запросы будут поступать не слишком часто и затрагивать большие объемы информации. Размеры аналитической БД стимулируют использование запросов с агрегатами (сумма, минимальное, максимальное, среднее значение и т.д.) Системы обработки данных создаются в расчете на решение конкретных задач. Информация из БД выбирается часто и небольшими порциями. Обычно набор запросов к оперативной БД известен уже при проектировании
    При малой изменчивости аналитических БД (только при загрузке данных) оказываются разумными упорядоченность массивов, более быстрые методы индексации при массовой выборке, хранение заранее агрегированных данных Системы обработки данных по своей природе являются сильно изменчивыми, что учитывается в используемых СУБД (нормализованная структура БД, строки хранятся неупорядоченно, B-деревья для индексации, транзакционность)
    Информация аналитических БД настолько критична для корпорации, что требуются большая грануляция защиты (индивидуальные права доступа к определенным строкам и/или столбцам таблицы) Для систем обработки данных обычно хватает защиты информации на уровне таблиц

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

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

    Как выглядит традиционный процесс принятия решений в российской компании, использующей информационную систему, построенную на OLTP-технологии?

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

    • используется ничтожное количество данных;
    • процесс занимает длительное время, поскольку составление запросов и интерпретация электронного отчета – операции довольно канительные, тогда как руководителю, может быть, необходимо принять решение незамедлительно;
    • требуется повторение цикла в случае необходимости уточнения данных или рассмотрения данных в другом разрезе, а также при возникновении дополнительных вопросов. Причем этот медленный цикл приходится повторять и, как правило, неоднократно, при этом времени на анализ данных тратится ещё больше;
    • негативным образом сказывается различие в профессиональной подготовке и областях деятельности специалиста по информационным технологиям и руководителя. Зачастую они мыслят разными категориями и, как следствие, не понимают друг друга;
    • неблагоприятное действие оказывает такой фактор, как сложность электронных отчетов для восприятия. У руководителя нет времени выбирать интересующие цифры из отчёта, тем более что их может оказаться слишком много. Понятно, что работа по подготовке данных чаще всего ложится на специалистов информационных отделов. В результате грамотный специалист отвлекается на рутинную и малоэффективную работу по составлению таблиц, диаграмм и т. д., что, естественно, не способствует повышению его квалификации.

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

    Мировая индустрия давно знакома с этой проблемой, и вот уже почти 30 лет существуют OLAP-технологии, которые и предназначены именно для того, чтобы бизнес-аналитики имели возможность оперировать с накопленными данными, непосредственно участвовать в их анализе. Подобные аналитические системы противоположны OLTP-системам в том плане, что они устраняют информационную избыточность ("сворачивают" информацию). Вместе с тем очевидно, что именно избыточность первичной информации определяет эффективность анализа. СППР, объединяя эти технологии, дают возможность решать целый ряд задач:

    • Аналитические задачи: вычисление заданных показателей и статистических характеристик бизнес-процессов на основе ретроспективной информации, находящейся в хранилищах данных.
    • Визуализацию данных: представление всей имеющейся информации в удобном для пользователя графическом и табличном виде.
    • Получение новых знаний: определение взаимосвязи и взаимозависимости бизнес-процессов на основе существующей информации (проверка статистических гипотез, кластеризация, нахождение ассоциаций и временных шаблонов).
    • Имитационные задачи: математическое моделирование поведения сложных систем в течение произвольного периода времени. Иными словами, это задачи, связанные с необходимостью ответить на вопрос: "Что будет, если...?"
    • Синтез управления: определение допустимых управляющих воздействий, обеспечивающих достижение заданной цели.
    • Оптимизационные задачи: интеграция имитационных, управленческих, оптимизационных и статистических методов моделирования и прогнозирования.

    Менеджеры предприятия, использующие инструментальные средства OLAP-технологии, даже без специальной подготовки могут самостоятельно и оперативно получать всю необходимую для исследования закономерностей бизнеса информацию, причем в самых различных комбинациях и срезах бизнес-анализа. Бизнес-аналитик имеет возможность видеть перед собой список измерений и показателей бизнес-системы. При столь простом интерфейсе аналитик может строить любые отчеты, перестраивать измерения (скажем, делать кросс-таблицы – накладывать одно измерение на другое). Кроме этого, он получает возможность создавать свои функции на базе существующих показателей, проводить анализ "что, если" – получать результат, задавая зависимости каких-либо показателей бизнес-функций или бизнес-функцию от показателей. При этом максимальный отклик любого отчета не превышает 5 секунд.

    OLTP и OLAP системы

    В предыдущем подразделе отмечалось, что для адекватного представления предметной области, простоты разработки и поддержания базы данных отношения должны быть приведены к третьей нормальной форме (существуют формы нормализации и более высоких порядков, но на практике они используются достаточно редко), то есть быть сильно нормализованными. Однако слабо нормализованные отношения также имеют свои достоинства, основным из которых является то, что если к базе данных обращаться в основном только с запросами, а модификации и добавление данных проводить очень редко, то их выборка производится значительно быстрее. Это объясняется тем, что в слабо нормализованных отношениях уже как бы произведено их соединение и на это не тратится процессорное время. Выделяют два класса систем, для которых в большей степени подходят сильно и слабо нормализованные отношения.

    Сильно нормализованные модели данных хорошо подходят для OLTP -приложений – On - Line Transaction Processing (OLTP ) – приложений оперативной обработки транзакций. Типичными примерами OLTP -приложений являются системы складского учета, заказов билетов, операционные банковские системы и другие. Основная функция подобных систем заключается в выполнении большого количества коротких транзакций. Сами транзакции являются достаточно простыми, но проблемы состоят в том, что таких транзакций очень много, выполняются они одновременно и при возникновении ошибок транзакция должна откатиться и вернуть систему в состояние, в котором та была до начала транзакции. Практически все запросы к базе данных в OLTP -приложениях состоят из команд вставки, обновления и удаления. Запросы на выборку, в основном, предназначены для предоставления пользователям выборки данных из различного рода справочников. Таким образом, большая часть запросов известна заранее ещё на этапе проектирования системы. Критическим для OLTP -приложений является скорость и надежность выполнения коротких операций обновления данных. Чем выше уровень нормализации данных в OLTP -приложениях, тем оно быстрее и надежней. Отступления от этого правила могут происходить тогда, когда уже на этапе разработки известны некоторые часто возникающие запросы, требующие соединения отношений и от скорости выполнения которых существенно зависит работа приложений.

    Другим типом приложений являются OLAP -приложения – On - Line Analitical Processing (OLAP ) – приложения оперативной аналитической обработки данных. Это обобщенный термин, характеризующий принципы построения систем поддержки принятия решений – Decision Support System (DSS ), хранилищ данных – Data Warehouse , систем интеллектуального анализа данных – Data Mining . Такие системы предназначены для нахождения зависимостей между данными, для проведения динамического анализа по принципу «что если…» и тому подобных задач. OLAP -приложения оперируют с большими массивами данных, накопленными на предприятии или взятыми из других источников. Такие системы характеризуются следующими признаками:

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

    Базы данных OLAP -приложений обычно представлены в виде одного или нескольких гиперкубов, измерения которого представляют собой справочные данные, а в ячейках самого гиперкуба хранятся значения этих данных. Физически гиперкуб может быть построен на основе специальной многомерной модели данных – Multidimensional OLAP (MOLAP ) или представлен средствами реляционной модели данных – Relational OLAP (ROLAP ).

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

    Характеристики и круг задач, эффективно решаемых каждой технологией, поясняется следующей сравнительной таблицей:

    Характеристика

    OLTP

    OLAP

    Назначение системы

    Регистрация, оперативный поиск и обработка транзакций, регламентированный анализ

    Работа с историческими данными, аналитическая обработка, прогнозирование, моделирование

    Хранимые данные

    Оперативные, детализированные

    Охватывающие большой период времени, агрегированные

    Тип данных

    Структурированные

    Разнотипные

    "Возраст" данных

    Текущие (несколько месяцев)

    Исторические (за годы) и прогнозируемые

    Частота обновления данных

    Высокая, небольшими "порциями"

    Малая, большими "порциями"

    Уровень агрегации данных

    Детализированные данные

    В основном - агрегированные данные

    Преобладающие операции

    Ввод данных, поиск, обновление

    Анализ данных

    Способ использования данных

    Предсказуемый

    Непредсказуемый

    На уровне транзакции

    На уровне всей базы данных

    Вид деятельности

    Оперативная, тактическая

    Аналитическая, стратегическая

    Приоритеты

    Гибкость
    Автономность пользователя

    Большое количество работников исполнительного звена

    Относительно малое количество работников руководящего звена

    Сравнение OLTP и OLAP

    Характеристика

    OLTP

    OLAP

    Характер запросов

    Много простых транзакций

    Сложные транзакции

    Хранимые данные

    Оперативные, детализи-рованные

    Охватывающие большой период времени, агреги-рованные

    Вид деятельности

    Оперативная, тактическая

    Аналитическая, страте-гическая

    Тип данных

    Структурированные

    Разнотипные

    Системная характеристика

    Учетная система (OLTP)

    OLAP

    Взаимодействие с пользователем

    На уровне транзакции

    На уровне всей базы данных

    Данные, используемые при обращении пользователя к системе

    Отдельные записи

    Группы записей

    Время отклика

    Секунды

    От нескольких секунд до нескольких минут

    Использование аппаратных ресурсов

    Стабильное

    Динамическое

    Характер данных

    Главным образом первичные (самый низкий уровень детализации)

    В основном производные (сводные значения)

    Характер доступа к базе данных

    Предопределенные или статические пути доступа и отношения данных

    Неопределенные или динамические пути доступа и отношения данных

    Изменчивость данных

    Высокая (данные обновляются с каждой транзакцией)

    Низкая (во время запроса данные обновляются редко)

    Приоритеты

    Высокая производительность Высокая доступность

    Гибкость
    Автономность пользователя

    Недостатки
    OLTP-системы оптимизированы для небольших дискретных транзакций. А вот запросы на некую комплексную информацию (к примеру поквартальная динамика объемов продаж по определённой модели товара в определённом филиале), характерные для аналитических приложений (OLAP), породят сложные соединения таблиц и просмотр таблиц целиком. На один такой запрос уйдет масса времени и компьютерных ресурсов, что затормозит обработку текущих транзакций.

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

    Различают последовательные (обычные), параллельные и распределённые транзакции. Распределённые транзакции подразумевают использование больше чем одной транзакционной системы и требуют намного более сложной логики (например, two-phase commit - двухфазный протокол фиксации транзакции). Также, в некоторых системах реализованы автономные транзакции, или под-транзакции, которые являются автономной частью родительской транзакции.

    Пример: Необходимо перевести с банковского счёта номер 5 на счёт номер 7 сумму в 10 денежных единиц. Этого можно достичь, к примеру, приведённой последовательностью действий:
    Начать транзакцию
    прочесть баланс на счету номер 5
    уменьшить баланс на 10 денежных единиц
    сохранить новый баланс счёта номер 5
    прочесть баланс на счету номер 7
    увеличить баланс на 10 денежных единиц
    сохранить новый баланс счёта номер 7

    Окончить транзакцию
    Эти действия представляют собой логическую единицу работы «перевод суммы между счетами», и таким образом, являются транзакцией. Если прервать данную транзакцию, к примеру, в середине, и не аннулировать все изменения, легко оставить владельца счёта номер 5 без 10 единиц, тогда как владелец счета номер 7 их не получит.

    Режим оперативной обработки транзакций OLTP

    Режим оперативной обработки транзакций OLTP (On-Line Transaction Processing) применяется в информационных системах организационного управления для отражения актуального состояния предметной области в любой момент времени, а пакетная обработка занимает весьма ограниченную нишу.
    OLTP

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

    В OLTP системах над целевыми БД исполняются целевые транзакции (например, занесение в таблицу записи с параметрами выписанного счета, оприходованной фактуры или любого другого факта), которые изменяют состояние БД и приводят их в соответствие текущему состоянию того фрагмента реального мира, который моделирует БД. Таким образом, основным назначением целевых БД является обработка транзакций.

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

    OLTP -приложениями охватывается широкий спектр задач во многих отраслях - автоматизация бухгалтерского и складского учета и учета документов и т. п.

    Основная функция подобных систем заключается в одновременном выполнении большого количества коротких транзакций от большого числа пользователей. Сами транзакции выглядят относительно просто, например, "снять сумму денег со счета А, добавить эту сумму на счет В".

    Информационные системы класса OLTP характеризуются следующими особенностями.
    Характеристики ИС - информационных систем - класса OLTP
    -относительной алгоритмической простотой,
    -повышенной динамикой в части номенклатуры и структуры обрабатываемых документов, что связано с непосредственной близостью этих систем к предметной области,
    -массовостью и территориальной распределенностью мест сбора исходных данных,
    -высокими требованиями к достоверности и актуальности вводимых данных,
    -массовостью, достаточно частой сменяемостью и относительно невысокой компьютерной -квалификацией персонала (пользователей).
    -поддержкой большого числа пользователей;
    -малым временем отклика на запрос;
    -относительно короткими запросами;
    -участие в запросах небольшого числа таблиц.

    Исторически такие системы возникли в первую очередь, поскольку реализовывали потребности в учете, скорости обслуживания, сборе данных и пр. Однако вскоре пришло понимание, что сбор данных - не самоцель и накопленные данные могут быть полезны: из данных можно извлечь информацию.
    Стратегия разработки систем
    Длительное время в качестве стратегии разработки подобных систем использовалось следующее:
    построение отдельных АРМ, предназначенных для обработки групп функционально связанных документов, и тиражирование готовых АРМ на места,
    построение полнофункциональных параметризуемых систем с тиражированием и настройкой по местам. Однако получаемые таким способом системы имели невысокие адаптационные возможности по преодолению динамики предметных областей. Они предъявляли высокие требования к эксплуатационному персоналу и требовали больших накладных расходов на сопровождение.
    Относительно недавно начала применяться новая, третья стратегия разработки информационных систем класса OLTP. Ее суть состоит в следующем: тиражируются не готовые системы, а некоторые заготовки и технологический инструмент, позволяющие непосредственно на месте быстро построить/достроить систему с необходимой функциональностью и далее с помощью этого же инструмента ее модифицировать в соответствии с динамикой предметной области.

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

    OLTP-технологии

    В практике общения с представителями информационных служб предприятий нередко приходится сталкиваться с серьезным недопониманием различий в возможностях, назначении и роли технологий, предназначенных для сбора информации, - OLTP-систем (On-Line Transaction Processing) и технологий анализа информации. Между тем они существенно различны по функциональности, и каждая из них отвечает за свою область в информационной системе.
    Задачи OLTP-системы – это быстрый сбор и наиболее оптимальное размещение информации в базе данных, а также обеспечение ее полноты, актуальности и согласованности. Однако такие системы не предназначены для максимально эффективного, быстрого и многоаспектного анализа.
    Разумеется, по собранным данным можно строить отчеты, но это требует от бизнес-аналитика или постоянного взаимодействия с IT-специалистом, или специальной подготовки в области программирования и вычислительной техники.
    Как выглядит традиционный процесс принятия решений в российской компании, использующей информационную систему, построенную на OLTP-технологии?
    Менеджер дает задание специалисту информационного отдела в соответствии со своим пониманием вопроса. Специалист информационного отдела, по-своему осознав задачу, строит запрос оперативной системе, получает электронный отчет и доводит его до сведения руководителя. Такая схема принятия критически важных решений обладает следующими существенными недостатками:
    -используется ничтожное количество данных;
    -процесс занимает длительное время, поскольку составление запросов и интерпретация электронного отчета – операции довольно канительные, тогда как руководителю, может быть, необходимо принять решение незамедлительно;
    -требуется повторение цикла в случае необходимости уточнения данных или рассмотрения данных в другом разрезе, а также при возникновении дополнительных вопросов. Причем этот медленный цикл приходится повторять и, как правило, неоднократно, при этом времени на анализ данных тратится ещё больше;
    негативным образом сказывается различие в профессиональной подготовке и областях деятельности специалиста по информационным технологиям и руководителя. Зачастую они мыслят разными категориями и, как следствие, не понимать друг друга;
    неблагоприятное действие оказывает такой фактор, как сложность электронных отчетов для восприятия. У руководителя нет времени выбирать интересующие цифры из отчёта, тем более что их может оказаться слишком много. Понятно, что работа по подготовке данных чаще всего ложится на специалистов информационных отделов. В результате грамотный специалист отвлекается на рутинную и малоэффективную работу по составлению таблиц, диаграмм и т. д., что, естественно, не способствует повышению его квалификации.
    Выход из этой ситуации один, и сформулирован он Биллом Гейтсом в виде выражения: "Информация на кончиках пальцев". Исходная информация должна быть доступна ее непосредственному потребителю – аналитику. Именно непосредственно доступна (!). А задачей сотрудников информационного отдела является создание системы сбора, накопления, хранения, защиты информации и обеспечения ее доступности аналитикам.

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

    OLTP - системы , являясь высокоэффективным средством реализации оперативной обработки, оказались мало пригодны для задач аналитической обработки. Это вызвано следующим:
    1. средствами традиционных OLTP -систем можно построить аналитический отчет и даже прогноз любой сложности, но заранее регламентированный. Любой шаг в сторону, любое нерегламентированное требование конечного пользователя, как правило, требует знаний о структуре данных и достаточно высокой квалификации программиста;
    2. многие необходимые для оперативных систем функциональные возможности являются избыточными для аналитических задач и в то же время могут не отражать предметной области. Для решения большинства аналитических задач требуется использование внешних специализированных инструментальных сре дств дл я анализа, прогнозирования и моделирования. Жесткая же структура баз не позволяет достичь приемлемой производительности в случае сложных выборок и сортировок и, следовательно, требует больших временных затрат для организации шлюзов.
    3. в отличие от транзакционных, в аналитических системах не требуются и, соответственно, не предусматриваются развитые средства обеспечения целостности данных, их резервирования и восстановления. Это позволяет не только упростить сами средства реализации, но и снизить внутренние накладные расходы и, следовательно, повысить производительность при выборке данных.

    Круг задач, эффективно решаемых каждой из систем, определим на основе сравнительных характеристик OLTP - и OLAP –систем

    Данные в OLTP-системах организованы главным образом для поддержки таких транзакций, как:

    регистрация заказа, введенного с кассового терминала или через Web-узел;

    размещение заказа на комплектующие изделия, когда их количество на складе становится меньше определенного числа;

    отслеживание компонентов во время сборки конечного продукта на производстве;

    регистрация сведений о работниках;

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

    Отдельные транзакции, обращаясь к относительно небольшому объему данных, завершаются быстро. Системы OLTP созданы и оптимизированы для одновременной обработки сотен и тысяч транзакций.

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

    Современные задачи Хранилищ данных
    Разделение данных с конкретными целями

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

    И хотя Хранилища дают организации отличную платформу отчетности и анализа, в реальном времени они, как правило, не работают, если судить по возрасту доступных данных. Из-за технологических ограничений Хранилища обычно пополняются по ночам с помощью пакетной передачи данных. Для этого используется пакетная программа, которая выполняет вертикальное чтение всей базы в поисках изменений. Данные, поступающие в Хранилище с помощью такого ETL-подхода, - всегда устаревшие (как правило, на сутки).

    По мере роста объема обрабатываемых данных, а также количества и разнообразия систем обработки данных, увеличивается время и сложность процесса наполнения Хранилища. Вместе с тем, глобализация, растущая продолжительность эксплуатации систем, ограниченность договоров о сервисном обслуживании приводят к необходимости сокращения пакетных операций. Сочетание большего количества данных и конкурентного давления создает серьезные проблемы для IT-организации.

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

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

    Эти тенденции реализуются следующим образом:
    Интеграция данных в реальном времени для Хранилища данных. Получение и передача данных в реальном времени из операционных систем в Хранилище, что делает данные доступными для анализа.
    Активное Хранилище данных. ХД в реальном времени, дополняемое инструментами Business Intelligence для обработки и выполнения бизнес-решений. Решения автоматически передаются в OLTP-системы. В результате формируется замкнутый цикл обработки.

    В стремлении добиться функционирования Хранилища в режиме реального времени, успех часто зависит от грамотного выбора инструмента интеграции и подхода к получению данных, что обеспечивает возможность повышения качества и своевременности информации.
    Интеграция данных для Хранилища в реальном времени

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

    ETL является идеальным решением задачи сходной загрузки больших объемов данных в Хранилище, а также дает широкие возможности преобразования данных. Однако ETL-операции обычно выполняются в момент приостановки обновления исходной системы, чтобы гарантировать, что в момент получения данных источник не изменяется. Это, в свою очередь, приводит к несоответствиям между OLTP-системами и Хранилищем. В итоге данные и приложения не всегда доступны бизнес-пользователям.

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

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

    Другим подходом к интеграции данных в реальном времени является технология управления транзакционными данными (transactional data management - TDM), предназначенная для получения, передачи, преобразования, поставки и верификации транзакционных данных в гетерогенной среде в реальном времен.TDM функционирует на выполненных транзакциях: выбирает их из OLTP-системы, применяет основные методы преобразования и передает их в Хранилище. По своей архитектуре технология асинхронна, однако обеспечивает синхронное поведение, работает с задержкой в долю секунды, поддерживая целостность данных в транзакции.

    EAI и TDM предназначены для передачи изменений и обновлений данных, а не целостных выборок данных. Ни то, ни другое не требует приостановки исходных систем, так как эти технологии поддерживают целостность операций языка манипулирования данными (data manipulation language - DML). За счет этого существенно сокращается объем необходимых перемещений данных. И если ETL-средства в основном предназначены для исходной загрузки и преобразования данных, то EAI и TDM больше подходят для постоянного сбора данных.

    Все большее количество компаний используют TDM-технологию с целью сбора данных для Хранилища. TDM-средства захватывают, направляют, доставляют и проверяют операции с данными в среде гетерогенных баз данных с задержкой в доли секунды.

    Передача измененных данных на уровне транзакции позволяет системе работать в активном режиме и обрабатывать операции одновременно с наполнением Хранилища. В этом случае полностью устраняется зависимость интервала пакетной обработки и сохраняется целостность каждой из транзакций.

    Интеграция Хранилища и OLTP-системы подразумевает получение и передачу транзакционных данных в Хранилище одновременно с передачей данных о принятых решениях на основе данных ХД в одну или нескольких оперативных систем. Такой замкнутый цикл работы также обеспечивается средствами TDM.
    Основные характеристики и возможности средств интеграции

    Инструменты интеграции TDM обладают рядом важных функциональных особенностей.

    Сбор данных

    Модули сбора данных устанавливаются на исходной базе и постоянно отслеживают все вновь поступающие транзакции. Это достигается за счет чтений больших объемов данных из журналов операций в тот момент, когда транзакции еще выполняются и, как правило, находятся в памяти. Данные обрабатываются на уровне транзакции, и только выполненные операции отсылаются в Хранилище.

    Доставка данных

    Все новые данные передаются в промежуточную область хранения ХД, при этом временная задержка составляет доли секунды. А значит, наиболее актуальные данные всегда доступны для самых передовых методов Business Intelligence, а также для отчетности и принятия решений. Поскольку в течение заданного промежутка времени передаются меньшие выборки данных (чем в случае пакетной передачи), то дополнительная нагрузка на OLTP-систему оказывается очень незначительной.

    Гетерогенность

    Хранилище данных не обязательно работает в рамках той же операционной системы или базы данных, что и OLTP-система. Кроме того, часто возникают ситуации, когда нужно собрать данные из нескольких операционных систем и баз. Следовательно, инструменты интеграции должны поддерживать широкий диапазон СУБД, а также платформ, что упрощает требования даже для наиболее гетерогенных IT-инфраструктур. Так организация может делать выбор платформы исходя из корпоративных стандартов и предпочтений, а также развиваться с минимальным влиянием на свое готовое ХД-решение.

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

    Выборочность данных

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

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

    Преобразование данных

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

    Гибкость

    Возможность быстро и легко включать новые источники БД, либо целевые системы, включая процессы захвата и доставки данных, играет важную роль.

    Динамическое определение таблиц

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

    Обратная связь

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

    В задаче интеграции DW и OLTP возможно комбинирование TDM и ETL-процессов. В том числе для обработки данных в реальном времени, постоянном захвате и извлечении данных на транзакционном уровне. Средства TDM могут передавать данные в реальном времени в промежуточный уровень хранения целевой БД, где ETL-сервер будет перехватывать данные и, применив к ним преобразования, загружать в Хранилище. У такого подхода есть недостатки (в частности, дополнительная задержка и необходимость поддерживать ETL-сервер), однако они обоснованы, в случае если требования к преобразованию данных слишком сложны.

    Преимущества в том, что новые транзакционные данные немедленно захватываются с очень малым эффектом по производительности на OLTP-систему (по сравнению с обычным ETL-процессом).
    и т.д.................


    Характеристики OLTP системы Большой объем информации Часто различные БД для разных подразделений Нормализованная схема, отсутствие дублирования информации Интенсивное изменение данных Транзакционный режим работы Транзакции затрагивают небольшой объем данных Обработка текущих данных – мгновенный снимок Много клиентов Малое время отклика – несколько секунд Характеристики OLAP системы Большой объем информации Синхронизированная информация из различных БД с использованием общих классификаторов Ненормализованная схема БД с дубликатами Данные меняются редко, Изменение происходит через пакетную загрузку Выполняются сложные нерегламентированные запросы над большим объемом данных с широким применением группировок и агрегатных функций. Анализ временных зависимостей Небольшое количество работающих пользователей – аналитики и менеджеры Большее время отклика (но все равно приемлемое) – несколько минут






    Правила Кодда для реляционных БД 1. Правило информации. 2. Правило гарантированного доступа. 3. Правило поддержки недействительных значений. 4. Правило динамического каталога, основанного на реляционной модели. 5.Правило исчерпывающего подъязыка данных. 6. Правило обновления представлений. 7. Правило добавления, обновления и удаления. 8. Правило независимости физических данных. 9. Правило независимости логических данных. 10. Правило независимости условий целостности. 11. Правило независимости распространения. 12. Правило единственности.


    Правила Кодда для OLAP 1. Концептуальное многомерное представление. 2. Прозрачность. 3. Доступность. 4. Постоянная производительность при разработке отчетов. 5. Клиент-серверная архитектура. 6. Общая многомерность. 7. Динамическое управление разреженными матрицами. 8. Многопользовательская поддержка. 9. Неограниченные перекрестные операции. 10. Интуитивная манипуляция данными. 11. Гибкие возможности получения отчетов. 12. Неограниченная размерность и число уровней агрегации.


    Реализация OLAP Типы OLAP - серверов MOLAP (Multidimensional OLAP) - и детальные данные, и агрегаты хранятся в многомерной БД. ROLAP (Relational OLAP) - детальные данные храняться в реляционной БД; агрегаты хранятся в той же БД в специально созданных служебных таблицах. HOLAP (Hybrid OLAP) - детальные данные храняться в реляционной БД, а агрегаты хранятся в многомерной БД.








    Особенности ROLAP – схемы типа звезда 1.Одна таблица фактов, которая сильно денормализована 2.Несколько таблиц измерений, которые также денормализованы 3.Первичный ключ таблицы фактов является составным и имеет по одному столбцу на каждое измерение 4.Агрегированные данные храняться совместно с исходными Недостатки Если агрегаты храняться совместно с исходными данными, то в измерениях необходимо использовать дополнительный параметр – уровень иерархии











    Структура хранилища в ORACLE СУБД SQL клиентMOLAP клиент Java API JDBC OCI ODBC OLE DB CWM или CWM2 Хранилище OLAP (BLOB в реляционной таблице) Схема звезда Регистрация метаданных Многомерное ядро (процесс в ядре ORACLE) OLAP DML SQL интерфейс к OLAP (DBMS_AW, OLAP_TABLE, …) Многомерные метаданные

    Сравнение нормализованных и ненормализованных моделей

    Анализ критериев для нормализованных и ненормализованных моделей данных

    Соберем воедино результаты анализа критериев, по которым мы хотели оценить влияние логического моделирования данных на качество физических моделей данных и производительность базы данных:

    Как видно из таблицы, более сильно нормализованные отношения оказываются лучше спроектированы (три плюса, один минус). Они больше соответствуют предметной области, легче в разработке, для них быстрее выполняются операции модификации базы данных. Правда, это достигается ценой некоторого замедления выполнения операций выборки данных.

    У слабо нормализованных отношений единственное преимущество - если к базе данных обращаться только с запросами на выборку данных, то для слабо нормализованных отношений такие запросы выполняются быстрее. Это связано с тем, что в таких отношениях уже как бы произведено соединение отношений и на это не тратится время при выборке данных.

    Таким образом, выбор степени нормализации отношений зависит от характера запросов, с которыми чаще всего обращаются к базе данных.

    Можно выделить некоторые классы систем, для которых больше подходят сильно или слабо нормализованные модели данных.

    Сильно нормализованные модели данных хорошо подходят для так называемых OLTP-приложений (On-Line Transaction Processing (OLTP )- оперативная обработка транзакций ). Типичными примерами OLTP-приложений являются системы складского учета, системы заказов билетов, банковские системы, выполняющие операции по переводу денег, и т.п. Основная функция подобных систем заключается в выполнении большого количества коротких транзакций. Сами транзакции выглядят относительно просто, например, "снять сумму денег со счета А, добавить эту сумму на счет В". Проблема заключается в том, что, во-первых, транзакций очень много, во-вторых, выполняются они одновременно (к системе может быть подключено несколько тысяч одновременно работающих пользователей), в-третьих, при возникновении ошибки, транзакция должна целиком откатиться и вернуть систему к состоянию, которое было до начала транзакции (не должно быть ситуации, когда деньги сняты со счета А, но не поступили на счет В). Практически все запросы к базе данных в OLTP-приложениях состоят из команд вставки, обновления, удаления. Запросы на выборку в основном предназначены для предоставления пользователям возможности выбора из различных справочников. Большая часть запросов, таким образом, известна заранее еще на этапе проектирования системы. Таким образом, критическим для OLTP-приложений является скорость и надежность выполнения коротких операций обновления данных. Чем выше уровень нормализации данных в OLTP-приложении, тем оно, как правило, быстрее и надежнее. Отступления от этого правила могут происходить тогда, когда уже на этапе разработки известны некоторые часто возникающие запросы, требующие соединения отношений и от скорости выполнения которых существенно зависит работа приложений. В этом случае можно пожертвовать нормализацией для ускорения выполнения подобных запросов.



    Другим типом приложений являются так называемые OLAP-приложения (On-Line Analitical Processing (OLAP ) - оперативная аналитическая обработка данных ). Это обобщенный термин, характеризующий принципы построения систем поддержки принятия решений (Decision Support System - DSS ), хранилищ данных (Data Warehouse ), систем интеллектуального анализа данных (Data Mining ). Такие системы предназначены для нахождения зависимостей между данными (например, можно попытаться определить, как связан объем продаж товаров с характеристиками потенциальных покупателей), для проведения анализа "что если…". OLAP-приложения оперируют с большими массивами данных, уже накопленными в OLTP-приложениях, взятыми их электронных таблиц или из других источников данных. Такие системы характеризуются следующими признаками:

    • Добавление в систему новых данных происходит относительно редко крупными блоками (например, раз в квартал загружаются данные по итогам квартальных продаж из OLTP-приложения).
    • Данные, добавленные в систему, обычно никогда не удаляются.
    • Перед загрузкой данные проходят различные процедуры "очистки", связанные с тем, что в одну систему могут поступать данные из многих источников, имеющих различные форматы представления для одних и тех же понятий, данные могут быть некорректны, ошибочны.
    • Запросы к системе являются нерегламентированными и, как правило, достаточно сложными. Очень часто новый запрос формулируется аналитиком для уточнения результата, полученного в результате предыдущего запроса.
    • Скорость выполнения запросов важна, но не критична.

    Данные OLAP-приложений обычно представлены в виде одного или нескольких гиперкубов, измерения которого представляют собой справочные данные, а в ячейках самого гиперкуба хранятся собственно данные. Например, можно построить гиперкуб, измерениями которого являются: время (в кварталах, годах), тип товара и отделения компании, а в ячейках хранятся объемы продаж. Такой гиперкуб будет содержать данных о продажах различных типов товаров по кварталам и подразделениям. Основываясь на этих данных, можно отвечать на вопросы вроде "у какого подразделения самые лучшие объемы продаж в текущем году?", или "каковы тенденции продаж отделений Юго-Западного региона в текущем году по сравнению с предыдущим годом?"

    Физически гиперкуб может быть построен на основе специальной многомерной модели данных (MOLAP - Multidimensional OLAP ) или построен средствами реляционной модели данных (ROLAP - Relational OLAP ).

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