Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования в Фабрике данных Azure и конвейерах Azure Synapse Analytics копировать данные из таблицы SAP. Для получения дополнительной информации см. Обзор операции копирования.
Совет
Сведения об общей поддержке сценария интеграции данных SAP см. в технической документации по интеграции данных SAP с помощью Фабрики данных Azure, где приводятся подробные сведения, сравнение и рекомендации для каждого соединителя SAP.
Поддерживаемые возможности
Соединитель таблиц SAP поддерживает следующие возможности:
Поддерживаемые возможности | ИКР (инфракрасное излучение) |
---|---|
Копирование (источник/-) | (2) |
Операция поиска | (2) |
① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия копирования, приведен в таблице Поддерживаемые хранилища данных.
В частности, данный соединитель таблиц SAP поддерживает:
Копирование данных из таблицы SAP в:
- SAP ERP Central Component (SAP ECC) версии 7.01 или более поздней (в последнем стеке пакетов поддержки SAP, выпущенном после 2015 г.).
- SAP Business Warehouse (SAP BW) версии 7.01 или более поздней (в последнем стеке пакетов поддержки SAP, выпущенном после 2015 г.).
- SAP S/4HANA.
- Другие продукты SAP Business Suite версии 7.01 или более поздней (в последнем стеке пакетов поддержки SAP, выпущенном после 2015 г.).
Копирование данных из прозрачной таблицы SAP, таблицы из пула, кластеризованной таблицы и представления.
Копирование данных с использованием обычной проверки подлинности или защищенного сетевого подключения (SNC), если установлен SNC.
Подключение к серверу приложений SAP или серверу сообщений SAP.
Извлечение данных через пользовательский или стандартный RFC.
Дополнительные сведения о SNC см. в статье "Начало работы с SAP SNC для интеграции RFC" — блог SAP.
Версия 7.01 или более поздняя относится к версии SAP NetWeaver, а не к версии SAP ECC. Например, SAP ECC 6.0 EHP 7 обычно имеет версию NetWeaver >=7.4. Если вы не уверены в версии вашей системы SAP, выполните следующие действия, чтобы подтвердить её.
- С помощью графического интерфейса SAP подключитесь к системе SAP.
- Выберите Система ->Состояние.
- Проверьте версию SAP_BASIS и убедитесь, что она равна 701 или больше.
Предварительные условия
Чтобы использовать данный соединитель таблиц SAP, выполните следующие действия.
Настройте локальную среду выполнения интеграции (версии 3.17 или более поздней). Дополнительные сведения см. в разделе Создание и настройка локальной среды выполнения интеграции.
Загрузите 64-разрядную версию соединителя SAP для Microsoft .NET 3.0 с веб-сайта SAP и установите ее на машине, где установлена локальная среда выполнения интеграции. Во время установки убедитесь, что в окне Необязательные шаги установки выбран параметр Установить сборки в глобальный кэш сборок.
Пользователь SAP, используемый в соединителе таблиц SAP, должен иметь следующие разрешения:
- Авторизация на использование пунктов назначения удаленного вызова функций (RFC).
- Разрешения на выполнение действия для объекта авторизации S_SDSAUTH. Большинство объектов авторизации описано в примечании SAP 460089. Некоторые RFC являются обязательными для базового соединителя NCo, например RFC_FUNCTION_SEARCH.
Начало работы
Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы для таблицы SAP с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу для таблицы SAP с помощью пользовательского интерфейса на портале Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Найдите SAP и выберите коннектор таблиц SAP.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
В следующих разделах содержатся сведения о свойствах, которые используются для определения сущностей, относящихся к соединителю таблицы SAP.
Свойства связанной службы
Следующие свойства поддерживаются для связанной службы SAP BW Open Hub:
Свойство | Описание: | Обязательное поле |
---|---|---|
type |
Свойство type должно иметь значение SapTable . |
Да |
server |
Имя сервера, на котором расположен экземпляр SAP. Используйте для подключения к серверу приложений SAP. |
Нет |
systemNumber |
Номер системы SAP. Используйте для подключения к серверу приложений SAP. Влияет на номер ПОРТА, используемый при взаимодействии с таблицей SAP. Допустимые значения: двузначное десятичное число, представленное в виде строки. |
Нет |
messageServer |
Имя узла сервера сообщений SAP. Используйте для подключения к серверу сообщений SAP. |
Нет |
messageServerService |
Имя службы или номер порта сервера сообщений. Используйте для подключения к серверу сообщений SAP. |
Нет |
systemId |
Идентификатор системы SAP, в которой находится таблица. Используйте для подключения к серверу сообщений SAP. |
Нет |
logonGroup |
Группа входа для системы SAP. Используйте для подключения к серверу сообщений SAP. |
Нет |
clientId |
Идентификатор клиента в системе SAP. Допустимые значения: трехзначное десятичное число, представленное в виде строки. |
Да |
language |
Язык, используемый в системе SAP. Значение по умолчанию: EN . |
Нет |
userName |
Имя пользователя, получающего доступ к серверу SAP. | Да |
password |
Пароль пользователя. Присвойте этому полю метку типа SecureString для безопасного хранения или добавьте ссылку на секрет, хранящийся в Azure Key Vault. |
Да |
sncMode |
Индикатор активации SNC для доступа к серверу SAP, на котором расположена таблица. Используйте в том случае, если нужно использовать SNC для подключения к серверу SAP. Допустимые значения: 0 (Выкл., по умолчанию) или 1 (Вкл.). |
Нет |
sncMyName |
Имя SNC инициатора для доступа к серверу SAP, на котором расположена таблица. Действует, если включен sncMode . |
Нет |
sncPartnerName |
Имя SNC партнера по коммуникации для доступа к серверу SAP, на котором расположена таблица. Действует, если включен sncMode . |
Нет |
sncLibraryPath |
Внешняя библиотека безопасности продукта для доступа к серверу SAP, на котором расположена таблица. Действует, если включен sncMode . |
Нет |
sncQop |
Уровень качества защиты SNC, который необходимо применить. Действует, если включен sncMode . Допустимые значения: 1 (проверка подлинности), 2 (целостность), 3 (конфиденциальность), 8 (по умолчанию), 9 (максимум). |
Нет |
connectVia |
Среда выполнения интеграции, используемая для подключения к хранилищу данных. Требуется среда выполнения интеграции локального размещения, как упоминалось ранее в разделе Предварительные требования. | Да |
Пример 1. Подключение к серверу приложений SAP
{
"name": "SapTableLinkedService",
"properties": {
"type": "SapTable",
"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"
}
}
}
Пример 2. Подключение к серверу сообщений SAP
{
"name": "SapTableLinkedService",
"properties": {
"type": "SapTable",
"typeProperties": {
"messageServer": "<message server name>",
"messageServerService": "<service name or port>",
"systemId": "<system ID>",
"logonGroup": "<logon group>",
"clientId": "<client ID>",
"userName": "<SAP user>",
"password": {
"type": "SecureString",
"value": "<Password for SAP user>"
}
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример 3. Подключение с использованием SNC
{
"name": "SapTableLinkedService",
"properties": {
"type": "SapTable",
"typeProperties": {
"server": "<server name>",
"systemNumber": "<system number>",
"clientId": "<client ID>",
"userName": "<SAP user>",
"password": {
"type": "SecureString",
"value": "<Password for SAP user>"
},
"sncMode": 1,
"sncMyName": "<SNC myname>",
"sncPartnerName": "<SNC partner name>",
"sncLibraryPath": "<SNC library path>",
"sncQop": "8"
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Дополнительные сведения о SNC см. в статье "Начало работы с SAP SNC для интеграции RFC" — блог SAP.
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в разделе Наборы данных. Следующий раздел содержит список свойств, поддерживаемых для набора данных таблицы SAP.
Для копирования данных из связанной службы SAP BW Open Hub и в нее, поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
type |
Свойство type должно иметь значение SapTableResource . |
Да |
tableName |
Имя таблицы SAP, из которой копируются данные. | Да |
Пример
{
"name": "SAPTableDataset",
"properties": {
"type": "SapTableResource",
"typeProperties": {
"tableName": "<SAP table name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<SAP table linked service name>",
"type": "LinkedServiceReference"
}
}
}
Свойства действия копирования
Полный список разделов и свойств, доступных для определения действий, см. в разделе Конвейеры. Следующий раздел содержит список свойств, поддерживаемых источниками-таблицами SAP.
Таблица SAP в качестве источника
Для копирования данных из таблицы SAP поддерживаются следующие свойства.
Свойство | Описание: | Обязательное поле |
---|---|---|
type |
Свойство type должно иметь значение SapTableSource . |
Да |
rowCount |
Количество строк для извлечения. | Нет |
rfcTableFields |
Поля (столбцы) для копирования из таблицы SAP. Например, column0, column1 . |
Нет |
rfcTableOptions |
Параметры для фильтрации строк в таблице SAP. Например, COLUMN0 EQ 'SOMEVALUE' . См. также таблицу операторов запросов SAP далее в этой статье. |
Нет |
customRfcReadTableFunctionModule |
Настроенный функциональный модуль RFC, который можно использовать для чтения данных из таблицы SAP. Пользовательский модуль функции RFC поможет определить, каким образом данные извлекаются из системы SAP и возвращаются в службу. В пользовательском модуле функции должен быть реализован интерфейс (импорт, экспорт, таблицы), подобный интерфейсу /SAPDS/RFC_READ_TABLE2 , который используется службой по умолчанию. |
Нет |
partitionOption |
Механизм секционирования для чтения из таблицы SAP. Поддерживаются следующие варианты:
|
Нет |
partitionColumnName |
Имя столбца, используемого для секционирования данных. | Нет |
partitionUpperBound |
Максимальное значение столбца, указанного в partitionColumnName , будет использоваться для продолжения секционирования. |
Нет |
partitionLowerBound |
Минимальное значение столбца, указанного в partitionColumnName , будет использоваться для продолжения секционирования. (Примечание. partitionLowerBound не может иметь значение "0", если параметр секционирования имеет значение PartitionOnInt ) |
Нет |
maxPartitionsNumber |
Максимальное количество секций, на которые разделяются данные. Значение по умолчанию равно 1. | Нет |
sapDataColumnDelimiter |
Символ, используемый как разделитель, передается в SAP RFC для разделения выходных данных. | Нет |
Совет
Если таблица SAP содержит большой объем данных, например несколько миллиардов строк, используйте partitionOption
и partitionSetting
для разделения данных на более мелкие секции. В этом случае данные считываются для каждой секции, и каждый раздел данных извлекается с сервера SAP одним вызовом RFC.
Приняв в качестве примера partitionOption
в значении partitionOnInt
, количество строк в каждой из секций вычисляется по следующей формуле: (всего строк, попадающих в диапазон от partitionUpperBound
до partitionLowerBound
)/ maxPartitionsNumber
.
Чтобы секции данных загружались параллельно для ускорения копирования, степень параллелизма определяется параметром parallelCopies
действия копирования. Например, если задать для parallelCopies
значение 4, служба одновременно генерирует и запускает четыре запроса на основе указанного вами параметра и настроек раздела, и каждый запрос извлекает часть данных из таблицы SAP. Настоятельно рекомендуется делать maxPartitionsNumber
степенью значения свойства parallelCopies
. При копировании данных в файловое хранилище данных также рекомендуется записывать в папку в виде нескольких файлов (только указать имя папки), в этом случае производительность лучше, чем запись в один файл.
Совет
BASXML
включен по умолчанию для этого соединителя таблиц SAP в службе.
В rfcTableOptions
можно использовать следующие стандартные операторы запросов SAP для фильтрации строк:
Оператор | Описание: |
---|---|
EQ |
Равняется |
NE |
Не равно |
LT |
Меньше |
LE |
Меньше или равно |
GT |
Больше |
GE |
Больше или равно |
IN |
Как в TABCLASS IN ('TRANSP', 'INTTAB') |
LIKE |
Как в LIKE 'Emma%' |
Пример
"activities":[
{
"name": "CopyFromSAPTable",
"type": "Copy",
"inputs": [
{
"referenceName": "<SAP table input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SapTableSource",
"partitionOption": "PartitionOnInt",
"partitionSettings": {
"partitionColumnName": "<partition column name>",
"partitionUpperBound": "2000",
"partitionLowerBound": "1",
"maxPartitionsNumber": 500
}
},
"sink": {
"type": "<sink type>"
},
"parallelCopies": 4
}
}
]
Соединение таблиц SAP
В настоящее время соединитель таблиц SAP поддерживает только одну таблицу с модулем функции по умолчанию. Чтобы соединить данные из нескольких таблиц, можно использовать свойство customRfcReadTableFunctionModule в соединителе таблицы SAP, как описано ниже.
- Напишите пользовательский модуль функции, принимающий запрос в OPTIONS и применяющий собственную логику для извлечения данных.
- В поле "Пользовательский модуль функции" введите имя модуля пользовательской функции.
- В параметре "Параметры таблицы RFC" укажите команду объединения таблиц, которую нужно передать в модуль функции через OPTIONS, например "
<TABLE1>
INNER JOIN<TABLE2>
ON COLUMN0".
Ниже приведен пример:
Совет
Можно также рассмотреть возможность агрегирования объединенных данных во VIEW, поддерживаемых соединителем таблиц SAP. Можно также попробовать извлечь связанные таблицы для подключения к Azure (например, службе хранилища Azure, Базе данных SQL Azure), а затем с помощью Потока данных выполнять их дальнейшее соединение и фильтрацию.
Создание пользовательского функционального модуля
В настоящее время для таблиц SAP поддерживается свойство customRfcReadTableFunctionModule в источнике копирования, которое позволяет использовать собственную логику и обработку данных.
В качестве быстрого руководства ниже приведены некоторые требования для начала работы с модулем пользовательских функций.
Определение:
Экспортируйте данные в одну из следующих таблиц:
Ниже приведены иллюстрации работы соединителя таблиц SAP с настраиваемым модулем функции.
Создайте подключение к серверу SAP через SAP NCO.
Вызовите модуль настраиваемой функции с набором параметров, как показано ниже:
- QUERY_TABLE: имя таблицы, заданное в наборе данных таблицы SAP;
- Delimiter: разделитель, который вы задали в источнике таблицы SAP;
- ROWCOUNT/Option/Fields: счетчик строк/параметр агрегирования/поля, заданные в источнике таблицы.
Получите результат и выполните синтаксический разбор данных следующими способами:
Разберите значение в таблице Fields, чтобы получить схемы.
Получите значения из выходной таблицы, чтобы узнать, в какой таблице содержатся эти значения.
Получите значения из OUT_TABLE, выполните синтаксический анализ данных и затем запишите их в накопитель.
Сопоставление типов данных для таблиц SAP
При копировании данных из таблицы SAP используются следующие сопоставления типов данных таблиц SAP с промежуточными типами данных в службе. Дополнительные сведения о том, как действие копирования сопоставляет исходную схему и тип данных с приемником, см. в статье Сопоставление схем и типов данных в действии копирования.
Тип ABAP в SAP | Промежуточный служебный тип данных |
---|---|
C (Строка) |
String |
I (Целое число) |
Int32 |
F (Поплавок) |
Double |
D (Дата) |
String |
T (Время) |
String |
P (упакованный BCD, валюта, десятичный, количество) |
Decimal |
N (Числовое) |
String |
X (Бинарные и необработанные) |
String |
Свойства действия поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Связанный контент
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия Copy, приведен в таблице Поддерживаемые хранилища данных.