Копирование данных из SAP Business Warehouse с помощью Open Hub, используя Azure Data Factory или Synapse Analytics

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

В этой статье описывается, как использовать действие копирования в конвейерах Azure Data Factory и Synapse Analytics для копирования данных из хранилища SAP Business Warehouse (BW) через Open Hub. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.

Совет

Сведения о общей поддержке сценария интеграции данных SAP см. в статье SAP data integration whitepaper с подробными сведениями о каждом соединителе SAP, сравнении и руководстве.

Поддерживаемые возможности

Этот соединитель открытого концентратора SAP Business Warehouse поддерживает следующие возможности.

Поддерживаемые возможности IR
Copy activity (источник/-) (2)
Операция поиска (2)

(1) Azure среды выполнения интеграции (2) локальная среда выполнения интеграции

Список хранилищ данных, поддерживаемых в качестве источников и приемников для действия "копирования", приведен в таблице Поддерживаемые хранилища данных.

В частности, этот соединитель SAP Business Warehouse Open Hub поддерживает:

  • SAP Business Warehouse 7.01 или более поздней версии (в последнем стеке пакета поддержки SAP, выпущенном после 2015 года). SAP BW/4HANA не поддерживается этим соединителем.
  • Копирование данных через локальную целевую таблицу Open Hub (DSO, InfoCube, MultiProvider, DataSource и др.).
  • Копирование данных с помощью базовой проверки подлинности.
  • Подключение к серверу приложений SAP или серверу сообщений SAP.
  • Получение данных через RFC.

Интеграция SAP BW Open Hub

Служба SAP BW Open Hub — это эффективный способ извлечения данных из SAP BW. На следующей диаграмме показан один из типичных потоков, используемых клиентами в их системе SAP, в которой данные переходят из SAP ECC > PSA > DSO > Cube.

Целевое расположение SAP BW Open Hub (OHD) позволяет определить целевой объект, в который передаются данные SAP. Любые объекты, поддерживаемые процессом передачи данных SAP (DTP), можно использовать как источники данных Open Hub, например DSO, InfoCube, DataSource и т. д. Тип назначения Open Hub — место, где хранятся ретранслируемые данные, — может быть таблицей базы данных (локальной или удаленной) и неструктурированными файлами. Этот соединитель SAP BW Open Hub поддерживает копирование данных из локальной таблицы OHD в BW. Если вы используете другие типы, можно напрямую подключаться к базе данных или файловой системе с помощью других соединителей.

SAP BW Open Hub

Поток извлечения дельта-данных

Соединитель SAP BW Open Hub предлагает два необязательных свойства: excludeLastRequest и baseRequestId, которые можно использовать для обработки дельта загрузки из Open Hub.

  • excludeLastRequestId: нужно ли исключать записи из результатов последнего запроса. Значение по умолчанию — «истина».
  • baseRequestId: идентификатор запроса для дельта-загрузки. После установки этого параметра в результатах запроса будут отображаться только данные с requestId, значение которого больше, чем значение этого свойства.

В целом извлечение из SAP InfoProviders состоит из двух этапов.

  1. Процесс передачи данных (DTP) SAP BW. На этом этапе данные копируются из SAP BW InfoProvider в таблицу SAP BW Open Hub

  2. Копирование данных. На этом этапе соединитель считывает таблицу Open Hub.

Поток извлечения изменений

На первом этапе выполняется DTP (Цифровая обработка текста). При каждом выполнении создается новый идентификатор запроса SAP. Идентификатор запроса хранится в таблице Open Hub и используется коннектором для идентификации дельты. Эти два этапа выполняются асинхронно: DTP активируется системой SAP, а копирование данных запускается службой.

По умолчанию служба не считывает последние изменения из таблицы Open Hub (параметр "Exclude last request" (Исключить последний запрос) имеет значение true). Настоящим сообщается, что данные в службе не на 100% обновлены в соответствии с данными в таблице Open Hub (отсутствуют последние изменения). Зато эта процедура гарантирует, что при асинхронном извлечении строки не теряются. Это эффективно, даже когда служба считывает таблицу Open Hub, в то время как DTP все еще выполняет запись в эту таблицу.

Обычно вы храните максимальный скопированный идентификатор запроса из последнего запуска службы в промежуточном хранилище данных (например, в Azure Blob, как на схеме выше). Поэтому при следующем запуске служба не будет считывать тот же запрос повторно. В то же время данные не удаляются автоматически из таблицы Open Hub.

Для корректной обработки дельт не допускается наличие идентификаторов запросов из разных DTP в одной таблице Open Hub. Таким образом, не следует создавать более одного DTP для каждого места назначения Open Hub (OHD). Если необходимо выполнять полное и дельта извлечение из одного InfoProvider, создайте два OHD для одного InfoProvider.

Предварительные условия

Чтобы использовать этот соединитель SAP Business Warehouse Open Hub, сделайте следующее:

  • Настройте локальную Integration Runtime с версией 3.13 или более поздней. См. статью Self-hosted Integration Runtime для получения подробной информации.

  • Скачайте 64-разрядную версию SAP .NET Connector 3.0 на веб-сайте SAP и установите его на локальном компьютере IR. При установке в окне дополнительных шагов настройки обязательно выберите параметр Install Assemblies to GAC, как показано на следующем рисунке.

    Установите SAP .NET Connector

  • Пользователь SAP, который используется в соединителе BW, должен иметь следующие разрешения:

    • Авторизация для RFC и SAP BW.
    • Разрешения на действие "Выполнение" для объекта авторизации S_SDSAUTH.
  • Создайте тип SAP Open Hub Destination как Таблица базы данных с активированной опцией "Технический ключ". Рекомендуется также снять флажок Deleting Data from Table (Удаление данных из таблицы), хоть это и не обязательно. Используйте процесс передачи данных (выполните его напрямую или интегрируйте в цепочку существующего процесса) для переноса данных из выбранного исходного объекта (например, куба OLAP) в целевую таблицу Open Hub.

Начало работы

Совет

Пошаговое руководство по использованию соединителя SAP BW Open Hub см. в статье Загрузка данных из SAP Business Warehouse (BW).

Для выполнения действия копирования с конвейером можно использовать один из следующих средств или пакетов SDK:

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей, относящихся к соединителю SAP Business Warehouse Open Hub.

Свойства связанной службы

Для связанной службы SAP Business Warehouse (BW) Open Hub поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
тип Задайте для свойства type значение SapOpenHub Да
сервер Имя сервера, на котором размещен экземпляр SAP Business Warehouse. Да
номерСистемы Номер системы SAP Business Warehouse.
Допустимые значения: двузначное десятичное число, представленное в виде строки.
Да
сервер сообщений Имя узла сервера сообщений SAP.
Используйте для подключения к серверу сообщений SAP.
Нет
службаСервераСообщений Имя службы или номер порта сервера сообщений.
Используйте для подключения к серверу сообщений SAP.
Нет
идентификаторСистемы Идентификатор системы SAP, в которой находится таблица.
Используйте для подключения к серверу сообщений SAP.
Нет
logonGroup Группа входа для системы SAP.
Используйте для подключения к серверу сообщений SAP.
Нет
clientId Идентификатор клиента в системе SAP W.
Допустимые значения: трехзначное десятичное число, представленное в виде строки.
Да
язык Язык, используемый в системе SAP. Нет (по умолчанию задано значение EN)
userName Имя пользователя, имеющего доступ к серверу SAP. Да
пароль Пароль для пользователя Пометьте это поле как SecureString, чтобы безопасно хранить его, или ссылаться на секрет, хранящийся в Azure Key Vault. Да
connectVia Integration Runtime для подключения к хранилищу данных. Требуется Self-hosted Integration Runtime, как упомянуто в разделе Prerequisites. Да

Пример:

{
    "name": "SapBwOpenHubLinkedService",
    "properties": {
        "type": "SapOpenHub",
        "typeProperties": {
            "server": "<server name>",
            "systemNumber": "<system number>",
            "clientId": "<client id>",
            "userName": "<SAP user>",
            "password": {
                "type": "SecureString",
                "value": "<Password for SAP user>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. Этот раздел содержит список свойств, поддерживаемых набором данных SAP BW Open Hub.

Чтобы скопировать данные из или в SAP BW Open Hub, для свойства type набора данных установите значение SapOpenHubTable. Поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
тип Задайте для свойства type значение SapOpenHubTable. Да
openHubDestinationName Имя целевого расположения Open Hub, из которого копируются данные. Да

Если вы ранее настраивали excludeLastRequest и baseRequestId в наборе данных, это по-прежнему поддерживается в неизменном виде. Однако мы рекомендуем использовать новую модель в качестве источника активности в дальнейшем.

Пример:

{
    "name": "SAPBWOpenHubDataset",
    "properties": {
        "type": "SapOpenHubTable",
        "typeProperties": {
            "openHubDestinationName": "<open hub destination name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP BW Open Hub linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Свойства Copy activity

Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры. Этот раздел содержит список свойств, поддерживаемых источником данных SAP BW Open Hub.

SAP BW Open Hub в качестве источника данных

Для копирования данных из SAP BW Open Hub в разделе source для действия копирования поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
тип Свойство type источника действия копирования должно иметь значение SapOpenHubSource. Да
исключитьПоследнийЗапрос Нужно ли исключать записи из результатов последнего запроса. Нет (по умолчанию задано значение true)
базовыйИдентификаторЗапроса Идентификатор запроса для загрузки разностных данных. После установки этого параметра в результатах запроса будут отображаться только данные с requestId, значение которого больше, чем значение этого свойства. Нет
customRfcReadTableFunctionModule Специальный модуль функции RFC, который может быть использован для чтения данных из таблицы SAP.
Пользовательский модуль функции RFC поможет определить, каким образом данные извлекаются из системы SAP и возвращаются в службу. В пользовательском модуле функции должен быть реализован интерфейс (импорт, экспорт, таблицы), подобный интерфейсу /SAPDS/RFC_READ_TABLE2, который используется службой по умолчанию.
Нет
sapDataColumnDelimiter Отдельный символ, используемый как разделитель, передаётся в SAP RFC для разделения выходных данных. Нет

Совет

Если в вашей таблице Open Hub содержатся только данные, полученные по одному идентификатору запроса, например, вы всегда выполняете полную загрузку и перезаписываете существующие данные в таблице или запускаете DTP только один раз для тестирования, чтобы скопировать данные, не забудьте снять флажок excludeLastRequest.

Чтобы ускорить загрузку данных, можно задать parallelCopies для действия копирования, чтобы загружать данные из SAP BW Open Hub параллельно. Например, если установлено значение parallelCopies 4, служба одновременно выполняет четыре вызова RFC, и каждый вызов RFC извлекает часть данных из таблицы SAP BW Open Hub, секционированной по идентификатору запроса DTP и идентификатору пакета. Это применимо, когда сумма числа уникальных идентификаторов запросов DTP и идентификаторов пакетов превышает значение parallelCopies. При копировании данных в файловое хранилище данных также рекомендуется записывать в папку в виде нескольких файлов (только указать имя папки), в этом случае производительность лучше, чем запись в один файл.

Пример:

"activities":[
    {
        "name": "CopyFromSAPBWOpenHub",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP BW Open Hub input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapOpenHubSource",
                "excludeLastRequest": true
            },
            "sink": {
                "type": "<sink type>"
            },
            "parallelCopies": 4
        }
    }
]

Сопоставление типов данных для SAP BW Open Hub

При копировании данных из SAP BW Open Hub используются следующие сопоставления типов данных SAP BW с промежуточными типами данных, используемых службой для внутренних целей. Дополнительные сведения о том, как действие копирования сопоставляет схему источника и типы данных на приемник, см. в разделе Сопоставление схем и типов данных.

Тип ABAP в SAP Промежуточный тип данных сервиса
C (строка) Строка
I (целое число) Int32
F (с плавающей запятой) Двойной
D (дата) Строка
T (время) Строка
P (упакованный двоично-десятичный код (BCD), валюта, десятичное число, количество) Десятичное число
N (числовой символ) Строка
X (двоичные и необработанные данные) Строка

Свойства действия поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Советы по устранению неполадок

Симптомы: Если вы используете SAP BW на HANA и замечаете, что только подмножество данных (1 миллион строк) копируется с помощью действия копирования, возможно, это связано с тем, что параметр "выполнение SAP HANA" был включён в вашем DTP. В этом случае служба сможет извлечь только первый пакет данных.

Resolution: Отключить параметр «SAP HANA Execution» в «DTP», повторно обработать данные, а затем повторите операцию копирования.

Список хранилищ данных, поддерживаемых в качестве источников и приемников для операции копирования, смотрите в разделе поддерживаемые хранилища данных.