Mengintegrasikan dan menyinkronkan produk data SAP Business Data Cloud dengan Cortex Framework menggunakan katalog runtime Lakehouse.

Dokumen ini menjelaskan cara menghubungkan Cortex Framework ke SAP Business Data Cloud menggunakan integrasi katalog runtime Lakehouse.

Dengan menggabungkan Google Cloud SAP Delta Sharing dengan koneksi federasi katalog runtime BigQuery Lakehouse, Cortex Framework dapat mengkueri produk data apa pun yang dikelola di dalam SAP BDC langsung di BigQuery tanpa overhead salinan, dan mereferensikannya dalam produk data analitik hilir kustom. Komponen utama integrasi ini adalah:

  1. Federated Querying: Produk data yang dipublikasikan di SAP BDC diekspos menggunakan endpoint Delta Sharing yang aman. BigQuery menggabungkan kueri ke endpoint ini menggunakan koneksi katalog runtime Lakehouse Google Cloud .
  2. Pendaftaran Katalog: Di Cortex Framework, Anda mendaftarkan katalog SAP BDC menggunakan modul jenis delta_share di bagian data.modules.catalogs dalam config/config.yaml.
  3. Pengikatan produk data Google Cloud Cortex Framework: Produk data kustom hilir mereferensikan tabel katalog BDC dengan mengikat dependensi inputnya ke ID tabel dan berbagi Delta Sharing tertentu dalam format {catalog_id}.{share_id}.{table_name}.

Prasyarat untuk SAP BDC

Sebelum mengonfigurasi koneksi di Cortex Framework, Anda harus menyelesaikan langkah-langkah berikut di Google Cloud dan SAP:

  • Konfigurasi Google Cloud katalog runtime Lakehouse: Siapkan koneksi katalog runtime BigQuery Lakehouse di Google Cloud Project Anda dengan memanfaatkan Google Cloud Delta Sharing untuk SAP Business Data Cloud.
  • Mengambil ID Berbagi: Temukan dan cantumkan nilai shareId Delta Sharing (misalnya, customer_v1_he2_100_p8123 atau salesorder_v1_he2_100_p8124) yang dipublikasikan oleh tenant SAP BDC yang terhubung.

Contoh konfigurasi

Contoh konfigurasi berikut mendaftarkan katalog BDC SAP dan menggunakan pembagiannya untuk menghitung produk data performa penjualan kustom:

buildEnvironment:
  buildProjectId: YOUR_BUILD_PROJECT_ID

data:
  bigQueryLocation: europe-west3
  namespaces:
    - name: cortex
      path: ../src/data_modules/cortex
    - name: cortex_samples
      path: ../src/data_modules/cortex_samples
  datasets:
    - id: sap_bdc_data_products
      projectId: YOUR_TARGET_PROJECT_ID
      datasetId: sap_bdc_data_products

  modules:
    # 1. Register the SAP BDC Lakehouse runtime catalog connection (using lakehouse_delta_share type)
    catalogs:
      - id: sap_bdc_catalog
        type: lakehouse_delta_share
        enabled: true
        bindsNamespaces: [sap_bdc]
        connectionSettings:
          catalogId: sap_bdc_catalog
          projectId: YOUR_CATALOG_PROJECT_ID
          location: europe-west3
          shares:
            - shareId: customer_v1_he2_100_p8123
            - shareId: salesorder_v1_he2_100_p8124

    # 2. Reference the catalog shares in downstream products
    products:
      - moduleId: sap_bdc_sales_performance
        modulePath: cortex_samples.sap_bdc.products.sales_performance
        dependencyBindings:
          # Bind logical dependencies directly to the catalog shares and tables
          sapBdcCustomer: sap_bdc_catalog.customer_v1_he2_100_p8123.customer
          sapBdcSalesOrder: sap_bdc_catalog.salesorder_v1_he2_100_p8124.salesorder
        dataTargetId: sap_bdc_data_products

Untuk referensi parameter, lihat bagian Konfigurasi deployment untuk jenis modul katalog data.

Saat produk data kustom mengandalkan tabel katalog runtime Lakehouse, konfigurasikan dependensi inputnya di config/config.yaml menggunakan sintaksis jalur katalog:

dependencyBindings:     {logical_input_name}: {catalog_id}.{share_id}.{table_name}

Dengan:

  • {catalog_id} cocok dengan properti id katalog di bagian data.modules.catalogs.
  • {share_id} cocok dengan salah satu string shareId katalog yang dinyatakan.
  • {table_name} cocok dengan nama tabel fisik yang ditampilkan dalam berbagi tersebut.

Pengikatan dependensi Dataform hilir

Selama kompilasi (cortex-build), Cortex Framework membaca metadata katalog dan secara otomatis menerjemahkan binding dependensi ke dalam nama tabel gabungan BigQuery yang sepenuhnya memenuhi syarat.

Dalam definisi produk data kustom Anda (misalnya, file .js atau .sqlx), rujuk sumber SAP BDC yang disesuaikan:

// Example JS definition referencing SAP BDC inputs
const moduleConfig = config.product[moduleContext.moduleId];
const customerSource = moduleConfig.sources.sapBdcCustomer;
const salesOrderSource = moduleConfig.sources.sapBdcSalesOrder;

publish("custom_sales_performance", {
  type: "table",
}).query(
  (ctx) => `
    SELECT
      cust.customer_id,
      orders.sales_order_id,
      orders.amount
    FROM ${ctx.ref(customerSource.datasetId, customerSource.tableName)} AS cust
    JOIN ${ctx.ref(salesOrderSource.datasetId, salesOrderSource.tableName)} AS orders
      ON cust.customer_id = orders.customer_id
  `
);