Знакомство с разработкой SAP Data Services

b4985e7817ce95fd671d5b24655aa22a.png

Привет, Хабр!

Для себя с удивлением обнаружил, что в не представлен такой продукт как SAP Data Services. Поэтому постараюсь раскрыть его в своем посте, начнем с основ:

  1. Что такое SAP Data Services

  2. Основные компоненты разработки SAP DS Designer

Что такое SAP Data Services

Это графический ETL инструмент для обеспечения качественной обработки данных и их интеграции в единое хранилище. Используя Data Services (в дальнейшем DS), можно преобразовывать и очищать данные, независимо от их источника. Имеется гибкая возможность интегрироваться с любым источником. Возможно иметь единую среду для разработки, выполнения, управления и проверки безопасности.

Одной из главных функций Data Services является извлечение, преобразование и загрузка (ETL) данных из разнородных источников в целевую базу данных или хранилище данных. При помощи инструмента Designer создаются приложения (задания), которые определяют порядок преобразования и обработки данных. DS самостоятельно отслеживает время и параметры запуск заданий, собирается статистику и пробует оптимизировать работу задач. Рабочий сервер DS может выдерживать большой объем данных и поддерживать обработку данных в реальном времени.

Статистика выполнения задач SAP DS

SAP DS поддерживает прекрасный коннектор с SAP системами, так и с коннекторами других систем: Hive, Oracle, HTTP, JMS, Siebel, MongoDB, веб-сервисы SOAP и REST, имеется CDC (change data capture — захват изменения данных — это процесс отслеживания изменений в базе данных и поставка этих изменений к потребителям в режиме почти реального времени).

2. Основные компоненты разработки SAP DS Designer

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

Основным исполняемым объектом является JOB: он включает в себя настройку запуска программы, в нем определяются глобальные переменные запуска и уровень логирования.

Пример использование Reusable объектов

Дальше объекты 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.

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

© Habrahabr.ru