Copiar dados de uma tabela SAP usando Azure Data FactoryCopy data from an SAP table by using Azure Data Factory
Azure Data Factory
Azure Synapse Analytics
Este artigo descreve como usar a atividade de cópia em Azure Data Factory para copiar dados de uma tabela SAP.This article outlines how to use the copy activity in Azure Data Factory to copy data from an SAP table. Para obter mais informações, confira Visão geral da atividade de cópia.For more information, see Copy activity overview.
Dica
Para aprender o suporte geral do ADF no cenário de integração de dados do SAP, consulte integração de dados SAP usando Azure data Factory White Paper com introdução detalhada sobre cada conector SAP, análise e diretrizes.To learn ADF's overall support on SAP data integration scenario, see SAP data integration using Azure Data Factory whitepaper with detailed introduction on each SAP connector, comparsion and guidance.
Funcionalidades com suporteSupported capabilities
Há suporte para este conector de tabela SAP para as seguintes atividades:This SAP table connector is supported for the following activities:
- Atividade de cópia com matriz de fonte/coletor com suporteCopy activity with supported source/sink matrix
- Atividade de pesquisaLookup activity
Você pode copiar dados de uma tabela SAP para qualquer armazenamento de dados de coletor com suporte.You can copy data from an SAP table to any supported sink data store. Para obter uma lista dos armazenamentos de dados com suporte como fontes ou coletores pela atividade de cópia, consulte a tabela armazenamentos de dados com suporte .For a list of the data stores that are supported as sources or sinks by the copy activity, see the Supported data stores table.
Especificamente, esse conector de tabela SAP dá suporte a:Specifically, this SAP table connector supports:
Copiando dados de uma tabela SAP em:Copying data from an SAP table in:
- Componente central SAP ERP (SAP ECC) versão 7, 1 ou posterior (em uma pilha recente de pacotes de suporte SAP lançada após 2015).SAP ERP Central Component (SAP ECC) version 7.01 or later (in a recent SAP Support Package Stack released after 2015).
- SAP Business Warehouse (SAP BW) versão 7, 1 ou posterior (em uma pilha recente de pacotes de suporte SAP lançada após 2015).SAP Business Warehouse (SAP BW) version 7.01 or later (in a recent SAP Support Package Stack released after 2015).
- SAP S/4HANA.SAP S/4HANA.
- Outros produtos no SAP Business Suite versão 7, 1 ou posterior (em uma pilha recente do pacote de suporte SAP lançado após 2015).Other products in SAP Business Suite version 7.01 or later (in a recent SAP Support Package Stack released after 2015).
Copiar dados de uma tabela transparente do SAP, uma tabela em pool, uma tabela clusterizada e uma exibição.Copying data from both an SAP transparent table, a pooled table, a clustered table, and a view.
Copiar dados usando a autenticação básica ou a SNC (comunicações de rede segura) se a SNC estiver configurada.Copying data by using basic authentication or Secure Network Communications (SNC), if SNC is configured.
Conectando-se a um servidor de aplicativos SAP ou servidor de mensagens SAP.Connecting to an SAP application server or SAP message server.
Recuperando dados por meio da RFC padrão ou personalizada.Retrieving data via default or custom RFC.
A versão 7, 1 ou posterior refere-se à versão do SAP NetWeaver em vez da versão do SAP ECC.The version 7.01 or later refers to SAP NetWeaver version instead of SAP ECC version. Por exemplo, o SAP ECC 6,0 EHP 7 em geral tem a versão NetWeaver >= 7,4.For example, SAP ECC 6.0 EHP 7 in general has NetWeaver version >=7.4. Caso você não tenha certeza sobre o seu ambiente, aqui estão as etapas para confirmar a versão do seu sistema SAP:In case you are unsure about your environment, here are the steps to confirm the version from your SAP system:
- Use a GUI do SAP para se conectar ao sistema SAP.Use SAP GUI to connect to the SAP System.
- Vá para System -> status do sistema.Go to System -> Status.
- Verifique o lançamento do SAP_BASIS, verifique se ele é igual ou maior que 701.Check the release of the SAP_BASIS, ensure it is equal to or larger than 701.
Pré-requisitosPrerequisites
Para usar esse conector de tabela SAP, você precisa:To use this SAP table connector, you need to:
Configure um tempo de execução de integração auto-hospedado (versão 3,17 ou posterior).Set up a self-hosted integration runtime (version 3.17 or later). Para obter mais informações, consulte criar e configurar um tempo de execução de integração auto-hospedado.For more information, see Create and configure a self-hosted integration runtime.
Baixe o conector SAP de 64 bits para Microsoft .NET 3,0 do site da SAP e instale-o no computador do Integration Runtime de hospedagem interna.Download the 64-bit SAP Connector for Microsoft .NET 3.0 from SAP's website, and install it on the self-hosted integration runtime machine. Durante a instalação, certifique-se de selecionar a opção instalar assemblies no GAC na janela etapas de instalação opcionais .During installation, make sure you select the Install Assemblies to GAC option in the Optional setup steps window.
O usuário SAP que está sendo usado no conector de tabela do SAP Data Factory deve ter as seguintes permissões:The SAP user who's being used in the Data Factory SAP table connector must have the following permissions:
- Autorização para usar destinos de chamada de função remota (RFC).Authorization for using Remote Function Call (RFC) destinations.
- Permissões para a atividade executar do objeto de autorização S_SDSAUTH.Permissions to the Execute activity of the S_SDSAUTH authorization object.
IntroduçãoGet started
Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:
- A ferramenta Copiar DadosThe Copy Data tool
- O portal do AzureThe Azure portal
- O SDK do .NETThe .NET SDK
- O SDK do PythonThe Python SDK
- PowerShell do AzureAzure PowerShell
- A API RESTThe REST API
- O modelo do Azure Resource ManagerThe Azure Resource Manager template
As seções a seguir fornecem detalhes sobre as propriedades que são usadas para definir as entidades de Data Factory específicas para o conector de tabela do SAP.The following sections provide details about properties that are used to define the Data Factory entities specific to the SAP table connector.
Propriedades do serviço vinculadoLinked service properties
As propriedades a seguir têm suporte para o serviço vinculado de Hub aberto do SAP BW:The following properties are supported for the SAP BW Open Hub linked service:
PropriedadeProperty | DescriçãoDescription | ObrigatórioRequired |
---|---|---|
type |
A propriedade type precisa ser definida como SapTable .The type property must be set to SapTable . |
SimYes |
server |
O nome do servidor no qual a instância SAP está localizada.The name of the server on which the SAP instance is located. Use para se conectar a um servidor de aplicativos SAP.Use to connect to an SAP application server. |
NãoNo |
systemNumber |
O número de sistema do sistema SAP.The system number of the SAP system. Use para se conectar a um servidor de aplicativos SAP.Use to connect to an SAP application server. Valor permitido: um número decimal de dois dígitos representado como uma cadeia de caracteres.Allowed value: A two-digit decimal number represented as a string. |
NãoNo |
messageServer |
O nome do host do servidor de mensagens SAP.The host name of the SAP message server. Use para se conectar a um servidor de mensagens SAP.Use to connect to an SAP message server. |
NãoNo |
messageServerService |
O nome do serviço ou o número da porta do servidor de mensagens.The service name or port number of the message server. Use para se conectar a um servidor de mensagens SAP.Use to connect to an SAP message server. |
NãoNo |
systemId |
A ID do sistema SAP em que a tabela está localizada.The ID of the SAP system where the table is located. Use para se conectar a um servidor de mensagens SAP.Use to connect to an SAP message server. |
NãoNo |
logonGroup |
O grupo de logon do sistema SAP.The logon group for the SAP system. Use para se conectar a um servidor de mensagens SAP.Use to connect to an SAP message server. |
NãoNo |
clientId |
A ID do cliente no sistema SAP.The ID of the client in the SAP system. Valor permitido: um número decimal de três dígitos representado como uma cadeia de caracteres.Allowed value: A three-digit decimal number represented as a string. |
SimYes |
language |
O idioma que o sistema SAP usa.The language that the SAP system uses. O valor padrão é EN .Default value is EN . |
NãoNo |
userName |
O nome do usuário que tem acesso ao servidor SAP.The name of the user who has access to the SAP server. | SimYes |
password |
A senha do usuário.The password for the user. Marque este campo com o SecureString tipo para armazená-lo com segurança no data Factory ou faça referência a um segredo armazenado em Azure Key Vault.Mark this field with the SecureString type to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. |
SimYes |
sncMode |
O indicador de ativação da SNC para acessar o servidor SAP onde a tabela está localizada.The SNC activation indicator to access the SAP server where the table is located. Use se você quiser usar o SNC para se conectar ao servidor SAP.Use if you want to use SNC to connect to the SAP server. Os valores permitidos são 0 (off, o padrão) ou 1 (on).Allowed values are 0 (off, the default) or 1 (on). |
NãoNo |
sncMyName |
O nome do SNC do iniciador para acessar o servidor SAP onde a tabela está localizada.The initiator's SNC name to access the SAP server where the table is located. Aplica-se quando sncMode está ativado.Applies when sncMode is on. |
NãoNo |
sncPartnerName |
O nome do SNC do parceiro de comunicação para acessar o servidor SAP onde a tabela está localizada.The communication partner's SNC name to access the SAP server where the table is located. Aplica-se quando sncMode está ativado.Applies when sncMode is on. |
NãoNo |
sncLibraryPath |
A biblioteca do produto de segurança externa para acessar o servidor SAP onde a tabela está localizada.The external security product's library to access the SAP server where the table is located. Aplica-se quando sncMode está ativado.Applies when sncMode is on. |
NãoNo |
sncQop |
O nível de qualidade de proteção da SNC a ser aplicado.The SNC Quality of Protection level to apply. Aplica-se quando sncMode está ativado.Applies when sncMode is On. Os valores permitidos são 1 (autenticação), 2 (integridade), 3 (privacidade), 8 (padrão), 9 (máximo).Allowed values are 1 (Authentication), 2 (Integrity), 3 (Privacy), 8 (Default), 9 (Maximum). |
NãoNo |
connectVia |
O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Um tempo de execução de integração auto-hospedado é necessário, conforme mencionado anteriormente em pré-requisitos.A self-hosted integration runtime is required, as mentioned earlier in Prerequisites. | SimYes |
Exemplo 1: conectar-se a um servidor de aplicativos SAPExample 1: Connect to an SAP application server
{
"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"
}
}
}
Exemplo 2: conectar-se a um servidor de mensagens SAPExample 2: Connect to an SAP message server
{
"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"
}
}
}
Exemplo 3: conectar usando o SNCExample 3: Connect by using 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"
}
}
}
Propriedades do conjunto de dadosDataset properties
Para obter uma lista completa das seções e propriedades para definir conjuntos de os, consulte DataSets.For a full list of the sections and properties for defining datasets, see Datasets. A seção a seguir fornece uma lista das propriedades compatíveis pelo conjunto de dados da tabela do SAP.The following section provides a list of the properties supported by the SAP table dataset.
Para copiar dados de e para o SAP BW serviço vinculado de Hub aberto, há suporte para as seguintes propriedades:To copy data from and to the SAP BW Open Hub linked service, the following properties are supported:
PropriedadeProperty | DescriçãoDescription | ObrigatórioRequired |
---|---|---|
type |
A propriedade type precisa ser definida como SapTableResource .The type property must be set to SapTableResource . |
SimYes |
tableName |
O nome da tabela SAP da qual copiar dados.The name of the SAP table to copy data from. | SimYes |
ExemploExample
{
"name": "SAPTableDataset",
"properties": {
"type": "SapTableResource",
"typeProperties": {
"tableName": "<SAP table name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<SAP table linked service name>",
"type": "LinkedServiceReference"
}
}
}
Propriedades da atividade de cópiaCopy activity properties
Para obter uma lista completa das seções e propriedades para definir atividades, consulte pipelines.For a full list of the sections and properties for defining activities, see Pipelines. A seção a seguir fornece uma lista das propriedades com suporte pela origem da tabela do SAP.The following section provides a list of the properties supported by the SAP table source.
Tabela SAP como fonteSAP table as source
Para copiar dados de uma tabela SAP, há suporte para as seguintes propriedades:To copy data from an SAP table, the following properties are supported:
PropriedadeProperty | DescriçãoDescription | ObrigatórioRequired |
---|---|---|
type |
A propriedade type precisa ser definida como SapTableSource .The type property must be set to SapTableSource . |
SimYes |
rowCount |
O número de linhas a serem recuperadas.The number of rows to be retrieved. | NãoNo |
rfcTableFields |
Os campos (colunas) a serem copiados da tabela SAP.The fields (columns) to copy from the SAP table. Por exemplo, column0, column1 .For example, column0, column1 . |
NãoNo |
rfcTableOptions |
As opções para filtrar as linhas em uma tabela SAP.The options to filter the rows in an SAP table. Por exemplo, COLUMN0 EQ 'SOMEVALUE' .For example, COLUMN0 EQ 'SOMEVALUE' . Consulte também a tabela do operador de consulta SAP mais adiante neste artigo.See also the SAP query operator table later in this article. |
NãoNo |
customRfcReadTableFunctionModule |
Um módulo de função RFC personalizado que pode ser usado para ler dados de uma tabela SAP.A custom RFC function module that can be used to read data from an SAP table. Você pode usar um módulo de função RFC personalizado para definir como os dados são recuperados do seu sistema SAP e retornados para Data Factory.You can use a custom RFC function module to define how the data is retrieved from your SAP system and returned to Data Factory. O módulo de função personalizada deve ter uma interface implementada (importação, exportação, tabelas) semelhante a /SAPDS/RFC_READ_TABLE2 , que é a interface padrão usada pelo data Factory.The custom function module must have an interface implemented (import, export, tables) that's similar to /SAPDS/RFC_READ_TABLE2 , which is the default interface used by Data Factory.Data FactoryData Factory |
NãoNo |
partitionOption |
O mecanismo de partição para ler de uma tabela SAP.The partition mechanism to read from an SAP table. As opções compatíveis incluem:The supported options include:
|
NãoNo |
partitionColumnName |
O nome da coluna usada para particionar os dados.The name of the column used to partition the data. | NãoNo |
partitionUpperBound |
O valor máximo da coluna especificada no partitionColumnName que será usado para continuar com o particionamento.The maximum value of the column specified in partitionColumnName that will be used to continue with partitioning. |
NãoNo |
partitionLowerBound |
O valor mínimo da coluna especificada no partitionColumnName que será usado para continuar com o particionamento.The minimum value of the column specified in partitionColumnName that will be used to continue with partitioning. (Observação: partitionLowerBound não pode ser "0" quando a opção de partição é PartitionOnInt )(Note: partitionLowerBound cannot be "0" when partition option is PartitionOnInt ) |
NãoNo |
maxPartitionsNumber |
O número máximo de partições para dividir os dados.The maximum number of partitions to split the data into. | NãoNo |
sapDataColumnDelimiter |
O caractere único que é usado como delimitador passado para SAP RFC para dividir os dados de saída.The single character that is used as delimiter passed to SAP RFC to split the output data. | NãoNo |
Dica
Se sua tabela SAP tiver um grande volume de dados, como vários bilhões de linhas, use partitionOption
e partitionSetting
para dividir os dados em partições menores.If your SAP table has a large volume of data, such as several billion rows, use partitionOption
and partitionSetting
to split the data into smaller partitions. Nesse caso, os dados são lidos por partição e cada partição de dados é recuperada do servidor SAP por meio de uma única chamada RFC.In this case, the data is read per partition, and each data partition is retrieved from your SAP server via a single RFC call.
partitionOption
Como partitionOnInt
exemplo, o número de linhas em cada partição é calculado com esta fórmula: (total de linhas caindo entre partitionUpperBound
e partitionLowerBound
)/ maxPartitionsNumber
.Taking partitionOption
as partitionOnInt
as an example, the number of rows in each partition is calculated with this formula: (total rows falling between partitionUpperBound
and partitionLowerBound
)/maxPartitionsNumber
.
Para carregar partições de dados em paralelo para acelerar a cópia, o grau paralelo é controlado pela parallelCopies
configuração na atividade de cópia.To load data partitions in parallel to speed up copy, the parallel degree is controlled by the parallelCopies
setting on the copy activity. Por exemplo, se você definir parallelCopies
como quatro, data Factory gera e executa quatro consultas simultaneamente com base na opção de partição especificada e nas configurações, e cada consulta recupera uma parte dos dados de sua tabela SAP.For example, if you set parallelCopies
to four, Data Factory concurrently generates and runs four queries based on your specified partition option and settings, and each query retrieves a portion of data from your SAP table. É altamente recomendável fazer maxPartitionsNumber
um múltiplo do valor da parallelCopies
propriedade.We strongly recommend making maxPartitionsNumber
a multiple of the value of the parallelCopies
property. Ao copiar dados para o armazenamento de dados baseado em arquivo, ele também é recriado para gravar em uma pasta como vários arquivos (apenas especifique o nome da pasta); nesse caso, o desempenho é melhor do que gravar em um único arquivo.When copying data into file-based data store, it's also recommanded to write to a folder as multiple files (only specify folder name), in which case the performance is better than writing to a single file.
No rfcTableOptions
, você pode usar os seguintes operadores de consulta SAP comuns para filtrar as linhas:In rfcTableOptions
, you can use the following common SAP query operators to filter the rows:
OperadorOperator | DescriçãoDescription |
---|---|
EQ |
Igual aEqual to |
NE |
É diferente deNot equal to |
LT |
Menor queLess than |
LE |
Menor que ou igual aLess than or equal to |
GT |
Maior queGreater than |
GE |
Maior que ou igual aGreater than or equal to |
IN |
Como em TABCLASS IN ('TRANSP', 'INTTAB') As in TABCLASS IN ('TRANSP', 'INTTAB') |
LIKE |
Como em LIKE 'Emma%' As in LIKE 'Emma%' |
ExemploExample
"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
}
}
]
Mapeamentos de tipo de dados para uma tabela SAPData type mappings for an SAP table
Quando você está copiando dados de uma tabela SAP, os seguintes mapeamentos são usados dos tipos de dados de tabela SAP para os tipos de dados provisórios Azure Data Factory.When you're copying data from an SAP table, the following mappings are used from the SAP table data types to the Azure Data Factory interim data types. Para saber mais sobre como a atividade de cópia mapeia o tipo de dados e esquema de origem para o coletor, consulte Mapeamentos de tipo de dados e esquema.To learn how the copy activity maps the source schema and data type to the sink, see Schema and data type mappings.
Tipo SAP ABAPSAP ABAP Type | Tipo de dados provisório do Data FactoryData Factory interim data type |
---|---|
C StringsC (String) |
String |
I ValoresI (Integer) |
Int32 |
F BarraF (Float) |
Double |
D DateD (Date) |
String |
T MomentoT (Time) |
String |
P (BCD empacotado, moeda, Decimal, Qtd)P (BCD Packed, Currency, Decimal, Qty) |
Decimal |
N NumericN (Numeric) |
String |
X (Binary e RAW)X (Binary and Raw) |
String |
Pesquisar propriedades de atividadeLookup activity properties
Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.To learn details about the properties, check Lookup activity.
Próximas etapasNext steps
Para obter uma lista dos armazenamentos de dados compatíveis como fontes e coletores com a atividade de cópia no Azure Data Factory, confira Armazenamentos de dados compatíveis.For a list of the data stores supported as sources and sinks by the copy activity in Azure Data Factory, see Supported data stores.