Знакомство с разработкой SAP Data Services
Привет, Хабр!
Для себя с удивлением обнаружил, что в не представлен такой продукт как SAP Data Services. Поэтому постараюсь раскрыть его в своем посте, начнем с основ:
Что такое SAP Data Services
Основные компоненты разработки SAP DS Designer
Что такое SAP Data Services
Это графический ETL инструмент для обеспечения качественной обработки данных и их интеграции в единое хранилище. Используя Data Services (в дальнейшем DS), можно преобразовывать и очищать данные, независимо от их источника. Имеется гибкая возможность интегрироваться с любым источником. Возможно иметь единую среду для разработки, выполнения, управления и проверки безопасности.
Одной из главных функций Data Services является извлечение, преобразование и загрузка (ETL) данных из разнородных источников в целевую базу данных или хранилище данных. При помощи инструмента Designer создаются приложения (задания), которые определяют порядок преобразования и обработки данных. DS самостоятельно отслеживает время и параметры запуск заданий, собирается статистику и пробует оптимизировать работу задач. Рабочий сервер DS может выдерживать большой объем данных и поддерживать обработку данных в реальном времени.
SAP DS поддерживает прекрасный коннектор с SAP системами, так и с коннекторами других систем: Hive, Oracle, HTTP, JMS, Siebel, MongoDB, веб-сервисы SOAP и REST, имеется CDC (change data capture — захват изменения данных — это процесс отслеживания изменений в базе данных и поставка этих изменений к потребителям в режиме почти реального времени).
2. Основные компоненты разработки SAP DS Designer
Графический редактор позволяет составлять параллельные и циклические цепочки групп операций, которые будут отслеживаться системой и перезапускаться, если возникает сбой на одном из шагов. Можно легко распараллелить выполнение задач, если позволяют ресурсы сервера.
Основным исполняемым объектом является JOB: он включает в себя настройку запуска программы, в нем определяются глобальные переменные запуска и уровень логирования.
Дальше объекты DS разделяются внутри JOB на многоразовые (Reusable) WorkFlow, DataFlow и одноразовые (Single-use) — блок Try/Catch, Loop, Conditiona. Различаются они тем, что в локальном хранилище программ, многоразовые объекты сохраняются и их возможно использовать в другом месте программы или даже в другой программе. Настроили вы например расчет зарплаты за день (передаете дату для расчета), и благодаря Reusable можете создать на странице копии этого блока расчета и передавать другие даты, таким образом расчет произойдет по одному сценарию, но с разными параметрами запуска.
Для Reusable — изменение в этом объекте приводит к автоматическому изменению во всех остальных местах его использования. Что снимает опасность расхождения алгоритма расчета, когда в каком то месте забываешь скорректировать формулу.
Основными рабочими единицами в JOB являются DataFlow и WorkFlow.
WorkFlow (WF) — более высокоуровневый объект, он отвечает за выделение рабочего процесса на уровне процессора. Цель WF — подготовить систему к работе с потоками данных и установить состояние рабочего процесса. Внутри WF должен находиться DataFlow. Рабочие потоки могут вызывать другие рабочие потоки. Можно даже настроить рабочий процесс для вызова самого себя. Когда объекты соединяются в рабочем потоке — определяется порядок, в котором выполняют операции. Если оставить WF несвязанными, объекты будут выполняться в параллельных процессах.
DataFlow (DF) — это объекты, которые извлекает, преобразовывает и загружает данные в JOB. Все, что связано с данными, включая чтение источников, преобразование данных и загрузку целей, происходит внутри потока данных. Линии, соединяющие объекты в потоке данных, представляют поток данных как этапы трансформации.
Каждый объект, который помещается в поток данных, становится шагом. Линии соединения в потоке данных определяют порядок, в котором SAP Data Services выполняет шаги. Каждый шаг в потоке данных, вплоть до целевого последнего дает промежуточный результат, который переходит к следующему. Промежуточный результат состоит из набора строк из предыдущего шага и схемы, в которой строки были обработаны.
Концептуально программу можно разделить на 2 уровня.
Верхний — где управляется последовательность (комбинируем последовательность WF и DF, добавляя для них вспомогательные циклы, Try/catch, условия и скрипты)
Нижний — это уровень DF — блоки логически завершенных операций — выгрузка данных из источника, обработка и их сохранение.
Создав наборы операций можно в дальнейшем их графически комбинировать, составляя наилучшие комбинации по скорости обработки данных.
В дальнейшем постараюсь продолжить тему и раскрыть остальные особенности продукта SAP Data Services.
Оставляю ссылку на официальную документацию, где можно найти исчерпывающую информацию по продукту.