Copiar dados do SAP Business Warehouse com o Azure Data Factory ou o Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo mostra como usar os pipelines do Azure Data Factory ou do Synapse Analytics para copiar dados do SAP BW (Business Warehouse) 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 do coletor compatíveis.

Dica

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

Pré-requisitos

  • Azure Data Factory ou workspace do Synapse: se você não tiver um, siga as etapas para criar um data factory ou crie um workspace do Synapse.

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

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

    • Autorização para RFC (chamadas de função remota) e o SAP BW.
    • Permissões para a atividade “Executar” do objeto de autorização S_SDSAUTH.
  • Um IR (runtime de integração) auto-hospedada com o conector do SAP para .NET 3.0. Execute estas etapas de configuração:

    1. Instale e registre o runtime de integração auto-hospedada, versão 3.13 ou posterior. (Esse processo será descrito mais adiante neste artigo.)

    2. Baixe o Conector do SAP de 64 bits para Microsoft .NET 3.0 do site da SAP e instale-o no mesmo computador do runtime de integração auto-hospedada. Durante a instalação, lembre-se de selecionar Instalar Assemblies no GAC na caixa de diálogo Etapas de configuração opcionais, conforme mostrado na seguinte imagem:

      Set up SAP .NET Connector dialog box

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

No portal do Azure, acesse o serviço. Selecione Abrir no bloco Abrir 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ão para abrir a ferramenta Copiar Dados.

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

  3. Na página Armazenamento de dados de origem, selecione + Nova conexão. Escolha SAP BW Open Hub na galeria de conectores e selecione Continuar. Para filtrar os conectores, digite SAP na caixa de pesquisa.

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

    1. Na lista Conectar por meio do runtime de integração, selecione um IR auto-hospedado existente. Ou, então, opte por criar um IR caso ainda não tenha um.

      Para criar um IR auto-hospedado, selecione +Novo e Auto-hospedado. Insira um Nome e selecione Avançar. Escolha Instalação expressa para instalar no computador atual ou siga as etapas de Configuração manual fornecidas.

      Conforme mencionado nos Pré-requisitos, verifique se você tem o Conector do SAP para Microsoft .NET 3.0 instalado no mesmo computador em que o IR auto-hospedado está em execução.

    2. Preencha Nome do servidor, Número do sistema, ID do Cliente,Idioma (se for diferente de EN), Nome de usuário e Senha do SAP BW.

    3. Selecione Testar conectividade para validar as configurações e escolha Criar.

    Create SAP BW Open Hub-linked service page

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

    2. Na seção de seleção Destinos do Open Hub, procure os Destinos do Open Hubs disponíveis no 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 os dados serão copiados e escolha Avançar.

    Screenshot showing the 'Source data store' page.

  5. Especifique um filtro, caso precise de um. Se o OHD contiver apenas dados de uma só execução do DTP (processo de transferência de dados) com uma só ID de solicitação ou se você tiver certeza de que o DTP está 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 do Destino do Open Hub do SAP BW deste artigo. Em seguida, selecione Avançar.

    Configure SAP BW Open Hub filter

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

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

    1. Selecione sua conta com capacidade para o Data Lake Storage Gen2 na lista suspensa Nome.
    2. Selecione Criar para criar a conexão.

    Create an ADLS Gen2 linked service page

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

    Screenshot showing the 'Destination data store' page.

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

    Specify sink format page

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

    Configure copy settings

  11. Na página de Resumo , analise as configurações. Em seguida, selecione Avançar.

    Screenshot showing the Summary page.

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

  13. Observe que a guia Monitorar no lado esquerdo da página é selecionada automaticamente. Você pode usar os links na coluna Nome do pipeline na página Execução de pipeline para ver detalhes da atividade e executar o pipeline novamente.

  14. Para ver as execuções de atividade associadas à execução de pipeline, selecione o link na coluna Nome do pipeline. Há apenas uma atividade (atividade de cópia) no pipeline. Assim, você vê apenas uma entrada. Para voltar à exibição de execuções de pipeline, selecione o link Todos os pipelines são executados na parte superior. Selecione Atualizar para atualizar a lista.

    Activity-monitoring screen

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

    Activity monitoring details

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

    Activity output screen

    Activity output details view

Cópia incremental do SAP BW Open Hub

Dica

Confira Fluxo de extração delta do conector do SAP BW Open Hub para saber como o conector do SAP BW Open Hub copia dados incrementais do SAP BW. Este artigo também poderá ajudar você a entender a configuração básica do conector.

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

A cópia incremental usa um mecanismo de "marca-d'água alta" com base na ID da solicitação. Essa ID é gerada automaticamente no Destino do Open Hub do SAP BW pelo DTP. O seguinte diagrama mostra esse fluxo de trabalho:

Incremental copy workflow flow chart

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

  1. Procure SAP BW para encontrar e selecionar o modelo de Cópia incremental do SAP BW para o Azure Data Lake Storage Gen2. Esse modelo copia os dados para o Azure Data Lake Storage Gen2. Você pode usar um fluxo de trabalho semelhante para a cópia para outros tipos de coletor.

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

    • Armazenamento de Blobs do Azure: neste passo a passo, usaremos o Armazenamento de Blobs do Azure para armazenar a marca-d'água alta, que é a ID da solicitação máxima copiada.
    • SAP BW Open Hub: essa é a origem da qual os dados serão copiados. Veja o passo a passo anterior da cópia completa para obter uma configuração detalhada.
    • Azure Data Lake Storage Gen2: o coletor no qual os dados serão copiados. Veja o passo a passo anterior da cópia completa para obter uma configuração detalhada.

    Incremental copy from SAP BW template

  3. Esse modelo gera um pipeline com as três seguintes atividades e torna-as encadeadas após o êxito: Pesquisa, Copiar Dados e Web.

    Acesse a guia Parâmetros do pipeline. Você verá todas as configurações que precisará fornecer.

    Incremental copy from SAP BW configuration

    • SAPOpenHubDestinationName: especifique o nome da tabela do Open Hub para a qual os dados serão copiados.

    • Data_Destination_Container: especifique o contêiner de destino do Azure Data Lake Storage Gen2 para o qual os dados serão copiados. Se o contêiner não existir, a atividade Copy 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 os dados serão copiados. Se o caminho não existir, a atividade Copy criará um caminho durante a execução.

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

    • HighWatermarkBlobDirectory: especifique o caminho da pasta no contêiner que armazenará o valor de marca-d'água alta.

    • HighWatermarkBlobName: especifique o nome do blob que armazenará o valor de marca-d'água alta, como requestIdCache.txt. No Armazenamento de Blobs, acesse o caminho correspondente de HighWatermarkBlobContainer + HighWatermarkBlobDirectory + HighWatermarkBlobName, como contêiner/caminho/cachedaIddasolicitação.txt. Crie um blob com o conteúdo 0.

      Blob content

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

      Primeiro, você precisará criar um aplicativo lógico, conforme mostrado na imagem a seguir. Depois, cole a URL HTTP POST.

      Logic App configuration

      1. Vá para o Portal do Azure. Selecione um novo serviço de Aplicativos Lógicos. Selecione +Aplicativo Lógico em Branco para acessar o Designer de Aplicativos Lógicos.

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

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

      4. Selecione Salvar. Em seguida, copie o valor da URL HTTP POST para uso no pipeline.

  4. Depois de fornecer os parâmetros de pipeline, selecione Depurar>Concluir para invocar uma execução para validar a configuração. Ou, então, escolha Publicar para publicar todas as alterações e selecione Adicionar gatilho para executar uma execução.

Configurações do Destino do Open Hub do SAP BW

Esta seção apresenta a configuração no lado do SAP BW para uso do conector do SAP BW Open Hub para cópia de dados.

Configurar a extração delta no SAP BW

Caso precise de uma cópia histórica e uma cópia incremental ou apenas da cópia incremental, configure a extração delta no SAP BW.

  1. Crie o Destino do Open Hub. Você pode criar o OHD na Transação SAP RSA1, que cria automaticamente a transformação necessária e o processo de transferência de dados. Use as configurações a seguir:

    • ObjectType: você pode usar qualquer tipo de objeto. Aqui, usamos 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.

    Create SAP BW OHD delta extraction dialog box

    Create SAP BW OHD delta2 extraction dialog box

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

    Screenshot shows Settings for Parallel Processing where you can select the number of parallel processes for the D T P.

  2. Agende o DTP em cadeias de processo.

    Um DTP delta para um cubo só funcionará se as linhas necessárias não tiverem sido compactadas. Verifique se a compactação de cubo do BW não está em execução antes do DTP na tabela do Open Hub. A maneira mais fácil de fazer isso é integrar o DTP às cadeias de processo existentes. No exemplo a seguir, o DTP (para o OHD) é inserido na cadeia de processo entre as etapas Ajustar (rollup agregado) e Recolher (compactação de cubo).

    Create SAP BW process chain flow chart

Configurar a extração completa no SAP BW

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

Não é possível ter mais de um DTP para o mesmo OHD. Portanto, é necessário criar um OHD adicional antes da extração delta.

Create SAP BW OHD full

Para obter um OHD de carga completa, escolha opções diferentes em vez da extração delta:

  • No OHD: defina a opção Extração como 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 do BW.

  • No DTP: defina Modo de Extração como Completo. Você precisará alterar o DTP criado automaticamente de Delta para Completo imediatamente após a criação do OHD, como mostra esta imagem:

    Create SAP BW OHD dialog box configured for "Full" extraction

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

Normalmente, o DTP completo é executado manualmente. Ou, então, você pode criar uma cadeia de processo para o DTP completo. Normalmente, é uma cadeia separada independente das cadeias de processo existentes. Em ambos os casos, verifique se o DTP foi concluído antes de iniciar a extração usando a cópia. Caso contrário, somente dados parciais serão copiados.

Executar a extração delta pela primeira vez

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

  • Desligue a opção Excluir última solicitação para a primeira extração delta. Verifique se o primeiro DTP delta foi 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 seguintes cenários 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ção do SAP BW (de solicitações com falha)

Um Destino do Open Hub do SAP não é um destino de dados controlado por data mart (em todos os pacotes de suporte do SAP BW desde 2015). Portanto, você pode excluir os dados de um cubo sem alterar os dados no OHD. Em seguida, você precisará 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 da tabela do Open Hub para o DTP delta.
  3. Defina o status do DTP delta como Buscado.

Depois disso, todos os DTPs delta e todas as próximas extrações delta funcionarão conforme o esperado.

Para definir o status do DTP delta como Buscado, use a seguinte opção para executar o DTP delta manualmente:

Sem Transferência de Dados; Status de Delta na Origem: Buscado

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