Copie dados do SAP Business Warehouse via Open Hub usando o Azure Data Factory ou o Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve como usar a Atividade de Cópia no Azure Data Factory e os pipelines do Synapse Analytics para copiar dados de um SAP Business Warehouse (BW) via Open Hub. Ele se baseia no artigo de visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.
Gorjeta
Para saber mais sobre o suporte geral para o cenário de integração de dados SAP, consulte o whitepaper de integração de dados SAP com introdução detalhada sobre cada conector, comparação e orientação SAP.
Capacidades suportadas
Este conector SAP Business Warehouse Open Hub é suportado para os seguintes recursos:
Capacidades suportadas | IR |
---|---|
Atividade de cópia (fonte/-) | (2) |
Atividade de Pesquisa | (2) |
(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado
Para obter uma lista de armazenamentos de dados suportados como fontes/coletores pela atividade de cópia, consulte a tabela Armazenamentos de dados suportados.
Especificamente, este conector SAP Business Warehouse Open Hub suporta:
- SAP Business Warehouse versão 7.01 ou superior (em uma pilha recente de pacotes de suporte SAP lançada após o ano de 2015). O SAP BW/4HANA não é suportado por este conector.
- Cópia de dados através da tabela local Open Hub Destination, que por baixo pode ser DSO, InfoCube, MultiProvider, DataSource, etc.
- Cópia de dados usando autenticação básica.
- Conectando-se a um servidor de aplicativos SAP ou servidor de mensagens SAP.
- Recuperação de dados via RFC.
Integração SAP BW Open Hub
O SAP BW Open Hub Service é uma maneira eficiente de extrair dados do SAP BW. O diagrama a seguir mostra um dos fluxos típicos que os clientes têm em seu sistema SAP, caso em que os fluxos de dados do SAP ECC -> PSA -> DSO -> Cube.
O SAP BW Open Hub Destination (OHD) define o destino para o qual os dados SAP são retransmitidos. Todos os objetos suportados pelo SAP Data Transfer Process (DTP) podem ser usados como fontes de dados de hub aberto, por exemplo, DSO, InfoCube, DataSource, etc. O tipo Open Hub Destination - onde os dados retransmitidos são armazenados - pode ser tabelas de banco de dados (locais ou remotas) e arquivos simples. Este conector SAP BW Open Hub suporta a cópia de dados da tabela local OHD no BW. Caso você esteja usando outros tipos, você pode se conectar diretamente ao banco de dados ou sistema de arquivos usando outros conectores.
Fluxo de extração delta
O SAP BW Open Hub Connector oferece duas propriedades opcionais: excludeLastRequest
e baseRequestId
que podem ser usadas para lidar com a carga delta do Open Hub.
- excludeLastRequestId: se os registros da última solicitação devem ser excluídos. O valor predefinido é verdadeiro.
- baseRequestId: A ID da solicitação para carregamento delta. Uma vez definido, somente os dados com requestId maior que o valor dessa propriedade serão recuperados.
No geral, a extração do SAP InfoProviders consiste em duas etapas:
Processo de transferência de dados (DTP) do SAP BW Esta etapa copia os dados de um SAP BW InfoProvider para uma tabela do SAP BW Open Hub
Cópia de dados Nesta etapa, a tabela Open Hub é lida pelo conector
Na primeira etapa, um DTP é executado. Cada execução cria um novo ID de solicitação SAP. O ID da solicitação é armazenado na tabela Open Hub e, em seguida, é usado pelo conector para identificar o delta. As duas etapas são executadas de forma assíncrona: o DTP é acionado pelo SAP e a cópia de dados é acionada por meio do serviço.
Por padrão, o serviço não está lendo o delta mais recente da tabela Open Hub (a opção "excluir última solicitação" é true). Assim, os dados no serviço não estão 100% atualizados com os dados na tabela Open Hub (o último delta está faltando). Em troca, esse procedimento garante que nenhuma linha seja perdida causada pela extração assíncrona. Ele funciona bem mesmo quando o serviço está lendo a tabela Open Hub enquanto o DTP ainda está gravando na mesma tabela.
Normalmente, você armazena a ID máxima de solicitação copiada na última execução pelo serviço em um armazenamento de dados de preparo (como o Blob do Azure no diagrama acima). Portanto, a mesma solicitação não é lida uma segunda vez pelo serviço na execução subsequente. Enquanto isso, observe que os dados não são excluídos automaticamente da tabela Open Hub.
Para o tratamento delta adequado, não é permitido ter IDs de solicitação de DTPs diferentes na mesma tabela Open Hub. Portanto, você não deve criar mais de um DTP para cada Open Hub Destination (OHD). Ao precisar de extração completa e delta do mesmo InfoProvider, você deve criar dois OHDs para o mesmo InfoProvider.
Pré-requisitos
Para usar esse conector SAP Business Warehouse Open Hub, você precisa:
Configure um Self-hosted Integration Runtime com a versão 3.13 ou superior. Consulte o artigo Self-hosted Integration Runtime para obter detalhes.
Faça o download do SAP .NET Connector 3.0 de 64 bits do site da SAP e instale-o na máquina IR auto-hospedada. Ao instalar, na janela de etapas de configuração opcional, certifique-se de selecionar a opção Instalar assemblies para GAC , conforme mostrado na imagem a seguir.
O usuário SAP que está sendo usado no conector BW precisa ter as seguintes permissões:
- Autorização para RFC e SAP BW.
- Permissões para a atividade "Executar" do objeto de autorização "S_SDSAUTH".
Crie o tipo de destino do SAP Open Hub como tabela de banco de dados com a opção "Chave técnica" marcada. Também é recomendável deixar a opção Excluindo dados da tabela como desmarcada, embora não seja necessária. Use o DTP (executar ou integrar diretamente na cadeia de processos existente) para transferir dados do objeto de origem (como cubo) que você escolheu para a tabela de destino do hub aberto.
Introdução
Gorjeta
Para obter um passo a passo sobre como usar o conector SAP BW Open Hub, consulte Carregar dados do SAP Business Warehouse (BW).
Para executar a atividade Copiar com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- A ferramenta Copiar dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- Azure PowerShell
- A API REST
- O modelo do Azure Resource Manager
As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades específicas para o conector do SAP Business Warehouse Open Hub.
Propriedades do serviço vinculado
As seguintes propriedades são suportadas para o serviço vinculado SAP Business Warehouse Open Hub:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como: SapOpenHub | Sim |
servidor | Nome do servidor no qual a instância do SAP BW reside. | Sim |
número-sistema | Número do sistema SAP BW. Valor permitido: número decimal de dois dígitos representado como uma cadeia de caracteres. |
Sim |
messageServer | O nome do host do servidor de mensagens SAP. Use para se conectar a um servidor de mensagens SAP. |
Não |
messageServerService | O nome do serviço ou o número da porta do servidor de mensagens. Use para se conectar a um servidor de mensagens SAP. |
Não |
systemId | O ID do sistema SAP onde a tabela está localizada. Use para se conectar a um servidor de mensagens SAP. |
Não |
logonGroup | O grupo de logon para o sistema SAP. Use para se conectar a um servidor de mensagens SAP. |
Não |
clientId | ID do cliente no sistema SAP W. Valor permitido: número decimal de três dígitos representado como uma cadeia de caracteres. |
Sim |
idioma | Linguagem utilizada pelo sistema SAP. | Não (o valor padrão é EN) |
nome de utilizador | Nome do usuário que tem acesso ao servidor SAP. | Sim |
password | A palavra-passe do utilizador. Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. | Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Um tempo de execução de integração auto-hospedado é necessário, conforme mencionado em Pré-requisitos. | Sim |
Exemplo:
{
"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"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo Conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados do SAP BW Open Hub.
Para copiar dados de e para o SAP BW Open Hub, defina a propriedade type do conjunto de dados como SapOpenHubTable. As seguintes propriedades são suportadas.
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como SapOpenHubTable. | Sim |
openHubDestinationName | O nome do Open Hub Destination do qual copiar dados. | Sim |
Se você estava definindo excludeLastRequest
e baseRequestId
no conjunto de dados, ele ainda é suportado como está, enquanto você é sugerido para usar o novo modelo na fonte de atividade no futuro.
Exemplo:
{
"name": "SAPBWOpenHubDataset",
"properties": {
"type": "SapOpenHubTable",
"typeProperties": {
"openHubDestinationName": "<open hub destination name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<SAP BW Open Hub linked service name>",
"type": "LinkedServiceReference"
}
}
}
Propriedades da atividade Copy
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pelo código-fonte do SAP BW Open Hub.
SAP BW Open Hub como fonte
Para copiar dados do SAP BW Open Hub, as seguintes propriedades são suportadas na seção Copiar fonte de atividade:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type da fonte de atividade de cópia deve ser definida como SapOpenHubSource. | Sim |
excludeLastRequest | Se os registros da última solicitação devem ser excluídos. | Não (o padrão é true) |
baseRequestId | A ID da solicitação de carregamento delta. Uma vez definido, somente os dados com requestId maior que o valor dessa propriedade serão recuperados. | Não |
customRfcReadTableFunctionModule | Um módulo de função RFC personalizado que pode ser usado para ler dados de uma tabela SAP. 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 ao serviço. O módulo de função personalizado deve ter uma interface implementada (importação, exportação, tabelas) semelhante à /SAPDS/RFC_READ_TABLE2 , que é a interface padrão usada pelo serviço. |
Não |
sapDataColumnDelimiter | O único caractere usado como delimitador passou para o SAP RFC para dividir os dados de saída. | Não |
Gorjeta
Se sua tabela Open Hub contiver apenas os dados gerados por ID de solicitação única, por exemplo, você sempre carregará totalmente e substituirá os dados existentes na tabela, ou só executará o DTP uma vez para teste, lembre-se de desmarcar a opção "excludeLastRequest" para copiar os dados.
Para acelerar o carregamento de dados, você pode definir parallelCopies
a atividade de cópia para carregar dados do SAP BW Open Hub em paralelo. Por exemplo, se você definir parallelCopies
como quatro, o serviço executará simultaneamente quatro chamadas RFC e cada chamada RFC recuperará uma parte dos dados da tabela do SAP BW Open Hub particionada pelo ID da solicitação DTP e pela ID do pacote. Isso se aplica quando o número de ID de solicitação DTP exclusiva + ID do pacote é maior do que o valor de parallelCopies
. Ao copiar dados para o armazenamento de dados baseado em arquivo, também é recomendável gravar em uma pasta como vários arquivos (especifique apenas o nome da pasta), caso em que o desempenho é melhor do que gravar em um único arquivo.
Exemplo:
"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
}
}
]
Mapeamento de tipo de dados para SAP BW Open Hub
Ao copiar dados do SAP BW Open Hub, os mapeamentos a seguir são usados de tipos de dados SAP BW para tipos de dados provisórios usados internamente no serviço. Consulte Mapeamentos de esquema e tipo de dados para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o coletor.
Tipo SAP ABAP | Tipo de dados de serviço provisório |
---|---|
C (String) | String |
I (inteiro) | Int32 |
F (Flutuador) | Duplo |
D (Data) | String |
T (Tempo) | String |
P (BCD embalado, moeda, decimal, qtd) | Decimal |
N (Numc) | String |
X (binário e bruto) | String |
Propriedades da atividade de pesquisa
Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.
Sugestões de resolução de problemas
Sintomas: Se você estiver executando o SAP BW no HANA e observar que apenas o subconjunto de dados é copiado usando a atividade de cópia (1 milhão de linhas), a possível causa é que você ativa a opção "Execução do SAP HANA" em seu DTP, caso em que o serviço só pode recuperar o primeiro lote de dados.
Resolução: desative a opção "SAP HANA Execution" no DTP, reprocesse os dados e tente executar a atividade de cópia novamente.
Conteúdos relacionados
Para obter uma lista de armazenamentos de dados suportados como fontes e coletores pela atividade de cópia, consulte Armazenamentos de dados suportados.