В идеале работа аналитиков и руководителей различных уровней должна быть организована так, чтобы они могли:
- иметь доступ ко всей интересующей их информации;
- пользоваться удобными и простыми средствами представления и работы с этой информацией.
Именно на достижение этих целей и направлены технологии, объединяющиеся под общим названием хранилища данных и бизнес - анализ.
Возможно получение информации различными способами:
- Непосредственный доступ аналитических систем к данным источников. Способ применим для небольших проектов с устоявшимся набором исходных данных. Исходные системы должны иметь запас вычислительных ресурсов, поскольку на них ложится нагрузка.
- Использование хранилища данных. Способ, который мы подробнее опишем ниже. Его, пожалуй, единственным недостатком является то, что актуальность информации зависит от режима загрузки данных в хранилище.
- Использование хранилища данных с промежуточной обработкой. В этом случае перед загрузкой в хранилище данные обрабатываются в промежуточной области. При необходимости очищенные данные могут быть загружены обратно в исходные источники. Плюсом данного механизма является повышение качества информации.
- Использование витрин данных. Способ является надстройкой, дополнением к использованию хранилищ. При этом информация из общего корпоративного хранилища выгружается в специализированные витрины данных (риски, аналитика по клиентам и т. п.). Это решение является оптимальным для очень крупных хранилищ данных. Оно обеспечивает высокую безопасность доступа к информации и позволяет работать многочисленным пользователям с огромными объемами данных.
- В последнее время получает применение комбинированный способ, когда построение хранилища данных комбинируется с непосредственным доступом аналитических инструментов к источникам данных. Этот способ позволяет сочетать хранение огромных объемов информации и, в то же время, при необходимости получать существенные отчеты или показатели (ограниченное количество) в режиме реального времени.
Рассмотрим подробнее классический вариант построения хранилища данных и то, как развитие СУБД влияет на возможности самого хранилища.
В основе концепции хранилищ данных лежит важная идея интеграции ранее разъединенных детализированных данных, поступающих из внешних источников, в единой базе данных, их предварительное согласование и возможно агрегация.
Автором концепции хранилищ данных (Data Warehouse) является Б. Инмон, который определил хранилища данных, как: « предметно ориентированные, интегрированные, неизменчивые, поддерживающие хронологию наборы данных, организованные для целей поддержки управления », призванные выступать в роли « единого и единственного источника истины », обеспечивающего руководителей и аналитиков достоверной информацией, необходимой для оперативного анализа и принятия решений.
В настоящее время существуют фактические стандарты построения корпоративных информационно - аналитических систем, основанных на концепции хранилища. Эти стандарты опираются на современные исследования и общемировую практику создания хранилищ данных и аналитических систем.
В общем виде архитектура корпоративной информационно - аналитической системы описывается схемой с тремя выделенными слоями:
- извлечение, преобразование и загрузка данных;
- хранение данных;
- анализ данных (рабочие места пользователей).
Для предоставления необходимой для принятия решений информации обычно приходится собирать данные из нескольких транзакционных операционных систем, предназначенных для решения различных задач (главная книга, кредитные, депозитные системы, системы ценных бумаг, карточные системы). Основная проблема при этом состоит в несогласованности и противоречивости этих источников, например, сведений о клиентах, продуктах.
Тенденцией последних лет является повышение и обеспечение качества данных: стандартизация, выявление связей между объектами, устранение дубликатов, дополнение атрибутов. Как правило, выделают три компоненты решения по очистке данных: анализ исходных данных (data profiling), мониторинг качества данных, исправление исходных данных (data corrections), определение правил очистки данных (data rules).
Кроме возможности работать с единым источником информации, руководители и аналитики должны иметь удобные средства визуализации данных, агрегирования, поиска тенденций, прогнозирования. Несмотря на многообразие аналитической деятельности, можно выделить типовые технологии анализа данных, каждой из которых соответствует определенный набор инструментальных средств.
Чаще всего различают четыре основных вида аналитической деятельности: стандартная отчетность, нерегламентированные (произвольные) запросы и информационные панели, многомерный анализ (OLAP) и извлечение знаний (data mining). Важной тенденцией в современных средствах бизнес - анализа является их встраивание в бизнес - процессы организации и « взгляд вперед»: они предоставляют возможности предсказания событий и потребностей. Помимо этого в средствах бизнес - анализа последнего поколения предусмотрена также возможность работы с аналитикой в режиме офф - лайн, тесная интеграция с офисными пакетами (например, MS Office), возможность оповещения пользователей в режиме он - лайн (по электронной почте и через мобильные средства связи).
Вместе с хранилищем данных эти средства обеспечивают полное решение для автоматизации аналитической деятельности и создания корпоративной информационно - аналитической системы.
Хранилище реализуется в виде реляционной базы данных, работающей под управлением достаточно мощной реляционной СУБД. Такая СУБД должна поддерживать эффективную работу с терабайтными объемами информации, иметь развитые средства ограничения доступа, обеспечивать повышенный уровень надежности и безопасности, соответствовать необходимым требованиям по восстановлению и архивации и т. п.
С точки зрения СУБД, под управлением которой работает хранилище данных, наиболее существенным является тот факт, что режимы функционирования базы данных для аналитических задач коренным образом отличаются от ситуации в обычных системах транзакционной обработки. Они требуют специальных настроек параметров, методов индексирования и обработки запросов.
Одной из таких систем является СУБД Oracle, которая предоставляет широкий спектр средств, направленных на работу базы в режиме хранилищ и витрин данных. К их числу относятся параллельная обработка запросов, позволяющая наиболее полно использовать возможности многопроцессорных аппаратных платформ, эффективные битовые (bitmap) индексы и специализированные алгоритмы выполнения запросов, которые многократно повышают производительность обработки аналитических запросов, секционирование данных (partitioning), облегчающее управление и значительно ускоряющее обработку очень больших таблиц и индексов, и многие другие.
Битовые индексы.Использование битовых индексов (Bitmap Index) позволяет резко ускорить выполнение определенных типов запросов, характерных для аналитических приложений. В случае, если разброс значения какого - либо параметра или группы параметров небольшой (например: пол – мужской / женский; семейное положение – женат (замужем)/ разведен (а)/ вдов (а) ец, тип клиента – физ. лицо / юр. лицо и т. д.), возможно создать битовые индексы, которые позволяют очень быстро производить выборку по такого рода параметрам, так как значения хранятся в виде битовой карты и сравнение в запросе происходит на уровне команд процессора сервера.
Параллельное выполнение.Параллельное выполнение (Parallel Execution) позволяет значительно ускорить выполнение длительных операций, которые часто встречаются при построении и использовании хранилищ данных и аналитических систем. СУБД Oracle позволяет распараллелить такие операции, как: выполнение запросов к очень большим таблицам, связкам таблиц, создание больших индексов, материализованных представлений, вставку и изменение записей в больших таблицах при загрузке данных в хранилище. Параллельное выполнение позволяет полнее раскрыть преимущества многопроцессорных систем и кластеров.
Секционирование.Вместе с параллельным выполнением еще одним механизмом увеличения производительности больших хранилищ данных и аналитических систем является секционирование (Partitioning). Этот механизм позволяет физически разбивать таблицы на « горизонтальные » части или секции по логическому условию, например, по дате или по значениям каких - либо других полей. При этом логически таблица остается единой, но на физическом уровне с каждой такой секцией система работает независимо. Это позволяет автоматически заменять запросы к большой исходной таблице запросами к отдельным ее секциям и, таким образом, уменьшить время обработки запросов.
Материализованные представления.Запросы аналитиков обычно бывают достаточно сложными, содержат большое количество связей между таблицами, агрегирующие выражения и т. п., что при больших объемах таблиц хранилища приводит к неприемлемым временным затратам на получение результатов. Материализованные представления позволяют хранить в явном виде результаты часто встречающихся запросов и не выполнять их заново каждый раз, а использовать готовый результат. Материализованные представления напоминают обычные представления (view), но в отличие от них в базе данных хранится не только текст запроса, но и результат его выполнения в виде некоторой промежуточной таблицы. Данные в исходных таблицах, участвующих в запросе, могут изменяться и в этом случае необходимо обновлять и промежуточную таблицу. Существенно, что эта синхронизация материализованного представления с исходными таблицами выполняется системой автоматически в соответствии с определенным регламентом, задаваемым разработчиком. Может оказаться, что запрос пользователя не хранится непосредственно в виде материализованного представления, но выполнить его гораздо быстрее не на исходных таблицах, а используя некоторое существующее материализованное представление. Например, если исходная таблица содержит обороты за каждый день и создано материализованное представление, содержащее обороты по месяцам, то было бы разумно использовать его, а не исходную таблицу при вычислении оборотов за каждый квартал. Такое « переписывание » запросов производится также автоматически, что освобождает разработчика от необходимости знать о всех промежуточных результатах, которые могут оказаться полезными при оптимизации запросов, и работать непосредственно с исходными таблицами.
Управление суммарными данными.Одним из важнейших усовершенствований в области оптимизации выполнения аналитических запросов является технология управления суммарными данными на основе материализованных представлений. Анализируя статистику работы системы, СУБД рекомендует администратору необходимые агрегаты, автоматически их создает и периодически обновляет. Затем при выполнении запросов с агрегированием система автоматически переписывает их таким образом, чтобы они обращались к суммарным данным, хранящимся в материализованных представлениях. Такой подход резко, иногда на несколько порядков, повышает производительность хранилища данных для конечных пользователей.
Аналитические функции.Для облегчения программирования сложных аналитических запросов в SQL Oracle встроено большое количество аналитических функций. Это такие функции, как: функции ранжирования, вычисления лагов, линейной регрессии, вычисления скользящих и многие другие. Аналитические функции призваны облегчить программирование и уменьшить нагрузку на клиентские приложения. Следует отметить, что существует возможность создавать свои сложные агрегирующие функции, в том числе не только на языке PL / SQL.
Итак, полномасштабная информационно - аналитическая система должна выполнять сложные и разнообразные функции, включая сбор данных из различных источников, их согласование, преобразование и загрузку в хранилище, хранение аналитической информации, регламентную отчетность, поддержку произвольных запросов, многомерный анализ и др.
Обычно для выполнения этих функций используются различные продукты, что приводит к усложненной архитектуре системы, необходимости интегрировать разнородные инструментальные среды, дополнительным затратам на администрирование, проблемам согласования данных и метаданных на различных серверах.
Тенденция последних лет заключается в том, что процессы укрупнения, слияния идут как на рынке финансовых институтов, так и на рынке поставщиков ПО для банков. Вот только некоторые крупнейшие приобретения и объединения:
- Oracle приобрела компании Siebel (июнь 2006) и Hyperion Solutions (март 2007).
- Applix присоединился к Cognos (сентябрь 2007).
- Business Objects приобретен SAP (октябрь 2007).
- Cognos вошел в состав IBM (ноябрь 2007).
- Microsoft анонсирует покупку Fast Search & Transfer (январь 2008).
Различные продукты объединяются самими вендорами в единую платформу и поставщики предлагают комплексные решения. Пожалуй, именно это и является главной тенденцией последних лет на рынке поставщиков систем хранения данных и бизнес - анализа.
Материал был опубликован в журнале « Банковские технологии », № 6, 2008