ИТ-портал компании «Инфосистемы Джет»

Опыт использования решения Oracle GoldenGate

Опыт использования решения Oracle GoldenGate

Современные темпы развития бизнеса диктуют свои условия получения данных. Бизнесу для принятия оперативных решений требуется самая актуальная информация по текущему состоянию компании практически в режиме онлайн (в зависимости от отрасли: retail – количество продаж за день, service – количество обращений клиентов за день и т.д.). Для решения таких задач (построение онлайн-баз данных для анализа) корпорация Oracle выпустила и достаточно активно развивает продукт GoldenGate, который мы подробно изучили. К сожалению, мы не можем в данной статье называть имена наших заказчиков, но хотим описать свой практический опыт использования GoldenGate на нескольких проектах.

Oracle GoldenGate – это не просто решение по репликации данных, а решение для создания real-time-приложений. GoldenGate обеспечивает сбор, маршрутизацию, преобразование и доставку транзакционных данных между гетерогенными средами в реальном времени c минимальной дополнительной нагрузкой. Данное решение можно использовать для построения сложной отчетности или как исходную систему для ETL (система выгрузки, загрузки и преобразования данных). При этом GoldenGate имеет широкие возможности интеграции c Oracle Data Integrator, расширяя функциональность последнего.

Немного практики, или с чего все начиналось?

До момента запуска решения процесс обеспечения данными бизнес-аналитиков заказчика выглядел приблизительно так:

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

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

Начну с минусов второго варианта. Даже если реплика содержит данные с маленьким отставанием по времени, архитектура данных в ней OLTP-шная, не предназначенная для анализа большого объема данных. Специалисту, работающему с программой, хочется иметь возможность добавлять поля в те или иные таблицы: в одну таблицу – секции по дате, в другую – битовый индекс, а в таблицу клиентов – еще несколько полей для денормализации. Но ничего этого сделать нельзя, да и сервер реплики – не всегда шустрая машина.

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

Ниже мы расскажем о принципах работы GoldenGate и нашем опыте его настройки.

Принцип работы GoldenGate

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

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

После запуска программного обеспечения на источнике стали собираться изменения из redo-log- или archive redo-log-файлов, пересылаться посредством так называемых передаточных trail-файлов на сервер-приемник и применяться в базе аналитической системы.

Вся прелесть GoldenGate заключается в том, что для получения данных он использует журналы повторного выполнения. Никаких запросов к базе, никаких триггеров и т.д. Нагрузка на источники минимальна! Для особо требовательных систем есть режим downstream, снижающий нагрузку на исходную систему практически до нуля.

Этапы использования GoldenGate

Отчетность

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

Несмотря на то что GoldenGate отлично реплицирует данные, когда структуры источника и приемника различаются, нужно учитывать, что это все же не ETL/ELT-инструмент, хотя на нем можно решать некоторые подобные задачи. И здесь нам на помощь пришла интеграция с полноценным и мощным ELT-инструментом все того же производителя – Oracle Data Integrator. Связка этих двух «монстров» позволила нам решить задачи по формированию любых форматов отчетности.

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

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

Хранилище данных

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

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

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

Для загрузки изменений мы обычно рекомендуем использовать, например, Oracle Data Integrator, тогда на выходе получится онлайн-хранилище данных. Конечно, для его реализации потребуются определенные навыки работы с GoldenGate и Oracle Data Integrator, а также сервер соответствующей мощности. Часто заказчики не готовы к такому повороту событий, они продолжают по старинке загружать информацию, используя для этого регламентные окна и пакетный режим загрузки.

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

Хранилище данных есть, онлайн-отчетность есть!

Данные времени выполнения

Но как быть, спросите вы, если представители заказчика хотят получать данные о времени выполнения определенных действий? В нашем случае это касалось, в частности, заявок на кредиты. Сотрудник заказчика работал с информацией по заявке на кредиты, момент работы фиксировался в одном из полей USER_ID, но информации о дате начала и окончании работы не было. Иногда поле USER_ID дополнялось полем «дата модификации» UPD_DT. Но данная ситуация приводила к тому, что нельзя было однозначно рассчитать KPI работы сотрудников и выявить причины зависания заявок на определенных шагах и/или этапах прохождения заявки.

Рисунок 2. Прием работы с заявкой

Кроме этого, заявки время от времени передавались другим сотрудникам. Значения полей USER_ID, UPD_DT менялось на нового сотрудника и дату изменения, без сохранения истории о предыдущем сотруднике. Казалось бы, дата изменения была, сотрудник тоже был указан, все можно получить. Дело в том, что между интервалами загрузки данных в BI может происходить несколько изменений, и тогда промежуточные изменения будут потеряны. Уменьшение интервалов загрузки тоже не помогало, так как заявка могла переходить от сотрудника к сотруднику несколько раз в течение нескольких секунд.

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

Вернемся к заявке… той, дополнительно полученной информацией было время работы сотрудника с заявкой, его напрямую можно было использовать при расчете KPI сотрудников и для выявления причин длительных интервалов в работе с заявкой. Не этого ли добивался бизнес? Уменьшения времени обслуживания и устранения неэффективных этапов…

Бывалые знатоки репликации вспомнят еще один инструмент от Oracle – Oracle Streams. Конечно, определенный функционал GoldenGate можно повторить на Oracle Streams, но Oracle перестал развивать этот продукт, сделав ставку на GoldenGate, перенеся наработки Streams в ядро GoldenGate.

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

Рисунок 3.Работа сотрудников с заявками через GoldenGate

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

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

Вернуться к списку статей
Оставьте комментарий
Мы не публикуем комментарии: не содержащие полезной информации или слишком краткие; написанные ПРОПИСНЫМИ буквами; содержащие ненормативную лексику или оскорбления.
О журнале

Журнал Jet Info регулярно издается с 1995 года.

Узнать больше »
Подписаться на Jet Info

Хотите узнавать о новых номерах.

Заполните форму »
Контакты

Тел: +7 (495) 411-76-01
Email: journal@jet.su