Insights métier dans SAP avec le ML BigQuery

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:

Solution de machine learning pour les insights métier dans 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:

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:

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:

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. 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.

  3. 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:

  1. Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.

  2. 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: valeur INT64 spécifiant le nombre de points temporels à prévoir.
    • CONFIDENCE_LEVEL: valeur FLOAT64 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.

  3. Cliquez sur Exécuter. Le modèle de ML fournit une sortie de valeurs de prévision pour des dates futures.

  4. Lorsque la requête est terminée, cliquez sur l'onglet Résultats. Les résultats doivent se présenter comme suit:

    Générer et diffuser des insights à l&#39;aide de BigQuery ML

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:

Contributeurs

Auteur : Ajith Urimajalu | Responsable d'équipe d'ingénieurs d'applications SAP

Autre contributeur : Vikash Kumar | Rédacteur technique