Geschäftsstatistiken in SAP mit BigQuery ML

In diesem Dokument wird eine Referenzarchitektur für die Verwendung von BigQuery ML zum Erstellen einer Lösung für maschinelles Lernen in Ihrer SAP-Umgebung beschrieben. Dabei wird die lokale oder eine beliebige Cloud-Version des ABAP SDK for Google Cloud verwendet. Anhand der in diesem Dokument beschriebenen Referenzarchitektur können Sie Lösungen entwickeln, mit denen Sie datengestützte Informationen gewinnen, um Ihre Geschäftsentscheidungsprozesse in SAP zu beschleunigen.

Dieses Dokument richtet sich an ABAP-Entwickler, SAP-Lösungsarchitekten und Cloud-Architekten. In diesem Dokument wird davon ausgegangen, dass Sie mit BigQuery und SQL vertraut sind.

Architektur

Das folgende Diagramm zeigt eine Referenzarchitektur für eine Lösung für maschinelles Lernen, die Geschäftsinformationen auf der Grundlage der Daten aus einem SAP-ERP-System liefert:

Lösung für maschinelles Lernen für Geschäftsstatistiken in SAP

Diese Architektur für eine Lösung mit maschinellem Lernen umfasst die folgenden Komponenten:

Komponente Subsystem Details
1 Datenquelle Ein SAP ERP-System wie SAP S/4HANA, das die Quelle der Unternehmensdaten ist.
2 Data Warehouse BigQuery, in dem Rohdaten aus Quellsystemen und mit ML generierte Statistiken gespeichert werden.
3 Maschinelles Lernen: Training Modelle für maschinelles Lernen, die anhand von Quelldaten trainiert werden, um Geschäftsinformationen zu generieren.
4 Maschinelles Lernen: Statistiken bereitstellen Komponenten, die mithilfe von ML generierte Geschäftsstatistiken für die Verwendung in SAP zurückgeben.

Verwendete Produkte

In dieser Referenzarchitektur werden die folgenden Google Cloud-Produkte verwendet:

  • ABAP SDK for Google Cloud: Hilft Ihnen bei der Entwicklung von ABAP-Anwendungen, die Ihre SAP-Systeme mit Google Cloud-Diensten wie BigQuery verbinden.
  • BigQuery: Hilft Ihnen, Ihre Unternehmensdaten zu verwalten und zu analysieren.

Anwendungsfälle

Mit BigQuery ML können SAP-Nutzer wertvolle Informationen gewinnen, um fundiertere Entscheidungen zu treffen und bessere Geschäftsergebnisse zu erzielen. Dazu nutzen sie die in BigQuery gespeicherten Unternehmensdaten. In diesem Abschnitt finden Sie Beispiele für Anwendungsfälle, für die Sie BigQuery ML zum Erstellen von Lösungen für maschinelles Lernen verwenden können.

Vorhersage

Bei der Prognose in BigQuery ML werden Verlaufsdaten von Zeitreihen analysiert, um zukünftige Trends vorherzusagen. Sie können beispielsweise Verlaufsdaten aus mehreren Geschäften analysieren, um zukünftige Umsätze an diesen Standorten vorherzusagen. Sie können Prognosen mit der ML.FORECAST-Funktion und dem ARIMA_PLUS- oder ARIMA_PLUS_XREG-Modell erstellen.

Anomalieerkennung

Mithilfe der Anomalieerkennung werden ungewöhnliche Muster in Daten erkannt, sodass Sie proaktiv auf potenzielle Probleme oder Chancen reagieren können. Mit gekennzeichneten Daten können Sie verschiedene beaufsichtigte Modelle für maschinelles Lernen für diese Aufgabe verwenden. Sie können die lineare und logistische Regression, Boosted Trees, Random Forests, Deep Neural Networks, Wide-and-Deep-Modelle oder das AutoML-Modell für die Anomalieerkennung verwenden.

Empfehlungssysteme

Empfehlungssysteme sind leistungsstarke Tools für Unternehmen, mit denen Nutzer relevante Inhalte in riesigen Sammlungen finden können. Diese Systeme nutzen maschinelles Lernen, um Elemente vorzuschlagen, die Nutzer möglicherweise nicht selbst finden würden. So werden die Einschränkungen der Suche überwunden. Empfehlungssysteme nutzen hauptsächlich zwei Ansätze:

Designaspekte

Dieser Abschnitt enthält eine Anleitung zur Verwendung dieser Referenzarchitektur, um Architekturen zu entwickeln, die Ihnen helfen, Ihre spezifischen Anforderungen an Sicherheit, Datenschutz, Compliance, Kosten und Leistung zu erfüllen.

Sicherheit, Datenschutz und Compliance

Sie können BigQuery-Funktionen verwenden, um Richtlinien zur Datenverwaltung zu implementieren. Bei der Datenverwaltung werden die Sicherheit und Qualität von Daten während ihres gesamten Lebenszyklus verwaltet, um sicherzustellen, dass der Zugriff und die Richtigkeit den Richtlinien und Bestimmungen entsprechen. Weitere Informationen finden Sie unter Einführung in die Data Governance in BigQuery.

Kosten und Leistung

Eine Schätzung der Kosten der Google Cloud-Ressourcen, die von der Lösung „Data Warehouse mit BigQuery“ genutzt werden, finden Sie in der vorab berechneten Schätzung im Google Cloud-Preisrechner.

Wenn Sie mit der Skalierung mit BigQuery beginnen, haben Sie verschiedene Möglichkeiten, die Abfrageleistung zu verbessern und die Gesamtausgaben zu reduzieren. Zu diesen Methoden gehören die Änderung der Art der physischen Speicherung der Daten, die Änderung der SQL-Abfragen und die Verwendung von Slot-Reservierungen zur Sicherstellung der Kostenleistung. Weitere Informationen zum Skalieren und Ausführen Ihres Data Warehouse finden Sie unter Einführung in die Optimierung der Abfrageleistung.

Designalternative

In diesem Dokument liegt der Schwerpunkt auf der lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud. Mit der SAP BTP-Version des ABAP SDK for Google Cloud können Sie jedoch ähnliche Ergebnisse erzielen. Sie können die bereitgestellten Ressourcen anpassen, um ähnliche Lösungen in Ihrer SAP BTP-Umgebung zu erstellen.

Bereitstellung

In diesem Abschnitt erfahren Sie, wie Sie Daten aus Ihrem SAP-Quellsystem in BigQuery laden, ein für Ihre Geschäftsanforderungen geeignetes Modell für maschinelles Lernen erstellen und schließlich Statistiken generieren, die für Geschäftsentscheidungen in SAP verwendet werden können.

Hinweise

Bevor Sie eine Lösung auf Grundlage dieser Referenzarchitektur implementieren, müssen Sie die folgenden Voraussetzungen erfüllen:

Daten aus einem SAP-Quellsystem in BigQuery laden

Wenn Sie Daten mit dem ABAP SDK for Google Cloud aus einem SAP-Quellsystem in eine BigQuery-Tabelle laden möchten, verwenden Sie die Methode INSERT_ALL_TABLEDATA der Klasse /GOOG/CL_BIGQUERY_V2. Diese Daten bilden die Grundlage für das Training der Modelle für maschinelles Lernen.

Im folgenden Codebeispiel wird gezeigt, wie Daten aus einem SAP-Quellsystem in eine BigQuery-Tabelle geladen werden:

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.

Ersetzen Sie Folgendes:

  • CLIENT_KEY: Der für die Authentifizierung konfigurierte Clientschlüssel.
  • BIGQUERY_DATASET: Die ID des Ziel-BigQuery-Datasets.
  • BIGQUERY_TABLE: Die ID der BigQuery-Zieltabelle.

Wenn Sie nach einer BigQuery-Datenaufnahmelösung ohne Code suchen, die sowohl die Erstbelastung als auch die Delta-Verarbeitung (CDC) abwickelt, können Sie BigQuery Connector für SAP, Cloud Data Fusion oder SAP Datasphere verwenden.

Machine-Learning-Modell erstellen

BigQuery bietet eine umfassende Liste von Modellen für maschinelles Lernen und KI-Ressourcen, mit denen sich Erkenntnisse aus Unternehmensdaten gewinnen lassen. Ein solches Modell ist ARIMA_PLUS. Mit diesem Modell können Sie zukünftige Zeitreihenwerte anhand von Verlaufsdaten prognostizieren. So können Sie beispielsweise mit dem ARIMA_PLUS-Modell zukünftige Verkaufsvolumen anhand von Verlaufsdaten vorhersagen. Um ein neues Modell mit den SAP-Daten zu trainieren, die Sie in BigQuery geladen haben, verwenden Sie die Anweisung CREATE MODEL. Je nach Größe der Daten kann dies einige Minuten oder Stunden dauern. Nachdem das Modell erstellt wurde, können Sie es sich in BigQuery Studio ansehen.

Führen Sie die Anweisung CREATE MODEL aus, um das Modell zu erstellen und zu trainieren:

  1. Klicken Sie in der Google Cloud Console auf die Schaltfläche Neue Abfrage erstellen.

  2. Geben Sie im Abfrageeditor die folgende GoogleSQL-Abfrage ein:

       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}`
    

    Ersetzen Sie Folgendes:

    • MODEL_NAME: Der Name des Modells, das Sie zum Generieren von Statistiken trainiert haben.
    • TIME_SERIES_TIMESTAMP_COL: Der Name der Spalte mit den Zeitpunkten, die beim Trainieren des Modells verwendet werden.
    • TIME_SERIES_DATA_COL: Der Name der Spalte, die die zu prognostizierenden Daten enthält.

    Weitere Informationen zu den Argumenten finden Sie in der Syntax von CREATE MODEL.

  3. Klicken Sie auf Ausführen. Ihr Modell wird im Navigationsbereich angezeigt.

Statistiken generieren und bereitstellen

Mithilfe Ihres Modells für maschinelles Lernen können Sie Erkenntnisse gewinnen. Wenn Sie beispielsweise ein ARIMA_PLUS-Modell erstellt haben, können Sie damit Statistiken für Zeitreihenwerte wie zukünftige Umsatzvorhersagen generieren.

Insights generieren

So generieren Sie Statistiken auf der Grundlage eines trainierten Modells:

  1. Klicken Sie in der Google Cloud Console auf die Schaltfläche Neue Abfrage erstellen.

  2. Geben Sie im Abfrageeditor die folgende GoogleSQL-Abfrage ein:

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

    Ersetzen Sie Folgendes:

    • MODEL_NAME: Der Name des Modells, das Sie zum Generieren von Statistiken trainiert haben.
    • HORIZON: Ein INT64-Wert, der die Anzahl der zu prognostizierenden Zeitpunkte angibt.
    • CONFIDENCE_LEVEL: Ein FLOAT64-Wert, der den Prozentsatz der zukünftigen Werte angibt, die in das Vorhersageintervall fallen.

    Weitere Informationen zu den Argumenten finden Sie unter ML.FORECAST-Funktion.

  3. Klicken Sie auf Ausführen. Das ML-Modell liefert eine Ausgabe mit prognostizierten Werten für zukünftige Zeiträume.

  4. Klicken Sie auf den Tab Ergebnisse, wenn die Abfrage abgeschlossen ist. Die Ergebnisse sollten so aussehen:

    Statistiken mit BigQuery ML generieren und bereitstellen

Statistiken bereitstellen

Wenn Sie generierte Vorhersagen für datengetriebene Geschäftsentscheidungen aus Ihrer SAP-Anwendung mit dem ABAP SDK for Google Cloud bereitstellen möchten, verwenden Sie die Methode QUERY_JOBS der Klasse /GOOG/CL_BIGQUERY_V2.

Damit Sie die in diesem Abschnitt beschriebene Beispiellösung mit minimalem Aufwand bereitstellen können, wird in GitHub ein Codebeispiel bereitgestellt. Dieses Codebeispiel zeigt ein End-to-End-Beispiel für die Generierung von Prognosen für zukünftige Zeitreihenwerte mit dem ARIMA_PLUS-Modell und der lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud.

Nächste Schritte

  • Eine Übersicht über BigQuery ML finden Sie unter Einführung in BigQuery ML.
  • Informationen zur Bewertung der verfügbaren BigQuery-Modelle für maschinelles Lernen für Ihre Geschäftsprozesse und ‑anforderungen finden Sie unter End-to-End-Nutzerpfad für jedes Modell.
  • Anstatt Ad-hoc-Abfragen auszuführen, um BigQuery ML-Vorhersagen zu erhalten, können Sie mit Cloud Run automatisch Statistiken für neue oder geänderte Daten in BigQuery generieren. Die generierten Statistiken können in eine temporäre BigQuery-Tabelle geschrieben und dann von einer SAP-Anwendung abgerufen werden.
  • Wenn Sie aus Ihren SAP-Daten mehr Nutzen und Informationen ziehen möchten, können Sie die Cortex Data Foundation von Google Cloud verwenden. Diese bietet eine skalierbare und erweiterbare Datengrundlage sowie vordefinierte Datenmodelle und Pipelines für gängige Geschäftsanwendungsfälle im Zusammenhang mit SAP.
  • Weitere Informationen zur Google Cloud Console finden Sie unter Google Cloud Console verwenden.
  • Weitere Informationen zum ABAP SDK for Google Cloud finden Sie unter ABAP SDK for Google Cloud – Übersicht.
  • Wenn Sie Hilfe bei der Behebung von Problemen mit dem ABAP SDK for Google Cloud benötigen, gehen Sie so vor:

Beitragende

Autor: Ajith Urimajalu | SAP Application Engineer Team Lead

Weiterer Mitwirkender: Vikash Kumar | Technischer Autor