Copie dados do SAP Business Warehouse com 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 mostra como usar os pipelines do Azure Data Factory ou do Synapse Analytics para copiar dados do SAP Business Warehouse (BW) por meio do Open Hub para o Azure Data Lake Storage Gen2. Você pode usar um processo semelhante para copiar dados para outros armazenamentos de dados de coletor suportados.

Gorjeta

Para obter informações gerais sobre como copiar dados do SAP BW, incluindo integração do SAP BW Open Hub e fluxo de extração delta, consulte Copiar dados do SAP Business Warehouse via Open Hub usando o Azure Data Factory.

Pré-requisitos

  • Azure Data Factory ou espaço de trabalho Synapse: se você não tiver um, siga as etapas para criar um data factory ou criar um espaço de trabalho Synapse.

  • SAP BW Open Hub Destination (OHD) com o tipo de destino "Database Table": para criar um OHD ou verificar se o OHD está configurado corretamente para integração com o serviço, consulte a seção Configurações do SAP BW Open Hub Destination deste artigo.

  • O usuário do SAP BW precisa das seguintes permissões:

    • Autorização para chamadas de função remota (RFC) e SAP BW.
    • Permissões para a atividade "Executar" do objeto de autorização S_SDSAUTH .
  • Um tempo de execução de integração (IR) auto-hospedado com o SAP .NET connector 3.0. Siga estes passos de configuração:

    1. Instale e registre o tempo de execução de integração auto-hospedado, versão 3.13 ou posterior. (Esse processo é descrito mais adiante neste artigo.)

    2. Baixe o SAP Connector de 64 bits para Microsoft .NET 3.0 do site da SAP e instale-o no mesmo computador que o IR auto-hospedado. Durante a instalação, certifique-se de selecionar Instalar assemblies no GAC na caixa de diálogo Etapas de configuração opcionais, como mostra a imagem a seguir:

      Caixa de diálogo Configurar o SAP .NET Connector

Faça uma cópia completa do SAP BW Open Hub

No portal do Azure, vá para o seu serviço. Selecione Abrir no bloco Abrir o Azure Data Factory Studio ou Abrir Synapse Studio para abrir a interface do usuário do serviço em uma guia separada.

  1. Na página inicial, selecione Ingest para abrir a ferramenta Copiar dados.

  2. Na página Propriedades, escolha Tarefa de cópia interna em Tipo de tarefa, escolha Executar uma vez agora em Cadência da tarefa ou agenda de tarefas e selecione Avançar.

  3. Na página Armazenamento de dados de origem, selecione + Nova conexão. Selecione SAP BW Open Hub na galeria de conectores e, em seguida, selecione Continuar. Para filtrar os conectores, você pode digitar SAP na caixa de pesquisa.

  4. Na página Nova conexão (SAP BW Open Hub), siga estas etapas para criar uma nova conexão.

    1. Na lista Connect via integration runtime , selecione um IR auto-hospedado existente. Ou opte por criar um se ainda não tiver um.

      Para criar um novo RI auto-hospedado, selecione +Novo e, em seguida, selecione Auto-hospedado. Introduza um Nome e, em seguida, selecione Seguinte. Selecione Configuração expressa para instalar no computador atual ou siga as etapas de configuração manual fornecidas.

      Conforme mencionado em Pré-requisitos, certifique-se de ter o SAP Connector para Microsoft .NET 3.0 instalado no mesmo computador em que o IR auto-hospedado está sendo executado.

    2. Preencha o nome do servidor SAP BW, o número do sistema, o ID do cliente, o idioma (se diferente de EN), o nome de usuário e a senha.

    3. Selecione Testar conexão para validar as configurações e, em seguida, selecione Criar.

    Criar página de serviço vinculada ao SAP BW Open Hub

    1. Na página Armazenamento de dados de origem, selecione a conexão recém-criada no bloco Conexão.

    2. Na seção de seleção de destinos do Open Hub, procure os Destinos do Open Hub disponíveis no seu SAP BW. Você pode visualizar os dados em cada destino selecionando o botão de visualização no final de cada linha. Selecione o OHD do qual copiar dados e, em seguida, selecione Avançar.

    Captura de ecrã a mostrar a página 'Armazenamento de dados de origem'.

  5. Especifique um filtro, se precisar de um. Se o OHD contiver apenas dados de uma única execução de DTP (processo de transferência de dados) com um único ID de solicitação, ou se você tiver certeza de que o DTP foi concluído e quiser copiar os dados, desmarque a caixa de seleção Excluir última solicitação na seção Avançado. Você pode visualizar os dados selecionando o botão Visualizar dados .

    Saiba mais sobre essas configurações na seção Configurações de destino do SAP BW Open Hub deste artigo. Em seguida, selecione Seguinte.

    Configurar o filtro SAP BW Open Hub

  6. Na página Armazenamento de dados de destino, selecione + Nova conexão>Azure Data Lake Storage Gen2>Continue.

  7. Na página Nova conexão (Azure Data Lake Storage Gen2), siga estas etapas para criar uma conexão.

    1. Selecione sua conta compatível com o Data Lake Storage Gen2 na lista suspensa Nome .
    2. Selecione Criar para criar a ligação.

    Criar uma página de serviço vinculada do ADLS Gen2

  8. Na página Armazenamento de dados de destino, selecione a conexão recém-criada na seção Conexão e insira copyfromopenhub como o nome da pasta de saída. Em seguida, selecione Seguinte.

    Captura de ecrã a mostrar a página 'Armazenamento de dados de destino'.

  9. Na página Configuração de formato de arquivo, selecione Avançar para usar as configurações padrão.

    Especificar página de formato de coletor

  10. Na página Configurações, especifique um Nome da tarefa e expanda Avançado. Insira um valor para Grau de paralelismo de cópia, como 5, para carregar do SAP BW em paralelo. Em seguida, selecione Seguinte.

    Definir definições de cópia

  11. Na página Resumo , reveja as definições. Em seguida, selecione Seguinte.

    Captura de ecrã a mostrar a página Resumo.

  12. Na página Implantação, selecione Monitor para monitorar o pipeline.

  13. Observe que a guia Monitor no lado esquerdo da página é selecionada automaticamente. Você pode usar links na coluna Nome do pipeline na página Pipeline runs para exibir detalhes da atividade e executar novamente o pipeline.

  14. Para exibir as execuções de atividade associadas à execução do pipeline, selecione os links na coluna Nome do pipeline . Há apenas uma atividade (atividade copiar) no pipeline, pelo que só vai ver uma entrada. Para voltar para a exibição de execuções de pipeline, selecione o link Todas as execuções de pipeline na parte superior. Selecione Atualizar para atualizar a lista.

    Tela de monitoramento de atividades

  15. Para monitorar os detalhes de execução de cada atividade de cópia, selecione o link Detalhes , que é um ícone de óculos na mesma linha de cada atividade de cópia na visualização de monitoramento de atividades. Os detalhes disponíveis incluem o volume de dados copiado da origem para o coletor, a taxa de transferência de dados, as etapas e a duração da execução e as configurações usadas.

    Detalhes do monitoramento de atividades

  16. Para exibir o ID de solicitação máximo de cada atividade de cópia, volte para a exibição de monitoramento de atividades e selecione Saída na mesma linha de cada atividade de cópia.

    Tela de saída de atividade

    Visualização de detalhes de saída da atividade

Cópia incremental do SAP BW Open Hub

Gorjeta

Consulte Fluxo de extração delta do conector SAP BW Open Hub para saber como o conector SAP BW Open Hub copia dados incrementais do SAP BW. Este artigo também pode ajudá-lo a entender a configuração básica do conector.

Agora, vamos continuar a configurar a cópia incremental do SAP BW Open Hub.

A cópia incremental usa um mecanismo de "marca d'água alta" baseado na ID da solicitação. Esse ID é gerado automaticamente no SAP BW Open Hub Destination pelo DTP. O diagrama a seguir mostra esse fluxo de trabalho:

Fluxograma do fluxo de trabalho de cópia incremental

Na página inicial, selecione Modelos de pipeline na seção Descubra mais para usar o modelo interno.

  1. Pesquise o SAP BW para localizar e selecionar a cópia incremental do modelo SAP BW para o Azure Data Lake Storage Gen2. Este modelo copia dados para o Azure Data Lake Storage Gen2. Você pode usar um fluxo de trabalho semelhante para copiar para outros tipos de coletor.

  2. Na página principal do modelo, selecione ou crie as três conexões a seguir e selecione Usar este modelo no canto inferior direito da janela.

    • Armazenamento de Blob do Azure: neste passo a passo, usamos o armazenamento de Blob do Azure para armazenar a marca d'água alta, que é a ID máxima de solicitação copiada.
    • SAP BW Open Hub: Esta é a fonte da qual copiar dados. Consulte o passo a passo da cópia completa anterior para obter uma configuração detalhada.
    • Azure Data Lake Storage Gen2: Este é o coletor para o qual copiar dados. Consulte o passo a passo da cópia completa anterior para obter uma configuração detalhada.

    Cópia incremental do modelo SAP BW

  3. Este modelo gera um pipeline com as três atividades a seguir e as torna encadeadas no sucesso: Pesquisa, Copiar Dados e Web.

    Vá para a guia Parâmetros do pipeline. Você vê todas as configurações que precisa fornecer.

    Cópia incremental da configuração do SAP BW

    • SAPOpenHubDestinationName: especifique o nome da tabela Open Hub da qual copiar dados.

    • Data_Destination_Container: especifique o contêiner de destino do Azure Data Lake Storage Gen2 para o qual copiar dados. Se o contêiner não existir, a atividade de cópia criará um durante a execução.

    • Data_Destination_Directory: especifique o caminho da pasta no contêiner do Azure Data Lake Storage Gen2 para o qual copiar dados. Se o caminho não existir, a atividade de cópia criará um caminho durante a execução.

    • HighWatermarkBlobContainer: especifique o contêiner para armazenar o valor de marca d'água alta.

    • HighWatermarkBlobDirectory: especifique o caminho da pasta sob o contêiner para armazenar o valor da marca d'água alta.

    • HighWatermarkBlobName: especifique o nome do blob para armazenar o valor alto da marca d'água, como requestIdCache.txt. No armazenamento de Blob, vá para o caminho correspondente de HighWatermarkBlobContainer+HighWatermarkBlobDirectory+HighWatermarkBlobName, como container/path/requestIdCache.txt. Crie um blob com conteúdo 0.

      Blob content

    • LogicAppURL: Neste modelo, usamos WebActivity para chamar os Aplicativos Lógicos do Azure para definir o valor de marca d'água alta no armazenamento de Blob. Ou, você pode usar o Banco de Dados SQL do Azure para armazená-lo. Use uma atividade de procedimento armazenado para atualizar o valor.

      Você deve primeiro criar um aplicativo lógico, como mostra a imagem a seguir. Em seguida, cole o URL HTTP POST.

      Configuração do aplicativo lógico

      1. Aceda ao portal do Azure. Selecione um novo serviço de Aplicativos Lógicos . Selecione +Aplicativo lógico em branco para ir para o Designer de aplicativos lógicos.

      2. Crie um gatilho de Quando uma solicitação HTTP é recebida. Especifique o corpo da solicitação HTTP da seguinte maneira:

        {
           "properties": {
              "sapOpenHubMaxRequestId": {
                 "type": "string"
              }
           },
           "type": "object"
        }
        
      3. Adicione uma ação Criar blob . Para Caminho da pasta e Nome do Blob, use os mesmos valores que você configurou anteriormente em HighWatermarkBlobContainer+HighWatermarkBlobDirectory e HighWatermarkBlobName.

      4. Selecione Guardar. Em seguida, copie o valor de HTTP POST URL para usar no pipeline.

  4. Depois de fornecer os parâmetros do pipeline, selecione Debug>Finish para invocar uma execução para validar a configuração. Ou, selecione Publicar para publicar todas as alterações e, em seguida, selecione Adicionar gatilho para executar uma execução.

Configurações de destino do SAP BW Open Hub

Esta seção apresenta a configuração do lado do SAP BW para usar o conector SAP BW Open Hub para copiar dados.

Configurar a extração delta no SAP BW

Se você precisar de cópia histórica e cópia incremental ou apenas cópia incremental, configure a extração delta no SAP BW.

  1. Crie o Open Hub Destination. Você pode criar o OHD no SAP Transaction RSA1, que cria automaticamente o processo de transformação e transferência de dados necessário. Utilize as seguintes definições:

    • ObjectType: Você pode usar qualquer tipo de objeto. Aqui, usamos o InfoCube como exemplo.
    • Tipo de destino: Selecione Tabela de banco de dados.
    • Chave da tabela: Selecione Chave técnica.
    • Extração: Selecione Manter dados e Inserir registros na tabela.

    Caixa de diálogo Criar extração delta SAP BW OHD

    Caixa de diálogo Criar extração SAP BW OHD delta2

    Você pode aumentar o número de processos de trabalho SAP em execução paralela para o DTP:

    A captura de tela mostra Configurações para processamento paralelo onde você pode selecionar o número de processos paralelos para o D T P.

  2. Programe o DTP em cadeias de processo.

    Um DTP delta para um cubo só funciona se as linhas necessárias não tiverem sido compactadas. Certifique-se de que a compactação do cubo BW não esteja sendo executada antes do DTP para a tabela Open Hub. A maneira mais fácil de fazer isso é integrar o DTP em suas cadeias de processo existentes. No exemplo a seguir, o DTP (para o OHD) é inserido na cadeia de processo entre as etapas Ajustar (acúmulo agregado) e Fechar (compactação de cubo).

    Criar fluxograma da cadeia de processos do SAP BW

Configurar extração completa no SAP BW

Além da extração delta, talvez você queira uma extração completa do mesmo SAP BW InfoProvider. Isso geralmente se aplica se você quiser fazer cópia completa, mas não incremental, ou se quiser ressincronizar a extração delta.

Você não pode ter mais de um DTP para o mesmo OHD. Portanto, você deve criar um OHD adicional antes da extração delta.

Criar SAP BW OHD completo

Para uma OHD de carga completa, escolha opções diferentes das opções para extração delta:

  • Em OHD: defina a opção Extração para Excluir Dados e Inserir Registros. Caso contrário, os dados serão extraídos muitas vezes quando você repetir o DTP em uma cadeia de processo BW.

  • No DTP: Defina o modo de extração como Completo. Você deve alterar o DTP criado automaticamente de Delta para Full imediatamente após a criação do OHD, como mostra esta imagem:

    Caixa de diálogo Criar SAP BW OHD configurada para

  • No conector BW Open Hub: desative Excluir última solicitação. Caso contrário, nada será extraído.

Normalmente, você executa o DTP completo manualmente. Ou, você pode criar uma cadeia de processo para o DTP completo. Normalmente, é uma cadeia separada que é independente de suas cadeias de processo existentes. Em ambos os casos, certifique-se de que o DTP está concluído antes de iniciar a extração usando cópia. Caso contrário, apenas os dados parciais serão copiados.

Execute a extração delta pela primeira vez

A primeira extração delta é tecnicamente uma extração completa. Por padrão, o conector SAP BW Open Hub exclui a última solicitação quando copia dados. Para a primeira extração delta, nenhum dado é extraído pela atividade de cópia até que um DTP subsequente gere dados delta na tabela com uma ID de solicitação separada. Há duas maneiras de evitar esse cenário:

  • Desative a opção Excluir última solicitação para a primeira extração delta. Certifique-se de que o primeiro DTP delta está concluído antes de iniciar a extração delta pela primeira vez.
  • Use o procedimento para ressincronizar a extração delta, conforme descrito na próxima seção.

Ressincronizar a extração delta

Os cenários a seguir alteram os dados nos cubos do SAP BW, mas não são considerados pelo DTP delta:

  • Exclusão seletiva do SAP BW (de linhas usando qualquer condição de filtro)
  • Exclusão de solicitações SAP BW (de solicitações defeituosas)

Um SAP Open Hub Destination não é um destino de dados controlado por data mart (em todos os pacotes de suporte do SAP BW desde 2015). Assim, você pode excluir dados de um cubo sem alterar os dados no OHD. Em seguida, você deve ressincronizar os dados do cubo com o serviço:

  1. Execute uma extração completa no serviço (usando um DTP completo no SAP).
  2. Exclua todas as linhas na tabela Open Hub para o DTP delta.
  3. Defina o status do delta DTP como Fetched.

Depois disso, todos os DTPs delta subsequentes e extrações delta funcionam conforme o esperado.

Para definir o status do delta DTP como Fetched, você pode usar a seguinte opção para executar o delta DTP manualmente:

Sem Transferência de Dados; Status Delta na fonte: Fetched

Saiba mais sobre o suporte ao conector SAP BW Open Hub: