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

Для себя с удивлением обнаружил, что в не представлен такой продукт как 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.

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

Комментарии (5)


  1. saipr
    31.10.2023 07:42
    -1

    В дальнейшем постараюсь продолжить тему и раскрыть остальные особенности продукта SAP Data Services.

    А как быть с тем, что "SAP окончательно уходит из России и перестает поддерживать ранее проданные локальные продукты"?


    1. DS28
      31.10.2023 07:42
      +2

      Статья была написана год назад и лежала в песочнице.
      Я решил пропустить, так как по SAP DS совсем нет статей...

      Ну и хабр не ограничен территорией рф, а в других странах SAP работает (да и в рф пока тоже)


      1. saipr
        31.10.2023 07:42

        Соглашусь с вами, но как говорит пословица, не надо откладывать в долгий ящик.


        1. DS28
          31.10.2023 07:42

          Всякое бывает...
          Я с большим интересом посмотрел бы на статью сравнение SAP Data Services с аналогами))


          1. saipr
            31.10.2023 07:42

            Ещё не вечер!