Использование программного комплекса InfoSphere DataStage для интеграции данных любого типа на распределенных платформах и мэйнфреймах
Я захотел написать эту статью, т.к. имею достаточно большой опыт профессионального использования программного комплекса InfoSphere DataStage для интеграции данных любого типа на расправленных платформах и мэйнфреймах, и в тоже время, данная тема является актуальной не только с точки зрения широкого использования данного программного комплекса во многих крупных компаниях, но и с той точки зрения, что она не была рассмотрена магистрами предыдущих курсов. Курсы по использованию ПО достаточно дорогие, даже поверхностное изучение стоит довольно «хороших» денег. Я расскажу о том, что такое InfoSphere DataStage и для чего его используют, и какие преимущества и недостатки данного программного комплекса. Но для более профессионального изучения конечно же придется походить на курсы. Из этой статьи Вам будет понятно стоит ли Вам использовать данный комплекс у себя на предприятии, изучить более детально работу с ним, или это для Вас является не актуальным. Одно хочу сказать, на рынке труда «ETL–щик» является востребованной специальностью для крупных предприятий, которые используют не одну–две базы данных, а несколько десятков….
И так, начнем!
Все мы знаем, что большинство компаний используют в своей деятельности хранилища данных, причины использования которых следующие [1] :
1) необходимость выполнения аналитических запросов и генерации отчетов на не задействованных основными информационными системами вычислительных ресурсах;
2) необходимость использования моделей данных и технологий, ускоряющих процесс выполнения запросов и подготовки отчетности, но не предназначенных для обработки транзакций;
3) создание среды, в которой даже относительно небольших знаний основ СУБД достаточно для создания запросов и подготовки отчетов. Это означает сокращение времени, требуемого от персонала ИТ–департамента для сопровождения системы;
4) создание источника с предварительно очищенной информацией;
5) упрощение процесса подготовки отчетов на основе информации из нескольких транзакционных систем и/или внешних источников данных и/или данных, используемых исключительно для генерации отчетов;
6) создание выделенного источника в тех случаях, когда возможности транзакционной системы не соответствует требуемому бизнесом сроку хранения данных и/или необходимо иметь возможность подготовки отчетов на определенные моменты времени в прошлом ("as was" reporting);
7) защита конечных пользователей от необходимости в какой бы то ни было степени вникать в структуру и логику работы БД регистрирующей системы.
DataStage предлагает разработчикам определенные преимущества для создания и интеграции информационного окружения. Начиная с создания и дизайна приложений и заканчивая интеграцией источников данных, трансформацией данных, выполнением задач и отладкой, DataStage предоставляет средства автоматизации, призванные наладить поточную разработку процессов, а также обеспечить быструю и надежную настройку и запуск интеграционных приложений [2] :
1) единая среда разработки реализует принцип «работай так, как думаешь». Разработчики используют модель нисходящего проектирования потоков данных (top–down dataflow model) при программировании и выполнении приложений, которая позволяет им строить визуальное представление потока данных. Богатая графическая палитра помогает разработчикам представить поток данных в виде графической схемы, используя простые, графические компоненты в режиме drag–and–drop. В числе других преимуществ, предоставляемых DataStage: универсальный язык сценариев, мощные средства отладки, открытый интерфейс прикладного программирования (API) для использования стороннего кода;
2) DataStage представляет ведущую в отрасли среду разработки решений для интеграции данных. В комплект поставки включены более 400 готовых функций и подпрограмм. Этот исчерпывающий набор возможностей по преобразованию данных упрощает процедуру согласования форматов и обогащает данные в процессе их передачи от источника к целевой системе;
3) DataStage сокращает цикл разработки благодаря возможности многократного использования существующей бизнес–логики интеграции данных, работа которой построена на так называемой концепции контейнеров. В рамках этой концепции, задания и метаданные, созданные в одном контейнере, могут разделяться для повторного использования другими заданиями. Возможность управления версиями позволяет расширить процесс разработки, тестирования и развертывания задания, распространив его на нескольких разработчиков или серверов DataStage. Предусмотрена также возможность подготовки отчетов по спецификациям заданий, с помощью которых другие разработчики могут ознакомиться с проектом и, при необходимости, обеспечить дополнительную поддержку.
DataStage – это одним из 3 ключевых модулей для построения систем интеграции данных.
В общем, можно сказать, что во время работы с IBM WebSphere DataStage Вы фактически работаете с IBM WebSphere DataStage Server, IBM WebSphere DataStage Designer, IBM WebSphere DataStage Manager и IBM WebSphere DataStage Administrator.
IBM WebSphere DataStage Manager организует в каталогах базовые элементы любого проекта IBM WebSphere DataStage, а также позволяет разделять общие метаданные между несколькими серверами IBM WebSphere DataStage.
IBM WebSphere DataStage Administrator – средство управления и настройки IBM WebSphere DataStage Server, один из самых сложных компонентов программного комплекса, и т.к. «не профессионалам» лазить сюда и что–то настраивать необходимо с очень сильной осторожностью.
IBM WebSphere DataStage Server –многопоточный сервер, позволяющий выполнять сложные преобразования с большими и очень большими объемами данных. При этом в качестве приемников и источников данных могут служить самые разнообразные форматы данных.
IBM WebSphere DataStage Designer – визуальное средство разработки ETL–скриптов, позволяющее разработчику в графическом виде описывать преобразование данных. Перемещая на рабочий стол Designer иконки, соответствующие источникам, приемникам и этапам трансформации данных, разработчик, не прибегая к программированию, создает потоки преобразования информации [3].
Т.е., фактически, для выгрузки данных из одной базы в другую, нам не нужно писать полностью весь код, мы пишем процедуру выгрузки из БД1 и загрузки в БД2, используя визуальные компоненты DataStage рисуем ETL, настраиваем источники данных и приемники для вызова хранимых процедур, и описываем выгружаемые и загружаемые поля. Это наиболее простое использование ETL, более сложные подходы были описаны ранее в преимуществах использования DataStage.
И небольшие рекомендации от меня:
1) перед тем как начать разработку ETL:
1.1) изучите синтаксис SQL, на котором построены БД источник и БД приемник;
1.2) обратите внимание на специфику таких типов как timestamp,date,datetime, bit и др.;
1.3) научитесь правильно писать ХП;
1.4) настройте источники данных в DataStage и проверьте их работоспособность;
1.5) изучите функционал визуальных элементов DataStage, которые Вы будете использовать;
2) желательно создавать ХП выгрузки и ХП загрузки, а не переливать данные на прямую;
3) используйте переменные «Джобов», чтобы сделать ETL более универсальной;
4) всегда пишите информацию о работе ETL в лог;
5) когда Вы уже изучили основы переливки данных, попробуйте разработать ETL, которые будут переливать данных их файлов различных форматов в таблички, или наоборот. Это пригодится;
6) некоторые «Джобы» желательно объединить в отдельные библиотеки, чтобы не «плодить» одно и тоже.
7) на этом все.
Желаю удачи в изучении программного комплекса IBM DataStage!
Литература
- Хранилища данных. Инструментарий: IBM DataStage. [Электронный ресурс] // Режим доступа: http://www.runetarc.ru/2004/pr/www.progres-co.ru/index.php/techs/ibm-datastage
- Интеграция данных любого типа на распределенных платформах. [Электронный ресурс] // Режим доступа: http://www-03.ibm.com/software/products/ru/ibminfodata
- IBM WebSphere DataStage. [Электронный ресурс] // Режим доступа: http://www.bipartner.ru/software/ascential.html