Копирование данных из SAP Business Warehouse через Open Hub с помощью Фабрики данных Azure или Synapse Analytics

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

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

Совет

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

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

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

Поддерживаемые возможности IR
Действие копирования (источник/-)
Действие поиска

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

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

В частности, этот соединитель 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.

Delta extraction flow

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

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

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

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

Необходимые компоненты

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

  • Настройте локальную среду выполнения интеграции (IR) 3.13 или более поздней версии. Дополнительные сведения см. в статье Создание и настройка локальной среды выполнения интеграции.

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

    Install SAP .NET Connector

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

    • Авторизация в RFC и SAP BW.
    • Разрешения на действие "Выполнение" для объекта авторизации S_SDSAUTH.
  • Создайте тип целевого расположения SAP Open Hub Таблица базы данных с включенным параметром Technical Key (Технический ключ). Рекомендуется также снять флажок 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 Задайте для свойства type значение SapOpenHub Да
server Имя сервера, на котором размещен экземпляр SAP Business Warehouse. Да
systemNumber Номер системы SAP Business Warehouse.
Допустимые значения: двузначное десятичное число, представленное в виде строки.
Да
messageServer Имя узла сервера сообщений SAP.
Используйте для подключения к серверу сообщений SAP.
No
messageServerService Имя службы или номер порта сервера сообщений.
Используйте для подключения к серверу сообщений SAP.
No
systemId Идентификатор системы SAP, в которой находится таблица.
Используйте для подключения к серверу сообщений SAP.
No
logonGroup Группа входа для системы SAP.
Используйте для подключения к серверу сообщений SAP.
No
clientId Идентификатор клиента в системе SAP Business Warehouse.
Допустимые значения: трехзначное десятичное число, представленное в виде строки.
Да
язык Язык, используемый в системе SAP. Нет (по умолчанию задано значение EN)
userName Имя пользователя, имеющего доступ к серверу SAP. Да
password Пароль для пользователя Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Требуется локальная среда IR, как упоминалось в разделе Предварительные требования. Да

Пример:

{
    "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 Задайте для свойства 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"
        }
    }
}

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

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

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

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

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

Совет

Если в вашей таблице 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 (пакеты данных конфигурации загрузки, валюта, десятичное число, количество) Десятичное число
N (числовой символ) Строка
X (двоичные и необработанные данные) Строка

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

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

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

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

Решение. Отключите параметр "Выполнение SAP HANA" в DTP, выполните повторную обработку данных, а затем повторите попытку выполнения действия копирования.

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