Mempublikasikan tabel Lakehouse ke SAP BDC

Dokumen ini menjelaskan cara mengonfigurasi Google Cloud agar SAP Business Data Cloud (BDC) dapat mengakses data BigQuery tanpa menyalinnya. Anda melakukannya dengan menyiapkan endpoint katalog REST Apache Iceberg di katalog runtime Lakehouse untuk Apache Iceberg atau Produk Data Knowledge Catalog untuk dibagikan ke SAP.

Untuk mengetahui ringkasan integrasi ini dan kasus penggunaannya, lihat Tentang integrasi SAP BDC.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the BigLake and Dataplex APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the BigLake and Dataplex APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  6. Bucket Cloud Storage: Buat bucket Cloud Storage untuk menyimpan metadata Iceberg dan file data Anda. Untuk mengetahui petunjuknya, lihat Membuat bucket. Semua resource, termasuk bucket backend, harus ada di region yang sama untuk menghindari kegagalan pipeline konfigurasi.
  7. Katalog REST Apache Iceberg: Siapkan endpoint katalog REST Apache Iceberg di katalog runtime Lakehouse dengan pengaktifan penyediaan kredensial, yang berisi namespace dan tabel yang ingin Anda bagikan. Katalog ini menggunakan bucket Cloud Storage sebagai gudangnya. Untuk mengetahui petunjuknya, lihat Menyiapkan katalog REST Iceberg.
  8. Katalog koneksi Delta Sharing: Siapkan katalog koneksi Delta Sharing yang terdaftar untuk koneksi BDC SAP Anda. Katalog ini sama dengan katalog yang dibuat selama penyiapan awal untuk membagikan data dari SAP BDC ke BigQuery; Anda tidak perlu membuat yang baru. Untuk mengetahui petunjuknya, lihat Menyiapkan Lakehouse lintas cloud untuk BDC SAP.
  9. Workload Identity Federation (WIF): Bersiaplah untuk mengonfigurasi WIF agar mempercayai penerbit autentikasi SAP BDC. Anda akan menyiapkannya di bagian berikutnya.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi Workload Identity Federation dan memublikasikan data, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Alur kerja umum

Untuk memublikasikan data ke SAP BDC, ikuti langkah-langkah berikut:

  1. Konfigurasi Workload Identity Federation: Buat pool dan penyedia Workload Identity Federation untuk membangun kepercayaan dengan penerbit OIDC SAP BDC.
  2. Memberikan peran kepada akun utama gabungan: Berikan izin identitas gabungan untuk melihat metadata katalog dan menggunakan kuota layanan.
  3. Publikasikan data: Publikasikan katalog REST Apache Iceberg atau Produk Data Knowledge Catalog ke SAP BDC menggunakan CLI gcloud.

Mengonfigurasi Workload Identity Federation

Agar SAP BDC dapat mengakses resource Lakehouse Anda tanpa memerlukan kunci akun layanan yang diekspor, konfigurasikan Workload Identity Federation (WIF). Tindakan ini akan membuat kepercayaan antara Google Cloud dan penerbit OIDC SAP BDC.

Ikuti langkah-langkah berikut untuk menyiapkan pool dan penyedia WIF:

Mendapatkan URI Penerbit

Ambil URI penerbit OIDC dari katalog koneksi Delta Sharing Anda. Anda memerlukan URI ini untuk mengonfigurasi penyedia WIF.

gcloud alpha biglake delta-sharing catalogs describe CONNECTION_CATALOG_ID \
    --project="PROJECT_ID"

Di output perintah, temukan kolom federatedIdentityIssuer, yang berisi URI penerbit.

Buat Workload Identity Pool

Buat workload identity pool untuk mengelompokkan identitas eksternal.

gcloud iam workload-identity-pools create POOL_ID \
    --location="global" \
    --display-name="POOL_DISPLAY_NAME" \
    --project="PROJECT_ID"

Buat Penyedia OIDC

Buat penyedia OIDC dalam pool untuk menentukan kepercayaan dan memetakan klaim token.

gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \
    --location="global" \
    --workload-identity-pool="POOL_ID" \
    --issuer-uri="ISSUER_URI" \
    --attribute-mapping="google.subject=assertion.sub.split('://')[1].split('.')[0]" \
    --project="PROJECT_ID"

Memberikan peran kepada akun utama gabungan

Beri otorisasi identitas gabungan dari kumpulan tepercaya untuk memanggil Google API yang diperlukan. Anda dapat mengizinkan UUID subjek tertentu atau seluruh pool.

Untuk memberi otorisasi subjek tertentu (direkomendasikan):

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/biglake.viewer" \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/serviceusage.serviceUsageConsumer" \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT"

Ganti WIF_SUBJECT dengan UUID yang dikeluarkan oleh penerbit sisi SAP untuk workload.

Untuk mengizinkan setiap identitas dalam pool (kurang ketat, cocok untuk lingkungan pengujian):

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/biglake.viewer" \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/serviceusage.serviceUsageConsumer" \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"

Memublikasikan data ke SAP BDC

Anda dapat memublikasikan katalog REST Apache Iceberg menggunakan konsol Google Cloud atau Google Cloud CLI, atau Anda dapat memublikasikan Produk Data Knowledge Catalog yang berisi tabel Iceberg menggunakan gcloud CLI. Publikasi Produk Data tidak didukung di konsol Google Cloud .

Katalog REST Iceberg

Sebelum memublikasikan, pastikan tabel Iceberg Anda memiliki kunci utama dan setidaknya satu baris, karena SAP BDC memerlukan keduanya untuk kueri.

Konsol

  1. Di konsol Google Cloud , buka halaman Lakehouse Runtime Catalog.

    Buka Katalog Runtime Lakehouse

  2. Di panel navigasi, luaskan project Anda dan pilih Delta Catalog (katalog koneksi) yang akan digunakan untuk memublikasikan.

  3. Klik Publikasikan Produk Data.

  4. Masukkan detail berbagi yang diperlukan, termasuk memilih katalog REST Iceberg yang akan dipublikasikan.

  5. Klik Publikasikan.

gcloud

  1. Verifikasi bahwa endpoint katalog REST Apache Iceberg ada dan dapatkan detailnya:

    gcloud alpha biglake iceberg catalogs describe ICEBERG_CATALOG_ID \
        --project="PROJECT_ID"
  2. Publikasikan katalog REST Apache Iceberg ke SAP BDC. Perhatikan bahwa katalog koneksi, katalog Iceberg, dan bucket Cloud Storage yang mendasarinya harus berada di region yang sama.

    gcloud alpha biglake data-product-sharing publish \
        --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \
        --share="SAP_SHARE_NAME" \
        --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \
        --iceberg-catalog="projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID" \
        --title="TITLE_TEXT" \
        --short-description="SHORT_DESCRIPTION_TEXT" \
        --description="DETAILED_DESCRIPTION_TEXT" \
        --project="PROJECT_ID"

    Katalog REST Apache Iceberg yang dipublikasikan dapat ditemukan di SAP BDC dan dapat diinstal di SAP Datasphere sebagai tabel jarak jauh.

    Ganti kode berikut:

    • CONNECTION_CATALOG_ID: Katalog koneksi Delta Sharing yang terdaftar dan dibuat selama penyiapan awal untuk membagikan data dari SAP BDC ke BigQuery. Katalog ini sama dengan katalog Delta Sharing yang disebutkan dalam petunjuk penyiapan; Anda tidak perlu membuat katalog lain untuk memublikasikan kembali.
    • PROJECT_NUMBER: Nomor project Google Cloud Anda. sap-federated-identity-provider harus menggunakan nomor project, bukan project ID.
    • POOL_ID: ID pool WIF.
    • PROVIDER_ID: ID penyedia WIF.
    • TITLE_TEXT dan SHORT_DESCRIPTION_TEXT: Nilai tampilan yang diperlukan untuk saham di SAP BDC.
    • DETAILED_DESCRIPTION_TEXT: Deskripsi mendetail opsional. Jangan memasukkan teks yang sama untuk deskripsi singkat dan deskripsi mendetail, karena akan ditolak oleh SAP. Operasi publish juga ditolak jika deskripsi mendetail berisi deskripsi singkat yang sama persis sebagai substring. Misalnya, jika deskripsi singkatnya adalah Sales Data, deskripsi mendetail Longer Sales Data details ditolak karena berisi Sales Data. Namun, deskripsi mendetail tentang "Informasi Penjualan yang Lebih Panjang" diterima.

Produk Data Knowledge Catalog

Atau, Anda dapat memublikasikan Produk Data Knowledge Catalog. Produk Data adalah pengelompokan aset data (seperti tabel atau tampilan) yang dikurasi dan logis, serta dikemas bersama untuk memecahkan masalah bisnis tertentu. Daripada memublikasikan katalog lengkap, Anda dapat memilih tabel Apache Iceberg tertentu, mengelompokkannya ke dalam Produk Data, dan memublikasikan kumpulan pilihan tersebut ke SAP BDC.

  1. Buat Produk Data:

    gcloud alpha dataplex data-products create DATA_PRODUCT_ID \
        --location="LOCATION" \
        --display-name="TITLE_TEXT" \
        --description="SHORT_DESCRIPTION_TEXT" \
        --owner-emails="OWNER_EMAIL" \
        --project="PROJECT_ID"

    --display-name dipetakan ke title di SAP BDC, dan --description dipetakan ke short_description.

  2. Menautkan aset Tabel Iceberg Lakehouse ke Produk Data:

    gcloud alpha dataplex data-products data-assets create DATA_ASSET_ID \
        --data_product="DATA_PRODUCT_ID" \
        --location="LOCATION" \
        --resource="//biglake.googleapis.com/projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME" \
        --project="PROJECT_ID"

    Saat mengonfigurasi aset dalam Produk Data, aset tabel harus memiliki kunci utama dan setidaknya satu baris. Semua aset data dalam satu Produk Data harus berasal dari katalog REST Apache Iceberg yang sama. Produk Data dapat memiliki maksimum 50 tabel, dan harus berisi setidaknya satu aset data yang valid untuk dipublikasikan. Tabel iceberg mungkin tidak langsung muncul di konsol.Google Cloud

  3. Opsional: Verifikasi aset di Produk Data Anda:

    gcloud alpha dataplex data-products data-assets list \
        --data_product="DATA_PRODUCT_ID" \
        --location="LOCATION" \
        --project="PROJECT_ID"
  4. Publikasikan Produk Data ke SAP BDC. Pastikan katalog koneksi, Produk Data, dan resource pokok berada di region yang sama.

    gcloud alpha biglake data-product-sharing publish \
        --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \
        --share="SAP_SHARE_NAME" \
        --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \
        --data-product="projects/PROJECT_ID/locations/LOCATION/dataProducts/DATA_PRODUCT_ID" \
        --project="PROJECT_ID"

    Produk Data yang dipublikasikan dapat ditemukan di SAP BDC dan dapat diinstal di SAP Datasphere sebagai tabel jarak jauh. Di SAP BDC, Produk Data yang dipublikasikan mewarisi judul dan deskripsi singkat yang ditetapkan saat membuat Produk Data Knowledge Catalog.

    Ganti kode berikut:

    • CONNECTION_CATALOG_ID: Katalog koneksi Delta Sharing yang terdaftar dan dibuat selama penyiapan awal untuk membagikan data dari SAP BDC ke BigQuery. Katalog ini sama dengan katalog Delta Sharing yang disebutkan dalam petunjuk penyiapan; Anda tidak perlu membuat katalog lain untuk memublikasikan kembali.
    • PROJECT_NUMBER: Nomor project Google Cloud Anda. sap-federated-identity-provider harus menggunakan nomor project, bukan project ID.
    • POOL_ID: ID pool WIF.
    • PROVIDER_ID: ID penyedia WIF.
    • DATA_PRODUCT_ID: ID Produk Data Knowledge Catalog Anda.
    • LOCATION: Lokasi Produk Data Knowledge Catalog Anda.
    • SAP_SHARE_NAME: Nama berbagi di SAP BDC.

Mengakses Google Cloud data di SAP BDC

Setelah memublikasikan data ke SAP BDC, Anda dapat mengakses Google Cloud data secara native di lingkungan SAP. Untuk mengetahui informasi selengkapnya tentang cara menginstal dan menggunakan Produk Data di SAP sebagai tabel jarak jauh, lihat Menginstal Produk Data dalam dokumentasi SAP.

Langkah berikutnya