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:
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:
- Filtragem com base no conteúdo, que recomenda itens com base na semelhança.
- Filtragem colaborativa, que usa semelhanças entre usuários e as preferências deles.
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:
Você tem uma conta e um projeto do Google Cloud.
O faturamento está ativado para o projeto. Para informações sobre como confirmar se o faturamento está ativado para o projeto, consulte Verificar o status de faturamento dos projetos.
A edição local ou de qualquer nuvem do SDK do ABAP para Google Cloud está instalada e configurada.
A autenticação para acessar as APIs do Google Cloud está configurada. Para saber como configurar a autenticação, consulte Visão geral da autenticação da edição no local ou em qualquer nuvem do SDK do ABAP para Google Cloud.
A API BigQuery está ativada no seu projeto do Google Cloud.
Você tem um conjunto de dados do BigQuery e uma tabela para armazenar os dados.
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
:
No console do Google Cloud, clique no botão Escrever nova consulta.
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
.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:
No console do Google Cloud, clique no botão Escrever nova consulta.
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 valorINT64
que especifica o número de pontos no tempo a serem previstos.CONFIDENCE_LEVEL
: um valorFLOAT64
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
.Clique em Executar. O modelo de ML fornece uma saída de valores previstos para datas futuras.
Quando a consulta for concluída, clique na guia Resultados. Os resultados terão a seguinte aparência:
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
- Para uma visão geral do BigQuery ML, consulte Introdução ao BigQuery ML.
- Para avaliar os modelos de machine learning disponíveis do BigQuery para seus processos e requisitos de negócios, consulte Jornada do usuário completa de cada modelo.
- Em vez de executar consultas ad hoc para receber previsões do BigQuery ML, use o Cloud Run para gerar insights automaticamente de dados novos ou alterados no BigQuery. Os insights gerados podem ser gravados em uma tabela temporária do BigQuery e, em seguida, recuperados por um aplicativo SAP.
- Para extrair mais valor e insights dos seus dados do SAP, use o Cortex Data Foundation do Google Cloud, que oferece uma base de dados escalonável e extensível, com modelos de dados e pipelines pré-criados para casos de uso comerciais comuns relacionados ao SAP.
- Para saber mais, consulte Como usar o console do Google Cloud.
- Para saber mais sobre o SDK do ABAP para Google Cloud, consulte Visão geral do SDK do ABAP para Google Cloud.
Se você precisar de ajuda para resolver problemas com o SDK ABAP para Google Cloud, faça o seguinte:
- Consulte o guia de solução de problemas do ABAP SDK for Google Cloud.
- Faça suas perguntas e discuta o SDK ABAP para Google Cloud com a comunidade nos Fóruns do Cloud.
- Colete todas as informações de diagnóstico disponíveis e entre em contato com o Cloud Customer Care. Para mais informações sobre como entrar em contato com o atendimento ao cliente, consulte Como receber suporte para o SAP no Google Cloud.
Colaboradores
Autor: Ajith Urimajalu | Líder da equipe de engenheiros de aplicativos SAP
Outro colaborador: Vikash Kumar | Redator técnico