Ce document décrit une architecture de référence pour utiliser BigQuery ML afin de créer une solution de machine learning dans votre environnement SAP, à l'aide de l'édition sur site ou de n'importe quelle édition cloud du SDK ABAP pour Google Cloud. Grâce à l'architecture de référence expliquée dans ce document, vous pouvez créer des solutions qui extraient des insights basés sur les données pour accélérer vos processus de prise de décision dans SAP.
Ce document s'adresse aux développeurs ABAP, aux architectes de solutions SAP et aux architectes cloud. Ce document suppose que vous connaissez BigQuery et SQL.
Architecture
Le schéma suivant illustre une architecture de référence pour une solution de machine learning qui fournit des insights métier basés sur les données d'un système ERP SAP:
Cette architecture de solution de machine learning comprend les composants suivants:
Composant | Sous-système | Détails |
---|---|---|
1 | Source de données | Un système ERP SAP tel que SAP S/4HANA, qui est la source des données d'entreprise. |
2 | Entrepôt de données | BigQuery, qui stocke les données brutes des systèmes sources et les insights générés par le ML. |
3 | Machine learning: entraînement | Modèles de machine learning, qui sont entraînés sur des données sources pour générer des insights commerciaux. |
4 | Machine learning: diffuser des insights | Composants qui renvoient des insights commerciaux générés par le ML à consommer dans SAP. |
Produits utilisés
Cette architecture de référence utilise les produits Google Cloud suivants :
- SDK ABAP pour Google Cloud: vous aide à développer des applications ABAP qui connectent vos systèmes SAP aux services Google Cloud, tels que BigQuery.
- BigQuery: vous aide à gérer et à analyser vos données d'entreprise.
Cas d'utilisation
BigQuery ML permet aux utilisateurs SAP d'obtenir des insights précieux pour améliorer la prise de décision et les résultats commerciaux en utilisant les données d'entreprise stockées dans BigQuery. Cette section fournit des exemples de cas d'utilisation pour lesquels vous pouvez utiliser BigQuery ML pour créer des solutions de machine learning.
Prévision
Les prévisions dans BigQuery ML impliquent d'analyser les données historiques des séries temporelles pour prédire les tendances futures. Par exemple, vous pouvez analyser l'historique des ventes de plusieurs magasins afin de prédire les ventes futures dans ces emplacements. Vous pouvez effectuer des prévisions à l'aide de la fonction ML.FORECAST
avec le modèle ARIMA_PLUS
ou ARIMA_PLUS_XREG
.
Détection d'anomalies
La détection d'anomalies identifie des tendances inhabituelles dans les données, ce qui permet de répondre de manière proactive aux problèmes ou opportunités potentiels. Avec des données libellées, vous pouvez utiliser différents modèles de machine learning supervisé pour cette tâche. Vous pouvez utiliser la régression linéaire et logistique, les arbres de décision à boosting, les forêts d'arbres aléatoires, les réseaux de neurones profonds, les modèles wide et deep ou le modèle AutoML pour la détection d'anomalies.
Systèmes de recommandation
Les systèmes de recommandation sont des outils puissants pour les entreprises. Ils aident les utilisateurs à découvrir des contenus pertinents dans de vastes collections. Ces systèmes utilisent le machine learning pour suggérer des éléments que les utilisateurs ne trouveraient peut-être pas par eux-mêmes, en surmontant les limites de la recherche. Les systèmes de recommandation utilisent principalement deux approches:
- Filtrage basé sur le contenu, qui recommande des articles en fonction de leur similarité.
- Le filtrage collaboratif, qui utilise les similitudes entre les utilisateurs et leurs préférences.
Considérations de conception
Cette section fournit des conseils pour vous aider à utiliser cette architecture de référence afin de développer des architectures qui vous aident à répondre à vos exigences spécifiques en termes de sécurité, de confidentialité, de conformité, de coût et de performances.
Sécurité, confidentialité et conformité
Pour mettre en œuvre des règles de gouvernance des données, vous pouvez utiliser les fonctionnalités de BigQuery. La gouvernance des données gère la sécurité et la qualité des données tout au long de leur cycle de vie afin de garantir que l'accès et la précision sont conformes aux règles et réglementations. Pour en savoir plus, consultez la page Présentation de la gouvernance des données dans BigQuery.
Coût et performances
Pour obtenir une estimation du coût des ressources Google Cloud utilisées par l'entrepôt de données avec la solution BigQuery, consultez l'estimation précalculée dans le Simulateur de coût Google Cloud.
Lorsque vous débutez le scaling avec BigQuery, vous disposez de plusieurs méthodes pour améliorer les performances des requêtes et réduire vos dépenses totales. Ces méthodes incluent la modification de la manière dont vos données sont physiquement stockées, la modification de vos requêtes SQL et l'utilisation de réservations d'emplacements pour optimiser les performances et les coûts. Pour en savoir plus sur les moyens de faciliter le scaling et l'exécution de votre entrepôt de données, consultez la page Présentation de l'optimisation des performances des requêtes.
Alternative de conception
Bien que ce document se concentre sur l'édition sur site ou toute édition cloud du SDK ABAP pour Google Cloud, vous pouvez obtenir des résultats similaires en utilisant l'édition SAP BTP du SDK ABAP pour Google Cloud. Vous pouvez adapter les ressources fournies pour créer des solutions similaires dans votre environnement SAP BTP.
Déploiement
Cette section vous explique comment charger des données à partir de votre système SAP source dans BigQuery, créer un modèle de machine learning adapté à vos exigences métier et, enfin, générer des insights pouvant être utilisés pour prendre des décisions commerciales dans SAP.
Avant de commencer
Avant d'implémenter une solution basée sur cette architecture de référence, assurez-vous d'avoir rempli les conditions préalables suivantes:
Vous disposez d'un compte et d'un projet Google Cloud.
La facturation est activée pour votre projet. Pour savoir comment vérifier que la facturation est activée pour votre projet, consultez Vérifier l'état de facturation de vos projets.
L'édition sur site ou toute édition cloud du SDK ABAP pour Google Cloud est installée et configurée.
L'authentification permettant d'accéder aux API Google Cloud est configurée. Pour savoir comment configurer l'authentification, consultez la présentation de l'authentification pour le SDK ABAP pour Google Cloud sur site ou pour une édition cloud.
L'API BigQuery est activée dans votre projet Google Cloud.
Vous disposez d'un ensemble de données BigQuery et d'une table pour stocker vos données.
Charger des données à partir d'un système source SAP dans BigQuery
Pour charger des données à partir d'un système source SAP dans une table BigQuery à l'aide du SDK ABAP pour Google Cloud, utilisez la méthode INSERT_ALL_TABLEDATA
de la classe /GOOG/CL_BIGQUERY_V2
. Ces données servent de base pour l'entraînement des modèles de machine learning.
L'exemple de code suivant montre comment charger des données à partir d'un système source SAP dans une table 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.
Remplacez les éléments suivants :
CLIENT_KEY
: clé client configurée pour l'authentification.BIGQUERY_DATASET
: ID de l'ensemble de données BigQuery cible.BIGQUERY_TABLE
: ID de la table BigQuery cible.
Si vous recherchez une solution d'ingestion de données BigQuery sans code qui gère à la fois le chargement initial et la gestion du delta (CDC), vous pouvez envisager BigQuery Connector pour SAP, Cloud Data Fusion ou SAP Datasphere.
Créer un modèle de machine learning
BigQuery fournit une liste complète de modèles de machine learning et de ressources d'IA pour générer des insights à partir des données d'entreprise. ARIMA_PLUS
est un tel modèle, que vous pouvez utiliser pour prévoir les valeurs futures des séries temporelles en fonction des données historiques.
Par exemple, vous pouvez utiliser le modèle ARIMA_PLUS
pour prédire les volumes de ventes futurs à partir des données historiques. Pour entraîner un nouveau modèle avec les données SAP que vous avez chargées dans BigQuery, utilisez l'instruction CREATE MODEL
. Selon la taille de vos données, cette opération peut prendre quelques minutes ou plusieurs heures. Une fois le modèle créé, vous pouvez l'afficher dans BigQuery Studio.
Pour créer et entraîner votre modèle, exécutez l'instruction CREATE MODEL
:
Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.
Saisissez la requête GoogleSQL suivante dans l'éditeur de requête:
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}`
Remplacez les éléments suivants :
MODEL_NAME
: nom du modèle que vous avez entraîné pour générer des insights.TIME_SERIES_TIMESTAMP_COL
: nom de la colonne qui fournit les points temporels utilisés pour entraîner le modèle.TIME_SERIES_DATA_COL
: nom de la colonne contenant les données à prévoir.
Pour en savoir plus sur les arguments, consultez la syntaxe
CREATE MODEL
.Cliquez sur Exécuter. Votre modèle s'affiche dans le panneau de navigation.
Générer et diffuser des insights
Vous pouvez générer des insights à l'aide de votre modèle de machine learning.
Par exemple, si vous avez créé un modèle ARIMA_PLUS
, vous pouvez l'utiliser pour générer des insights sur les valeurs des séries temporelles, telles que les prévisions de ventes futures.
Générer des insights
Pour générer des insights à partir d'un modèle entraîné, procédez comme suit:
Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.
Saisissez la requête GoogleSQL suivante dans l'éditeur de requête:
SELECT * FROM ML.FORECAST(MODEL `MODEL_NAME`, STRUCT(HORIZON AS horizon, CONFIDENCE_LEVEL AS confidence_level));
Remplacez les éléments suivants :
MODEL_NAME
: nom du modèle que vous avez entraîné pour générer des insights.HORIZON
: valeurINT64
spécifiant le nombre de points temporels à prévoir.CONFIDENCE_LEVEL
: valeurFLOAT64
qui spécifie le pourcentage des futures valeurs comprises dans l'intervalle de prédiction.
Pour en savoir plus sur les arguments, consultez la section Fonction
ML.FORECAST
.Cliquez sur Exécuter. Le modèle de ML fournit une sortie de valeurs de prévision pour des dates futures.
Lorsque la requête est terminée, cliquez sur l'onglet Résultats. Les résultats doivent se présenter comme suit:
Fournir des insights
Pour diffuser les prédictions générées pour les décisions commerciales basées sur les données à partir de votre application SAP à l'aide du SDK ABAP pour Google Cloud, vous devez utiliser la méthode QUERY_JOBS
de la classe /GOOG/CL_BIGQUERY_V2
.
Pour vous aider à déployer l'exemple de solution expliqué dans cette section avec un minimum d'efforts, un exemple de code est fourni sur GitHub.
Cet exemple de code présente un exemple de bout en bout de génération de prévisions de valeurs futures de séries temporelles à l'aide du modèle ARIMA_PLUS
et de l'édition sur site ou cloud du SDK ABAP pour Google Cloud.
Étape suivante
- Pour obtenir plus d'informations sur BigQuery ML, consultez la page Présentation de BigQuery ML.
- Pour évaluer les modèles de machine learning BigQuery disponibles pour votre processus et vos exigences métier, consultez la section Parcours utilisateur de bout en bout pour chaque modèle.
- Au lieu d'effectuer des requêtes ad hoc pour obtenir des prédictions BigQuery ML, vous pouvez utiliser Cloud Run pour générer automatiquement des insights sur les données nouvelles ou modifiées dans BigQuery. Les insights générés peuvent être écrits dans une table BigQuery temporaire, puis récupérés par une application SAP.
- Pour extraire davantage de valeur et d'insights de vos données SAP, vous pouvez utiliser la Cortex Data Foundation de Google Cloud, qui fournit une base de données évolutive et extensible, ainsi que des modèles et des pipelines de données prédéfinis pour les cas d'utilisation métier courants liés à SAP.
- Pour en savoir plus sur la console Google Cloud, consultez la page Utiliser la console Google Cloud.
- Pour en savoir plus sur le SDK ABAP pour Google Cloud, consultez la page Présentation du SDK ABAP pour Google Cloud.
Procédez comme suit si vous avez besoin d'aide pour résoudre les problèmes liés au SDK ABAP pour Google Cloud:
- Consultez le guide de dépannage du SDK ABAP pour Google Cloud.
- Posez vos questions concernant le SDK ABAP pour Google Cloud et discutez de celui-ci avec la communauté sur les forums Cloud.
- Collectez toutes les informations de diagnostic disponibles et contactez Cloud Customer Care. Pour savoir comment contacter le service client, consultez la page Obtenir de l'aide pour SAP sur Google Cloud.
Contributeurs
Auteur : Ajith Urimajalu | Responsable d'équipe d'ingénieurs d'applications SAP
Autre contributeur : Vikash Kumar | Rédacteur technique