Halaman ini menjelaskan cara mengatasi masalah umum saat Anda mengintegrasikan SAP Business Data Cloud (BDC) dengan BigQuery. Untuk mengetahui alur kerja SAP ke Google Cloud (Federasi) menggunakan Lakehouse tanpa batas, lihat halaman pemecahan masalah Lakehouse tanpa batas.
Error NOT_FOUND atau PERMISSION_DENIED saat membuat kueri tabel
Masalah ini terjadi saat akses dicabut di sisi SAP BDC. Kueri ke tabel yang terpengaruh akan gagal dan menampilkan error "tidak ditemukan" atau "izin ditolak" yang berasal dari endpoint Delta Sharing.
Untuk mengatasi masalah ini, hubungi administrator SAP Anda untuk memulihkan akses ke tabel. Untuk mengetahui informasi selengkapnya tentang pengelolaan akses di SAP, lihat Menggunakan Produk Data di SAP Business Data Cloud Connect dalam dokumentasi SAP.
Tidak dapat menulis data ke tabel SAP BDC
Masalah ini terjadi saat Anda mencoba menulis atau mengubah data di tabel SAP BDC dari BigQuery. Integrasi ini memberikan akses baca saja ke data SAP BDC.
Untuk mengatasi masalah ini, ubah data langsung di SAP BDC.
Tagihan harga yang tidak terduga untuk panggilan Delta Sharing API
Masalah ini dapat terjadi jika katalog Lakehouse Anda terlalu sering disinkronkan dengan SAP BDC, yang memanggil Delta Sharing API untuk mencantumkan tabel dan mendapatkan metadata tabel. Panggilan API tersebut dikenai biaya sebagai operasi Lakehouse Class A.
Untuk mengatasi masalah ini, tingkatkan interval refresh katalog untuk mengurangi frekuensi panggilan API. Untuk mengetahui informasi selengkapnya tentang harga, lihat Harga Lakehouse.
SAP tidak dapat menemukan atau membuat kueri tabel yang dipublikasikan
Masalah ini dapat terjadi jika metadata Apache Iceberg yang diperlukan oleh SAP BDC belum dibuat dengan benar di bucket Cloud Storage Anda.
Untuk mengatasi masalah ini, pastikan file metadata yang diharapkan ada di jalur penyimpanan yang mendukung tabel Anda:
Cantumkan konten folder
metadatauntuk tabel Anda:gcloud storage ls "gs://BUCKET_NAME/NAMESPACE_NAME/TABLE_NAME/metadata/"
Pastikan output berisi file metadata Apache Iceberg standar, termasuk:
version-hint.txtv*.metadata.json- File manifes (
.avro). Jika file ini tidak ada, periksa konfigurasi katalog REST Iceberg atau operasi tulis di BigQuery untuk memastikan data dan metadata berhasil diwujudkan ke bucket penyimpanan.
Publikasi tabel gagal dengan error kolom kunci utama atau kolom yang dapat diisi null
Masalah ini terjadi saat Anda memublikasikan Katalog Apache Iceberg atau Produk Data ke SAP BDC, tetapi tabel dalam katalog atau produk data tidak memiliki kunci utama yang ditentukan dalam metadata Iceberg-nya, atau salah satu kolom kunci utama ditentukan sebagai dapat diisi null (required: false).
Jika hal ini terjadi, publikasi akan gagal dengan salah satu error berikut:
INVALID_ARGUMENT: Failed to generate Core Schema Notation (CSN) payload: Table 'TABLE_NAME' must have a primary key constraint to be published to SAP.INVALID_ARGUMENT: Field COLUMN_NAME is not required, but is referenced in the identifier-field-ids property.
SAP BDC mengharuskan semua tabel yang dipublikasikan untuk menentukan batasan kunci utama menggunakan identifier-field-ids dalam metadata Iceberg. Sesuai dengan spesifikasi Apache Iceberg, semua kolom yang ditetapkan di identifier-field-ids juga harus dikonfigurasi sebagai tidak dapat diisi null (required: true).
Untuk mengatasi masalah ini, lakukan update skema atomik menggunakan BigLake Iceberg REST API untuk menandai kolom kunci utama sebagai required: true dan menentukan ID kolomnya di identifier-field-ids:
Dapatkan token akses untuk otorisasi:
TOKEN=$(gcloud auth application-default print-access-token)
Kirim commit update skema REST Iceberg menggunakan Python:
import requests headers = { "Authorization": f"Bearer {TOKEN}", "x-goog-user-project": "PROJECT_ID", "X-Iceberg-Access-Delegation": "vended-credentials", "Content-Type": "application/json", } url = "https://biglake.googleapis.com/iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME" # 1. Fetch current metadata meta = requests.get(url, headers=headers).json()["metadata"] schema = meta["schemas"][0].copy() schema["fields"] = [f.copy() for f in schema["fields"]] # 2. Mark primary key column as required (non-nullable) and set identifier-field-ids for f in schema["fields"]: if f["name"] == "PRIMARY_KEY_COLUMN_NAME": f["required"] = True schema["identifier-field-ids"] = [PRIMARY_KEY_FIELD_ID] schema["schema-id"] = meta.get("last-schema-id", 0) + 1 # 3. Commit the updated schema update_payload = { "requirements": [{"type": "assert-table-uuid", "uuid": meta["table-uuid"]}], "updates": [ { "action": "add-schema", "schema": schema, "last-column-id": meta.get("last-column-id", 0), }, {"action": "set-current-schema", "schema-id": -1}, ], } response = requests.post(url, headers=headers, json=update_payload) response.raise_for_status()
Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud Anda.ICEBERG_CATALOG_ID: ID katalog REST Iceberg Anda.NAMESPACE_NAME: nama namespace Iceberg Anda.TABLE_NAME: nama tabel Iceberg Anda.PRIMARY_KEY_COLUMN_NAME: nama kolom yang akan ditetapkan sebagai kunci utama.PRIMARY_KEY_FIELD_ID: ID kolom bilangan bulat dari kolom kunci utama (misalnya,1).
Kueri di SAP gagal dengan error izin atau tidak ditemukan
Masalah ini dapat terjadi jika akses dicabut atau izin diubah di BigQuery setelah katalog atau Produk Data dipublikasikan ke SAP BDC. Kueri ke tabel yang terpengaruh akan gagal di sisi SAP, biasanya dengan error "tidak ditemukan" atau "izin ditolak" yang berasal dari BigQuery.
Untuk mengatasi masalah ini, pastikan principal Workload Identity Federation mempertahankan peran yang diperlukan (seperti BigLake Viewer) dan akses set data atau tabel BigQuery standar diberikan. Untuk mengetahui informasi selengkapnya tentang cara menginstal dan menggunakan Produk Data di SAP, lihat Menginstal Produk Data dalam dokumentasi SAP.
Tabel baru atau perubahan metadata tidak muncul di SAP BDC
Masalah ini dapat terjadi saat Anda menambahkan tabel baru atau memperbarui metadata tabel yang ada di katalog REST Apache Iceberg atau Produk Data Knowledge Catalog, tetapi perubahan tersebut tidak terlihat oleh konsumen SAP. Meskipun data yang mendasarinya tetap baru, update metadata mungkin memerlukan tindakan eksplisit.
Untuk mengatasi masalah ini, jalankan tindakan publikasi baru (gcloud biglake
data-product-sharing publish) untuk katalog atau Produk Data agar metadata baru
dapat ditemukan di SAP BDC.
Tidak dapat menulis data dari SAP kembali ke BigQuery
Masalah ini terjadi saat Anda mencoba menggunakan integrasi SAP yang dipublikasikan untuk menulis atau mengubah data di BigQuery dari SAP BDC. Integrasi ini memberikan akses baca saja ke data BigQuery dari SAP BDC untuk mencegah penimpaan data yang tidak disengaja atau pelanggaran keamanan.
Untuk mengatasi masalah ini, manipulasi dan tulis data sumber Anda secara langsung menggunakan BigQuery atau pipeline standar Google Cloud .
Error RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER saat membuat kueri tabel
Masalah ini dapat terjadi jika lingkungan Anda menerapkan Kontrol Layanan VPC, dan perimeter yang diterapkan pada project membatasi layanan storage.googleapis.com.
Karena Dremel perlu membaca bucket Cloud Storage yang masuk di project SAP saat membuat kueri tabel, permintaan akan dilarang karena project SAP berada di luar perimeter Anda.
Untuk mengatasi masalah ini, konfigurasi aturan egress Kontrol Layanan VPC. Untuk mengetahui informasi selengkapnya tentang konfigurasi, lihat Konfigurasi Kontrol Layanan VPC untuk SAP BDC.