Copiar dados de uma tabela SAP usando Azure Data FactoryCopy data from an SAP table by using Azure Data Factory

APLICA-SE A: 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:

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:

  1. Use a GUI do SAP para se conectar ao sistema SAP.Use SAP GUI to connect to the SAP System.
  2. Vá para System -> status do sistema.Go to System -> Status.
  3. 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.
    Verificar SAP_BASIS

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.

    Instalar o conector do SAP para .NET

  • 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:

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:
  • None
  • PartitionOnInt (inteiro normal ou valores inteiros com preenchimento zero à esquerda, como 0000012345 )PartitionOnInt (normal integer or integer values with zero padding on the left, such as 0000012345)
  • PartitionOnCalendarYear (4 dígitos no formato "aaaa")PartitionOnCalendarYear (4 digits in the format "YYYY")
  • PartitionOnCalendarMonth (6 dígitos no formato "YYYYMM")PartitionOnCalendarMonth (6 digits in the format "YYYYMM")
  • PartitionOnCalendarDate (8 dígitos no formato "aaaammdd")PartitionOnCalendarDate (8 digits in the format "YYYYMMDD")
  • PartitionOntime (6 dígitos no formato "HHMMSS", como 235959 )PartitionOntime (6 digits in the format "HHMMSS", such as 235959)
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.

partitionOptionComo 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.