44 НОВЫЕ РАЗРАБОТКИ Универсальный экстрактор данных версии 2 Юрий Коротун ведущий менеджер Отдела поддержки компании «RStyle Ukraine» Модели информационных потоков в современ ных банках чрезвычайно сложны — вследствие огромного многообразия эксплуатирующихся в них средств автоматизации. Зачастую здесь парал лельно используются как системы управленческо го учета, так и аналитические приложения и даже отдельные их компоненты. Как правило, они получены от разных поставщиков и работают под управле нием различных СУБД. Все чаще (в особенности для решения управленческих и аналитических задач) возникает потребность в переносе данных из этих систем в один или несколько выделенных наборов — так называемые хранилища информации. Унифи цировать процесс извлечения сведений из систем источников, повысить уровень управляемости инфор мационных потоков, в первую очередь в рамках внедрения ИАС RSDataHouse1, помогает Универсаль ный экстрактор данных2. В конце 2004 г. была завер шена реализация его 2й версии. Универсальный экстрактор данных, созданный специа листами компании «RStyle Ukraine» полтора года назад, напрямую не связан ни с одной из программных систем — ни с источником, ни с приемником данных. Обеспечивая информационное взаимодействие между компонентами программнотехнологического комплекса, он может исполь зоваться для организации потока при извлечении измене ний данных, в том числе находящихся под управлением СУБД Pervasive. В дальнейшем эта информация перено сится в другой набор данных и может быть задействована для решения самых разнообразных задач. Богатый практический опыт применения Универсально го экстрактора при реализации проектов по внедрению ИАС RSDataHouse, в частности в Народном банке Грузии (г. Тби лиси)3, в ОАО «Агроинвестбанк» (г. Душанбе, Таджикистан)4, 1См. статью А.Михеева и Г.Савкива «Инновационные решения и технологии ИАС RSDataHouse на службе банковского бизнеса» — «RSClub», 2005, № 3/38/, с.51—57. 2 См. статью Ю.Коротуна «Универсальный экстрактор данных» — там же, 2004, № 4/35/, с.37—40. 3См. там же, № 2/33/, с.8. (Прим. Ред.) 4См. там же, 2005, № 1/36/, с.10. (Прим. Ред.) ОКТЯБРЬ—ДЕКАБРЬ 2005 г. АКБ «Имэксбанк» (г. Одесса, Украина)5 и других кредитных учреждениях стран СНГ, послужил основой для создания новой версии этого инструмента. На сегодняшний день6 во всех банках, которые работают с аналитической систе мой RSDataHouse, именно вторая версия Универсального экстрактора используется для извлечения необходимой информации из АБС RSBank/Pervasive и последующей ее загрузки в хранилище. Концептуальные требования ко второй версии экстрактора Прежде чем приступить к разработке 2й версии Универ сального экстрактора, его создатели сформулировали список требований к нему (Таблица 1), которые легли в основу моди фикации экстрактора и в дальнейшем были реализованы. Сравним версии Универсальный экстрактор версии 2 превзошел своего предшественника по целому ряду параметров. Прежде всего значительно возросло его быстродействие — вследствие распараллеливания работ. Весь процесс по извлечению данных мы разбили на стадии, которые, в свою очередь, состоят из шагов. Стадии выполняются последовательно, и переход от одной к другой возможен только при условии, что все шаги предыдущей успешно завершены. Поскольку шаги каждой стадии однотипны, они выполняются незави симо друг от друга. Для увеличения быстродействия нужно одновременно запустить несколько автономных модулей, которые будут параллельно выполнять шаги одной и той же стадии. Функции контроля при этом возлагаются на специ альную программу — Управляющий процесс. Для Универсального экстрактора 1й версии основ ным «мерилом» времени работы был банковский опера ционный день. Однако в ходе реализации ряда проек тов по внедрению этого инструмента у некоторых кли ентов мы столкнулись с необходимостью организовать выгрузку изменений, произошедших в данных, не дожида ясь закрытия текущего операционного дня, ибо на основе этой информации в банках строилась оперативная управ ленческая отчетность. В дальнейшем — во второй версии Универсального экстрактора — такая возможность стала базовой функциональностью — выгрузка изменений теперь производится на основе настраиваемого периода, при этом за каждый сеанс в хранилище поступают только 5См. там же, 2004, № 3/34/, с.6. (Прим. Ред.) поступила в редакцию 11 августа 2005 г. (Прим. Ред.) 6Статья RSCLUB № 4 45 НОВЫЕ РАЗРАБОТКИ Универсальный экстрактор данных версии 2 Таблица 1. Концептуальные требования к Универсальному экстрактору v. 2 № п/п Требование Суть 1. Преемственность Поддержка всех функциональных возможностей, реализованных в первой версии Универсального экстрактора 2. Многозадачность Возможность параллельно осуществлять несколько процессов экстракции 3. Распределенная структура Это требование связано с реализацией пункта 2 — обеспечение параллельной обработки различных источников данных 4. Управление на основе метаданных Описание в модуле разнообразных настроек (специальных таблиц, констант и переменных) как метаданных. Хранение настроек, удобных для сопровождения и контроля, а также доступных для всех модулей экстракции, в одном репозитарии. Обеспечение унификации и простого управления процессами экстракции, минимизация ошибок 5. Масштабируемость Возможность перераспределения процессов извлечения информации по узлам. Логическое дробление узлов для улучшения характеристик производительности этих процессов. Например, к одному узлу можно привязать 2 экстрактора, для каждого из которых нужно выполнить соответствующие настройки. Первый обрабатывает информацию из подсистем «Главная книга бэк0офисов» и «Бэк0офис операций с ценными бумагами» (из состава RS0Bank v. 5.1), а второй — из розничных приложений RS0Loans и RS0Retail. Таким образом, удобство сопровождения информационных потоков в хранилище данных повышается, и сокращается совокупное время, необходимое для извлечения информации 6. Механизм контрольных точек Возможность в случае прерывания процесса экстракции продолжить его выполнение с так называемой «контрольной точки» (шаг, на котором произошел сбой). Простое и удобное управление подобными точками 7. Ограничения на совокупное время экстракции данных Быстрое извлечение изменений оперативной информации 8. Модульность Возможность подключения дополнительных программ по обработке данных, а также добавления функций, имеющих особую специфику 9. Автоматизация и контроль настроек, их эргономичность Использование специальных программ, отвечающих за целостность, полноту, контроль и непротиворечивость метаданных. Возможность применения wizard0программ по настройке извлечения данных 10. Обеспечение целостности данных Возможность извлечения не только измененных данных, но и, в случае необходимости, информационного объекта целиком (если какие0либо его части подверглись модификации) 11. Протоколирование Фиксирование всех действий, выполняемых в ходе экстракции. Обеспечение возможности выдачи протокола, отражающего реализацию каждого процесса те изменения, которые произошли с момента заверше ния предыдущего сеанса. 2ю версию Универсального экстрактора выгодно отли чает возможность автоматического (без вмешательства поль зователя) запуска. С помощью «Планировщика событий» — стандартного средства комплекса RSBank v. 5.1 (подсистема «Главная книга бэкофисов») — экстрактор можно подклю чать таким образом, чтобы он самостоятельно активизиро вался через заданный период, например через 24 часа (в зави симости от настроек). Главное, чтобы этот отрезок времени не был меньше средней продолжительности обработки сеанса экстракции. Задача пользователя в данном случае сводится лишь к визуальному (с помощью протоколов) контролю за успешностью выполнения процессов экстракции. Существенная роль в настройке извлечения информации отводится метаданным. В новой версии Экстрактора реализо вана программа ведения метаданных, которая по мере измене ния информации в репозитарии осуществляет контроль их полноты, целостности и непротиворечивости. В основе этого инструментария — wizardпрограммы, помогающие RSCLUB № 4 выполнять последовательный ввод и изменение настроек. Также благодаря метаданным теперь возможно контролировать загрузку сформированных файлов в RSDataHouse. Каждый новый сеанс экстракции активизируется только при успешном заверше нии загрузки в хранилище всех файлов, которые были сформиро ваны в предыдущем сеансе. Это позволяет снизить вероятность рассогласования информации, что особенно важно при опера тивной выгрузке «свежих» данных. Еще одно применение настраиваемых метаданных — обеспечение доступа к обрабаты ваемым таблицам, словарям базы данных АБС RSBank, журналам операций (транзакций) и т.д., причем все эти объекты могут находиться в самых разных местах (не заданных по умолчанию). Наряду с автоматизированным ведением метаданных в рамках Универсального экстрактора создана вспомога тельная программа проверки их настроек на полноту и непротиворечивость. Она формирует протокол, который можно проанализировать на возможность ввода ошибоч ных (несогласованных) метаданных. При этом в протоколе фиксируются не только ошибки в настройках как таковые, но и разного рода информационные предупреждения. ОКТЯБРЬ—ДЕКАБРЬ 2005 г. 46 НОВЫЕ РАЗРАБОТКИ Универсальный экстрактор данных версии 2 Механизм контрольных точек, о котором мы уже упо минали выше (см. Таблицу 1), в новой версии стал более удобным и практичным — если необходимо немедленно продолжить ранее прерванный процесс экстракции, про грамма сразу же начинает выполнять его незавершенную (невыполненную) часть. Вторая версия Универсального экстрактора ориентирована также на оперативное извлечение данных из транзакционной системы. Однако при этом могут возникать разного рода про блемы, связанные как со спецификой работы в транзакцион ной системе (например, при расчете текущего остатка счетов или оборотов по счету), так и с появлением рассогласованной информации. Поэтому при экстракции данных текущая инфор мация по возможности не используется — Универсальный экстрактор обращается к содержимому Промежуточных таб лиц, где накапливаются изменения по сеансам, и Опорных таблиц, фиксирующих состояние базы данных АБС RSBank на момент создания журналов операций (транзакций). Программы, задействованные в процессе экстракции, отражают все производимые ими действия в протоколах, которые создаются и хранятся в специально предназначен ных для этого местах. Причем по каждой из них ведется отдельный протокол. С помощью метаданных можно настроить экстракцию на определенные режим и работу. В этом случае вмешатель ство пользователя в процесс не понадобится — программа сама будет по умолчанию выполнять свое задание в заранее установленном режиме. При извлечении информации выводится экранная форма, детально иллюстрирующая для пользователя вы полнение процесса экстракции (Рис. 2). Экстракция может охватывать, например, параллельно три процесса, и сообщение о состоянии каждого из них выводится на монитор. Внизу экранной формы представлены обобщенные данные. Функционирование Перед каждым запуском нового сеанса экстракции пользователь в интерактивном режиме настраивает его пара метры (Рис. 1), а именно: • выбирает режим экстракции — полную выгрузку, то есть выгрузку всех данных (обычно используется для начального наполнения хранилища либо в случае искажения или сбоя данных, в нем содержащихся, — когда необходи мо перегрузить все данные какогото модуля или объекта) или выгрузку только измененных данных (это обычный повседневный режим работы); • задает «работу» (разрез выгружаемых данных). Рис. 1. Экранная форма для введения параметров экстракции ОКТЯБРЬ—ДЕКАБРЬ 2005 г. Рис. 2. Отображение текущего состояния процесса экстракции Настройка процессов экстракции Хотелось бы более подробно остановиться на програм меинтерфейсе, предназначенной для настроек процес сов экстракции, которая автоматизирует настройку вы грузки информации в хранилище, унифицирует соответ ствующие процессы, чтобы их выполнение стало более легким, и осуществляет контроль над ними. Кроме того, эта программа ведет контроль за тем, чтобы настройки для работы Универсального экстрактора были заданы правильно. Также с ее помощью можно осуществлять анализ настроечной информации на полноту и непроти воречивость. И хотя программа функционирует отдель но от процессов экстракции (Рис. 3), по своей значи мости она является полноправной и цельной частью Универсального экстрактора. После запуска программы устанавливаются пара метры соединения с БД, содержащей метаданные. Сама настройка разбита на два этапа. Первый — это настрой ка выгрузки изменений по заданному перечню таблиц, определенным образом связанных между собой (Рис. 4). Измененные и сопутствующие данные по этой части RSCLUB № 4 47 НОВЫЕ РАЗРАБОТКИ Универсальный экстрактор данных версии 2 то не удастся корректно установить связи между ними). При реализации настроек может помочь wizardпрограмма, которая сама как бы ведет пользователя от одной экранной формы к другим, контролируя при этом, чтобы вся необхо димая информация была введена. Причем не составит труда из какойлибо формы возвратиться к предыдущим, чтобы просмотреть или изменить внесенные ранее данные. Вдобавок к этому программа настроек процессов выгрузки позволяет работать с Промежуточными таблицами, а также с глобальными переменными и константами. Рис. 3. Интерфейс программы для настройки процессов выгрузки Рис. 5. Интерфейс программы для настройки процессов выгрузки. Настройки по формированию файлов Коротко о перспективах Рис. 4. Интерфейс программы для настройки процессов выгрузки. Настройка экстракции изменений настроек, дополняющие изменения информационного объекта до цельного, попадают в Промежуточные таб лицы. Второй этап — это настройка формирования целевых файлов на основе сведений из Промежуточных таблиц (Рис. 5). Содержимое создаваемых файлов является выходными данными Универсального экстрак тора. Они поступают на обработку в «Загрузчик» ИАС RSDataHouse (в принципе, этим файлам можно найти и другое применение). Контроль и проверка правильности заданных настроек при вводе или изменении данных в каждой экранной форме программы для настроек процессов выгрузки про изводится практически всегда, когда это возможно. Программа оснащена системой подсказок, что упрощает работу пользователей. Если потребуется ввести большие массивы новой информации, особое внимание надо уделять последователь ности выполняемых при этом действий (например, если предварительно не задать правильную иерархию таблиц, RSCLUB № 4 Следующим этапом жизненного пути Универсального экстрактора станет выход его 3й версии. Планируется, что это будет уже не отдельный модуль, а сложная распределен ная система для централизованного управления процес сами экстракции, позволяющая сосредоточить их управле ние и мониторинг в едином центре, минимизировав при этом влияние человеческого фактора (как в центре, так и в точках экстракции). Перечень обрабатываемых типов источников данных будет расширяться, в частности за счет баз данных под управлением реляционных СУБД (Oracle7, MS SQL, Sybase), возрастет количество поддержи ваемых форматов целевых файлов (наряду с текстовыми можно будет формировать файлы в XML, DBF, XLS). Даль нейшее развитие получат основная функциональность и эргономичность данного инструмента. В идеале работа с Универсальным экстрактором видит ся максимально комфортной и эффективной, удобной и простой, продуктивной и прозрачной. Он должен выпол нять все возложенные на него задачи в составе сложной архитектуры современного банковского комплекса. 7См. статью Г.Ладыженского «СУБД Oracle для небольших организаций и компаний» — там же, 2005, № 2/37/, с.50—52. (Прим. Ред.) ОКТЯБРЬ—ДЕКАБРЬ 2005 г.