Insights de negócios na SAP com o BigQuery ML

Este documento descreve uma arquitetura de referência para usar o BigQuery ML e criar uma solução de machine learning no seu ambiente SAP usando o ABAP SDK for Google Cloud no local ou em qualquer edição na nuvem. Com a ajuda da arquitetura de referência explicada neste documento, você pode criar soluções que extraem insights baseados em dados para acelerar seus processos de tomada de decisões de negócios no SAP.

O público-alvo deste documento inclui desenvolvedores ABAP, arquitetos de soluções SAP e arquitetos de nuvem. O documento pressupõe que você esteja familiarizado com o BigQuery e o SQL.

Arquitetura

O diagrama a seguir mostra uma arquitetura de referência para uma solução de machine learning que fornece insights de negócios com base nos dados de um sistema ERP da SAP:

Solução de aprendizado de máquina para insights de negócios no SAP

Esta arquitetura de solução de aprendizado de máquina inclui os seguintes componentes:

Componente Subsistema Detalhes
1 Fonte de dados Um sistema ERP do SAP, como o SAP S/4HANA, que é a origem dos dados da empresa.
2 Data warehouse BigQuery, que armazena dados brutos de sistemas de origem e insights gerados por ML.
3 Machine learning: treinamento Modelos de aprendizado de máquina, que são treinados com dados de origem para gerar insights de negócios.
4 Machine learning: fornecer insights Componentes que retornam insights de negócios gerados por ML para consumo no SAP.

Produtos usados

Esta arquitetura de referência usa os seguintes produtos do Google Cloud:

  • ABAP SDK for Google Cloud: ajuda você a desenvolver aplicativos ABAP que conectam seus sistemas SAP a serviços do Google Cloud, como o BigQuery.
  • BigQuery: ajuda a gerenciar e analisar seus dados corporativos.

Casos de uso

O BigQuery ML permite que os usuários da SAP gerem insights valiosos para melhorar a tomada de decisões e os resultados de negócios usando os dados corporativos armazenados no BigQuery. Esta seção apresenta exemplos de casos de uso em que você pode usar o BigQuery ML para criar soluções de machine learning.

Previsão

A previsão no BigQuery ML envolve a análise de dados históricos de série temporal para prever tendências futuras. Por exemplo, você pode analisar dados históricos de vendas de diversas lojas para prever vendas futuras nesses locais. É possível realizar previsões usando a função ML.FORECAST com o modelo ARIMA_PLUS ou ARIMA_PLUS_XREG.

Detecção de anomalias

A detecção de anomalias encontra padrões incomuns nos dados, permitindo uma resposta proativa a possíveis problemas ou oportunidades. Com dados rotulados, é possível usar vários modelos de machine learning supervisionado para essa tarefa. É possível usar a regressão linear e logística, árvores aprimoradas, florestas aleatórias, redes neurais profundas, modelos amplos e profundos ou o modelo AutoML para a detecção de anomalias.

Sistemas de recomendação

Os sistemas de recomendação são ferramentas poderosas para empresas, ajudando os usuários a descobrir conteúdo relevante em grandes coleções. Esses sistemas usam o aprendizado de máquina para sugerir itens que os usuários talvez não encontrem por conta própria, superando as limitações da pesquisa. Os sistemas de recomendação empregam principalmente duas abordagens:

Considerações sobre o design

Esta seção fornece orientações sobre como usar essa arquitetura de referência para desenvolver arquiteturas que atendam aos seus requisitos específicos de segurança, privacidade, compliance, custo e desempenho.

segurança, privacidade e conformidade

Para implementar políticas de governança de dados, use os recursos do BigQuery. A governança de dados gerencia a segurança e a qualidade dos dados ao longo do ciclo de vida para garantir que o acesso e a precisão estejam em conformidade com as políticas e regulamentações. Para mais informações, consulte Introdução à governança de dados no BigQuery.

Custo e desempenho

Para uma estimativa dos custos dos recursos do Google Cloud usados pelo armazenamento de dados com a solução do BigQuery, consulte a estimativa pré-calculada na Calculadora de preços do Google Cloud.

À medida que você começa a escalonar com o BigQuery, há várias maneiras de melhorar o desempenho da consulta e reduzir o gasto total. Esses métodos incluem a alteração de como os dados são armazenados fisicamente, a modificação das consultas SQL e o uso de reservas de slots para garantir o desempenho dos custos. Para mais informações sobre como escalonar e executar o data warehouse, consulte Introdução à otimização do desempenho da consulta.

Alternativa de design

Embora este documento se concentre na edição no local ou em qualquer nuvem do ABAP SDK for Google Cloud, você pode conseguir resultados semelhantes usando a edição SAP BTP do ABAP SDK for Google Cloud. É possível adaptar os recursos fornecidos para criar soluções semelhantes no seu ambiente SAP BTP.

Implantação

Esta seção mostra como carregar dados do sistema SAP de origem no BigQuery, criar um modelo de machine learning adequado aos requisitos de negócios e, por fim, gerar insights que podem ser usados para decisões de negócios no SAP.

Antes de começar

Antes de implementar uma solução baseada nesta arquitetura de referência, verifique se você concluiu os seguintes pré-requisitos:

Carregar dados de um sistema de origem SAP no BigQuery

Para carregar dados de um sistema de origem SAP em uma tabela do BigQuery usando o SDK ABAP for Google Cloud, use o método INSERT_ALL_TABLEDATA da classe /GOOG/CL_BIGQUERY_V2. Esses dados servem como base para treinar os modelos de aprendizado de máquina.

O exemplo de código a seguir ilustra como carregar dados de um sistema de origem SAP em uma tabela do BigQuery:

TRY.
    DATA(lo_client) = NEW /goog/cl_bigquery_v2( iv_key_name = 'CLIENT_KEY' ).

    TYPES:
      BEGIN OF t_timeseries,
        date  TYPE string,   "YYYY-MM-DD
        value TYPE string,   "Numeric value
      END OF t_timeseries.

    DATA: lt_data TYPE STANDARD TABLE OF t_timeseries.
    "Developer TODO - populate lt_data

    DATA: ls_input        TYPE /goog/cl_bigquery_v2=>ty_133.

    LOOP AT lt_data INTO FIELD-SYMBOL(<ls_data>).
      APPEND INITIAL LINE TO ls_input-rows ASSIGNING FIELD-SYMBOL(<ls_row>).
      CREATE DATA <ls_row>-json TYPE t_timeseries.
      FIELD-SYMBOLS: <lfs_json> TYPE t_timeseries.
      ASSIGN <ls_row>-json->* TO <lfs_json> CASTING.
      <lfs_json> = <ls_data>.
    ENDLOOP.

    "Call API method: bigquery.tabledata.insertAll
    CALL METHOD lo_client->insert_all_tabledata
      EXPORTING
        iv_p_dataset_id = 'BIGQUERY_DATASET'
        iv_p_project_id = CONV #( lo_client->gv_project_id )
        iv_p_table_id   = 'BIGQUERY_TABLE'
        is_input        = ls_input
      IMPORTING
        es_output       = DATA(ls_output)
        ev_ret_code     = DATA(lv_ret_code)
        ev_err_text     = DATA(lv_err_text).

    lo_client->close( ).

  CATCH cx_root.
    "handle error
ENDTRY.

Substitua:

  • CLIENT_KEY: a chave do cliente configurada para autenticação.
  • BIGQUERY_DATASET: o ID do conjunto de dados do BigQuery de destino.
  • BIGQUERY_TABLE: o ID da tabela de destino do BigQuery.

Como alternativa, se você estiver procurando uma solução de ingestão de dados do BigQuery sem código que processe a carga inicial e o processamento delta (CDC), considere o BigQuery Connector para SAP, o Cloud Data Fusion ou o SAP Datasphere.

Criar um modelo de aprendizado de máquina

O BigQuery oferece uma lista abrangente de modelos de aprendizado de máquina e recursos de IA para extrair insights dos dados corporativos. Um desses modelos é o ARIMA_PLUS, que pode ser usado para prever valores futuros de série temporal com base em dados históricos. Por exemplo, é possível usar o modelo ARIMA_PLUS para prever volumes de vendas futuros com base em dados históricos. Para treinar um novo modelo com os dados do SAP que você carregou no BigQuery, use a instrução CREATE MODEL. Dependendo do tamanho dos dados, isso pode levar alguns minutos ou horas para ser concluído. Depois que o modelo for criado, você poderá acessá-lo no BigQuery Studio.

Para criar e treinar seu modelo, execute a instrução CREATE MODEL:

  1. No console do Google Cloud, clique no botão Escrever nova consulta.

  2. Insira a seguinte consulta do GoogleSQL no Editor de consultas:

       CREATE OR REPLACE MODEL `MODEL_NAME`
           OPTIONS
           (model_type = 'ARIMA_PLUS',
           time_series_timestamp_col = 'TIME_SERIES_TIMESTAMP_COL',
           time_series_data_col = 'TIME_SERIES_DATA_COL',
           auto_arima = TRUE,
           data_frequency = 'AUTO_FREQUENCY',
           decompose_time_series = TRUE
             ) AS
         SELECT
           {timestamp_column_name},
           {timeseries_data_column_name}
         FROM
           `{BigQuery_table}`
    

    Substitua:

    • MODEL_NAME: o nome do modelo que você treinou para gerar insights.
    • TIME_SERIES_TIMESTAMP_COL: o nome da coluna que fornece os pontos de tempo usados no treinamento do modelo.
    • TIME_SERIES_DATA_COL: o nome da coluna que contém os dados a serem previstos.

    Para mais informações sobre os argumentos, consulte a sintaxe CREATE MODEL.

  3. Clique em Executar. O modelo aparece no painel de navegação.

Gerar e exibir insights

Você pode gerar insights usando seu modelo de aprendizado de máquina. Por exemplo, se você criou um modelo ARIMA_PLUS, é possível usá-lo para gerar insights sobre valores de série temporal, como previsões de vendas futuras.

Gerar insights

Para gerar insights com base em um modelo treinado, siga estas etapas:

  1. No console do Google Cloud, clique no botão Escrever nova consulta.

  2. Insira a seguinte consulta do GoogleSQL no Editor de consultas:

    SELECT
    *
    FROM
    ML.FORECAST(MODEL `MODEL_NAME`,
    STRUCT(HORIZON AS horizon, CONFIDENCE_LEVEL AS confidence_level));
    

    Substitua:

    • MODEL_NAME: o nome do modelo que você treinou para gerar insights.
    • HORIZON: um valor INT64 que especifica o número de pontos no tempo a serem previstos.
    • CONFIDENCE_LEVEL: um valor FLOAT64 que especifica a porcentagem dos valores futuros que se enquadram no intervalo de previsão.

    Para mais informações sobre os argumentos, consulte A função ML.FORECAST.

  3. Clique em Executar. O modelo de ML fornece uma saída de valores previstos para datas futuras.

  4. Quando a consulta for concluída, clique na guia Resultados. Os resultados terão a seguinte aparência:

    Gerar e oferecer insights usando o BigQuery ML

Exibir insights

Para gerar previsões para decisões de negócios baseadas em dados no seu aplicativo SAP usando o SDK ABAP para Google Cloud, use o método QUERY_JOBS da classe /GOOG/CL_BIGQUERY_V2.

Para ajudar você a implantar o exemplo de solução explicado nesta seção com o mínimo de esforço, um exemplo de código é fornecido no GitHub. Este exemplo de código mostra um exemplo completo de geração de previsões de valores de série temporal futuras usando o modelo ARIMA_PLUS e a edição local ou na nuvem do ABAP SDK for Google Cloud.

A seguir

Colaboradores

Autor: Ajith Urimajalu | Líder da equipe de engenheiros de aplicativos SAP

Outro colaborador: Vikash Kumar | Redator técnico