Insight bisnis di SAP dengan BigQuery ML

Dokumen ini menjelaskan arsitektur referensi untuk menggunakan BigQuery ML guna mem-build solusi machine learning di lingkungan SAP Anda, dengan menggunakan ABAP SDK untuk Google Cloud edisi cloud atau lokal. Dengan bantuan arsitektur referensi yang dijelaskan dalam dokumen ini, Anda dapat membangun solusi yang mengekstrak insight berbasis data untuk mempercepat proses pengambilan keputusan bisnis dalam SAP.

Audiens yang dituju untuk dokumen ini mencakup developer ABAP, arsitek solusi SAP, dan arsitek cloud. Dokumen ini mengasumsikan bahwa Anda sudah memahami BigQuery dan SQL.

Arsitektur

Diagram berikut menunjukkan arsitektur referensi untuk solusi machine learning yang memberikan insight bisnis berdasarkan data dari sistem SAP ERP:

Solusi machine learning untuk insight bisnis di SAP

Arsitektur solusi machine learning ini mencakup komponen berikut:

Komponen Subsistem Detail
1 Sumber data Sistem SAP ERP seperti SAP S/4HANA, yang merupakan sumber data perusahaan.
2 Data warehouse BigQuery, yang menyimpan data mentah dari sistem sumber dan insight yang dihasilkan ML.
3 Machine learning: Pelatihan Model machine learning, yang dilatih pada data sumber untuk menghasilkan insight bisnis.
4 Machine learning: Menayangkan Insight Komponen yang menampilkan insight bisnis yang dihasilkan ML untuk digunakan SAP.

Produk yang digunakan

Arsitektur referensi ini menggunakan produk Google Cloud berikut:

  • ABAP SDK untuk Google Cloud: Membantu Anda mengembangkan aplikasi ABAP yang menghubungkan sistem SAP ke layanan Google Cloud, seperti BigQuery.
  • BigQuery: Membantu Anda mengelola dan menganalisis data perusahaan.

Kasus penggunaan

BigQuery ML memungkinkan pengguna SAP memperoleh insight berharga untuk pengambilan keputusan dan hasil bisnis yang lebih baik dengan menggunakan data perusahaan yang disimpan di BigQuery. Bagian ini memberikan contoh kasus penggunaan yang dapat Anda gunakan BigQuery ML untuk membuat solusi machine learning.

Perkiraan

Perkiraan di BigQuery ML melibatkan analisis data deret waktu historis untuk memprediksi tren mendatang. Misalnya, Anda dapat menganalisis data penjualan historis dari beberapa lokasi toko untuk memprediksi penjualan mendatang di lokasi tersebut. Anda dapat melakukan perkiraan dengan menggunakan fungsi ML.FORECAST dengan model ARIMA_PLUS atau ARIMA_PLUS_XREG.

Deteksi anomali

Deteksi anomali menemukan pola yang tidak biasa dalam data, sehingga memungkinkan respons proaktif terhadap potensi masalah atau peluang. Dengan data berlabel, Anda dapat menggunakan berbagai model machine learning terpantau untuk tugas ini. Anda dapat menggunakan regresi linear dan logistik, hierarki yang ditingkatkan, hutan acak, jaringan neural dalam, model lebar dan dalam, atau model AutoML untuk deteksi anomali.

Sistem rekomendasi

Sistem rekomendasi adalah alat yang canggih bagi bisnis, yang membantu pengguna menemukan konten yang relevan dalam koleksi yang luas. Sistem ini menggunakan machine learning untuk menyarankan item yang mungkin tidak ditemukan pengguna sendiri, sehingga mengatasi keterbatasan penelusuran. Sistem rekomendasi terutama menggunakan dua pendekatan:

Pertimbangan desain

Bagian ini berisi panduan untuk membantu Anda menggunakan arsitektur referensi ini untuk mengembangkan arsitektur yang membantu Anda memenuhi persyaratan khusus dalam hal keamanan, privasi, kepatuhan, biaya, dan performa.

Keamanan, privasi, dan kepatuhan:

Untuk menerapkan kebijakan tata kelola data, Anda dapat menggunakan fitur BigQuery. Tata kelola data mengelola keamanan dan kualitas data selama siklus prosesnya untuk memastikan akses dan akurasi mematuhi kebijakan dan peraturan. Untuk informasi selengkapnya, lihat Pengantar tata kelola data di BigQuery.

Biaya dan performa

Untuk mengetahui estimasi biaya resource Google Cloud yang digunakan oleh data warehouse dengan solusi BigQuery, lihat estimasi yang telah dihitung sebelumnya di Kalkulator Harga Google Cloud.

Saat mulai menskalakan dengan BigQuery, Anda memiliki sejumlah cara untuk membantu meningkatkan performa kueri dan mengurangi total pembelanjaan. Metode ini termasuk mengubah cara data Anda disimpan secara fisik, memodifikasi kueri SQL Anda, dan menggunakan reservasi slot untuk memastikan performa biaya. Untuk mengetahui informasi selengkapnya tentang cara menskalakan dan menjalankan data warehouse, lihat Pengantar cara mengoptimalkan performa kueri.

Alternatif desain

Meskipun dokumen ini berfokus pada ABAP SDK untuk Google Cloud edisi lokal atau cloud, Anda dapat memperoleh hasil yang serupa dengan menggunakan ABAP SDK untuk Google Cloud edisi SAP BTP. Anda dapat menyesuaikan resource yang disediakan untuk membuat solusi serupa dalam lingkungan SAP BTP.

Deployment

Bagian ini menunjukkan cara memuat data dari sistem SAP sumber ke BigQuery, membuat model machine learning yang sesuai dengan persyaratan bisnis Anda, dan akhirnya menghasilkan insight yang dapat digunakan untuk keputusan bisnis di SAP.

Sebelum memulai

Sebelum menerapkan solusi berdasarkan arsitektur referensi ini, pastikan Anda telah menyelesaikan prasyarat berikut:

Memuat data dari sistem sumber SAP ke BigQuery

Untuk memuat data dari sistem sumber SAP ke tabel BigQuery dengan menggunakan ABAP SDK untuk Google Cloud, Anda menggunakan metode INSERT_ALL_TABLEDATA dari class /GOOG/CL_BIGQUERY_V2. Data ini berfungsi sebagai dasar untuk melatih model machine learning.

Contoh kode berikut mengilustrasikan cara memuat data dari sistem sumber SAP ke tabel 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.

Ganti kode berikut:

  • CLIENT_KEY: Kunci klien yang dikonfigurasi untuk autentikasi.
  • BIGQUERY_DATASET: ID set data BigQuery target.
  • BIGQUERY_TABLE: ID tabel BigQuery target.

Atau, jika Anda mencari solusi penyerapan data BigQuery tanpa kode yang menangani pemuatan awal dan penanganan delta (CDC), Anda dapat mempertimbangkan BigQuery Connector untuk SAP, Cloud Data Fusion, atau SAP Datasphere.

Membuat model machine learning

BigQuery menyediakan daftar komprehensif model machine learning dan resource AI untuk mendapatkan insight dari data perusahaan. Salah satu model tersebut adalah ARIMA_PLUS, yang dapat Anda gunakan untuk memperkirakan nilai deret waktu mendatang berdasarkan data historis. Misalnya, Anda dapat menggunakan model ARIMA_PLUS untuk memprediksi volume penjualan mendatang berdasarkan data historis. Untuk melatih model baru dengan data SAP yang telah Anda muat ke BigQuery, Anda menggunakan pernyataan CREATE MODEL. Bergantung pada ukuran data Anda, proses ini mungkin memerlukan waktu beberapa menit atau jam untuk dijalankan. Setelah model dibuat, Anda dapat melihat model di BigQuery Studio.

Untuk membuat dan melatih model, jalankan pernyataan CREATE MODEL:

  1. Di konsol Google Cloud, klik tombol Compose new query.

  2. Masukkan kueri GoogleSQL berikut di Query editor:

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

    Ganti kode berikut:

    • MODEL_NAME: Nama model yang telah Anda latih untuk menghasilkan insight.
    • TIME_SERIES_TIMESTAMP_COL: Nama kolom yang memberikan titik waktu yang digunakan dalam melatih model.
    • TIME_SERIES_DATA_COL: Nama kolom yang berisi data yang akan diramalkan.

    Untuk informasi selengkapnya tentang argumen, lihat sintaksis CREATE MODEL.

  3. Klik Run. Model Anda akan muncul di panel navigasi.

Membuat dan menayangkan insight

Anda dapat menghasilkan insight menggunakan model machine learning. Misalnya, jika membuat model ARIMA_PLUS, Anda dapat menggunakannya untuk menghasilkan insight untuk nilai deret waktu seperti prediksi penjualan di masa mendatang.

Menghasilkan insight

Untuk membuat insight berdasarkan model yang dilatih, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud, klik tombol Compose new query.

  2. Masukkan kueri GoogleSQL berikut di Query editor:

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

    Ganti kode berikut:

    • MODEL_NAME: Nama model yang telah Anda latih untuk menghasilkan insight.
    • HORIZON: Nilai INT64 yang menentukan jumlah titik waktu yang akan diramalkan.
    • CONFIDENCE_LEVEL: Nilai FLOAT64 yang menentukan persentase nilai mendatang yang berada dalam interval prediksi.

    Untuk informasi selengkapnya tentang argumen, lihat Fungsi ML.FORECAST.

  3. Klik Run. Model ML memberikan output nilai perkiraan untuk tanggal mendatang.

  4. Setelah kueri selesai, klik tab Results. Hasilnya akan terlihat seperti berikut:

    Membuat dan menayangkan insight menggunakan BigQuery ML

Menayangkan insight

Untuk menayangkan prediksi yang dihasilkan untuk keputusan bisnis berbasis data dari aplikasi SAP menggunakan ABAP SDK untuk Google Cloud, Anda menggunakan metode QUERY_JOBS dari class /GOOG/CL_BIGQUERY_V2.

Untuk membantu Anda men-deploy contoh solusi yang dijelaskan di bagian ini dengan upaya minimal, contoh kode disediakan di GitHub. Contoh kode ini menunjukkan contoh menyeluruh untuk membuat perkiraan nilai deret waktu mendatang menggunakan model ARIMA_PLUS dan ABAP SDK untuk Google Cloud edisi cloud atau lokal.

Langkah selanjutnya

  • Untuk ringkasan BigQuery ML, lihat Pengantar BigQuery ML.
  • Untuk mengevaluasi model machine learning BigQuery yang tersedia untuk proses dan persyaratan bisnis Anda, lihat Perjalanan pengguna menyeluruh untuk setiap model.
  • Daripada menjalankan kueri ad hoc untuk mendapatkan prediksi BigQuery ML, Anda dapat menggunakan Cloud Run untuk otomatis menghasilkan insight untuk data baru atau yang diubah di BigQuery. Insight yang dihasilkan dapat ditulis ke tabel BigQuery sementara, lalu diambil oleh aplikasi SAP.
  • Untuk mengekstrak nilai dan insight yang lebih besar dari data SAP, Anda dapat menggunakan Cortex Data Foundation Google Cloud yang menyediakan fondasi data yang skalabel dan dapat diperluas, bersama dengan model data dan pipeline bawaan untuk kasus penggunaan bisnis umum yang terkait dengan SAP.
  • Untuk mempelajari konsol Google Cloud lebih lanjut, lihat Menggunakan konsol Google Cloud.
  • Untuk mempelajari ABAP SDK untuk Google Cloud, lihat Ringkasan ABAP SDK untuk Google Cloud.
  • Jika Anda memerlukan bantuan untuk menyelesaikan masalah terkait ABAP SDK untuk Google Cloud, lakukan hal berikut:

Kontributor

Penulis: Ajith Urimajalu | SAP Application Engineer Team Lead

Kontributor lainnya: Vikash Kumar | Technical Writer