Questo documento spiega come configurare Google Cloud per consentire a SAP Business Data Cloud (BDC) di accedere ai dati BigQuery senza copiarli. A questo scopo, configura l'endpoint del catalogo REST Apache Iceberg nel catalogo di runtime di Lakehouse for Apache Iceberg o in un prodotto di dati di Knowledge Catalog da condividere con SAP.
Per una panoramica di questa integrazione e dei relativi casi d'uso, consulta Informazioni sull'integrazione di SAP BDC.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.- Bucket Cloud Storage: crea un bucket Cloud Storage per archiviare i metadati e i file di dati Iceberg. Per le istruzioni, vedi Creare bucket. Tutte le risorse, incluso il bucket di backend, devono esistere nella stessa regione per evitare errori della pipeline di configurazione.
- Catalogo REST Apache Iceberg: configura un endpoint del catalogo REST Apache Iceberg nel catalogo runtime Lakehouse con la distribuzione delle credenziali abilitata, contenente gli spazi dei nomi e le tabelle che vuoi condividere. Questo catalogo utilizza il bucket Cloud Storage come warehouse. Per istruzioni, vedi Configurare il catalogo REST Iceberg.
- Catalogo delle connessioni Delta Sharing: prepara un catalogo delle connessioni Delta Sharing registrato per la connessione SAP BDC. Si tratta dello stesso catalogo creato durante la configurazione iniziale per la condivisione dei dati da SAP BDC a BigQuery; non è necessario crearne uno nuovo. Per istruzioni, vedi Configurare Lakehouse cross-cloud per SAP BDC.
- Federazione delle identità per i workload (WIF): preparati a configurare WIF in modo che consideri attendibile l'emittente dell'autenticazione SAP BDC. Lo configurerai nella sezione seguente.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare la federazione delle identità per i workload e pubblicare i dati, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
-
Gestisci la federazione delle identità per i workload:
Amministratore pool di identità del workload IAM (
roles/iam.workloadIdentityPoolAdmin) -
Pubblica prodotti di dati:
BigLake Admin (
roles/biglake.admin) -
Visualizza i metadati del catalogo (concessi al principal WIF):
BigLake Viewer (
roles/biglake.viewer) -
Utilizza la quota di servizio (concessa all'entità WIF):
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Flusso di lavoro generale
Per pubblicare i dati in SAP BDC:
- Configura la federazione delle identità per i carichi di lavoro:crea un pool e un fornitore di federazione Workload Identity per stabilire l'attendibilità con l'emittente OIDC SAP BDC.
- Concedi ruoli all'entità federata: concedi all'identità federata le autorizzazioni per visualizzare i metadati del catalogo e utilizzare la quota di servizio.
- Pubblica dati: pubblica il catalogo REST di Apache Iceberg o un prodotto di dati del Knowledge Catalog su SAP BDC utilizzando la CLI
gcloud.
Configura la federazione delle identità per i workload
Per consentire a SAP BDC di accedere alle risorse Lakehouse senza richiedere chiavi dell'account di servizio esportate, configura la federazione delle identità dei carichi di lavoro (WIF). In questo modo si stabilisce un rapporto di fiducia tra Google Cloud e l'emittente OIDC SAP BDC.
Segui questi passaggi per configurare il pool e il fornitore WIF:
Recuperare l'URI emittente
Recupera l'URI dell'emittente OIDC dal catalogo delle connessioni Delta Sharing. Hai bisogno di questo URI per configurare il provider WIF.
gcloud alpha biglake delta-sharing catalogs describe CONNECTION_CATALOG_ID \ --project="PROJECT_ID"
Nell'output del comando, individua il campo federatedIdentityIssuer, che contiene l'URI dell'emittente.
Crea il pool di identità del workload
Crea un pool di identità del workload per raggruppare le identità esterne.
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --display-name="POOL_DISPLAY_NAME" \ --project="PROJECT_ID"
Crea il provider OIDC
Crea un provider OIDC all'interno del pool per definire l'attendibilità e mappare le attestazioni del 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"
Concedi ruoli all'entità federata
Autorizza l'identità federata dal pool attendibile a chiamare le API Google richieste. Puoi autorizzare un UUID soggetto specifico o l'intero pool.
Per autorizzare un argomento specifico (consigliato):
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"
Sostituisci WIF_SUBJECT con l'UUID emesso dall'emittente lato SAP per il workload.
Per autorizzare ogni identità nel pool (meno restrittivo, adatto per ambienti di test):
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/*"
Pubblicare dati su SAP BDC
Puoi pubblicare un catalogo REST di Apache Iceberg utilizzando la console Google Cloud o Google Cloud CLI oppure puoi pubblicare un prodotto di dati di Knowledge Catalog contenente tabelle Iceberg utilizzando gcloud CLI. La pubblicazione di un prodotto di dati non è supportata nella console Google Cloud .
Catalogo REST Iceberg
Prima della pubblicazione, verifica che le tabelle Iceberg abbiano chiavi primarie e almeno una riga, poiché SAP BDC richiede entrambi per le query.
Console
Nella console Google Cloud , vai alla pagina Catalogo di Lakehouse Runtime.
Nel pannello di navigazione, espandi il progetto e seleziona il catalogo Delta (catalogo delle connessioni) da utilizzare per la pubblicazione.
Fai clic su Pubblica prodotto di dati.
Inserisci i dettagli di condivisione richiesti, inclusa la selezione del catalogo REST Iceberg da pubblicare.
Fai clic su Pubblica.
gcloud
Verifica che l'endpoint del catalogo REST Apache Iceberg esista e recupera i relativi dettagli:
gcloud alpha biglake iceberg catalogs describe ICEBERG_CATALOG_ID \ --project="PROJECT_ID"
Pubblica il catalogo REST di Apache Iceberg in SAP BDC. Tieni presente che il catalogo delle connessioni, il catalogo Iceberg e il bucket Cloud Storage sottostante devono trovarsi nella stessa regione.
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"
Il catalogo REST Apache Iceberg pubblicato è rilevabile in SAP BDC e può essere installato in SAP Datasphere come tabella remota.
Sostituisci quanto segue:
CONNECTION_CATALOG_ID: il catalogo delle connessioni Delta Sharing registrato creato durante la configurazione iniziale per la condivisione dei dati da SAP BDC a BigQuery. È lo stesso del catalogo Delta Sharing menzionato nelle istruzioni di configurazione; non è necessario crearne un altro per la ripubblicazione.PROJECT_NUMBER: il tuo numero di progetto Google Cloud .sap-federated-identity-providerdeve utilizzare il numero di progetto, non l'ID progetto.POOL_ID: l'ID pool WIF.PROVIDER_ID: l'ID fornitore WIF.TITLE_TEXTeSHORT_DESCRIPTION_TEXT: valori di visualizzazione obbligatori per la quota nel SAP BDC.DETAILED_DESCRIPTION_TEXT: una descrizione dettagliata facoltativa. Non inserire lo stesso testo per la descrizione breve e la descrizione dettagliata, perché verrà rifiutato da SAP. L'operazione di pubblicazione viene rifiutata anche se la descrizione dettagliata contiene la descrizione breve esatta come sottostringa. Ad esempio, se la descrizione breve èSales Data, una descrizione dettagliata diLonger Sales Data detailsviene rifiutata perché contieneSales Data. Tuttavia, è accettata una descrizione dettagliata di "Informazioni sulle vendite più lunghe".
Prodotto di dati Knowledge Catalog
In alternativa, puoi pubblicare un prodotto di dati di Knowledge Catalog. Un prodotto di dati è un raggruppamento logico e curato di asset di dati (come tabelle o visualizzazioni) raggruppati per risolvere problemi aziendali specifici. Anziché pubblicare un catalogo completo, puoi selezionare tabelle Apache Iceberg specifiche, raggrupparle in un prodotto di dati e pubblicare la raccolta curata su SAP BDC.
Crea il prodotto di dati:
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-namecorrisponde atitlein SAP BDC e--descriptioncorrisponde ashort_description.Collega un asset di tabella Lakehouse Iceberg al prodotto di dati:
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"
Quando configuri gli asset in un prodotto di dati, gli asset tabella devono avere chiavi primarie e almeno una riga. Tutti gli asset di dati in un singolo Data Product devono appartenere allo stesso catalogo REST Apache Iceberg. Un prodotto di dati può avere un massimo di 50 tabelle e deve contenere almeno un asset di dati valido da pubblicare. Le tabelle Iceberg potrebbero non essere visualizzate immediatamente nella consoleGoogle Cloud .
(Facoltativo) Verifica gli asset nel prodotto di dati:
gcloud alpha dataplex data-products data-assets list \ --data_product="DATA_PRODUCT_ID" \ --location="LOCATION" \ --project="PROJECT_ID"
Pubblica il prodotto di dati su SAP BDC. Assicurati che il catalogo delle connessioni, il prodotto di dati e le risorse sottostanti si trovino nella stessa regione.
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"
Il prodotto di dati pubblicato è rilevabile in SAP BDC e può essere installato in SAP Datasphere come tabella remota. In SAP BDC, il prodotto di dati pubblicato eredita il titolo e la breve descrizione impostati durante la creazione del prodotto di dati Knowledge Catalog.
Sostituisci quanto segue:
CONNECTION_CATALOG_ID: il catalogo delle connessioni Delta Sharing registrato creato durante la configurazione iniziale per la condivisione dei dati da SAP BDC a BigQuery. È lo stesso catalogo di Delta Sharing menzionato nelle istruzioni di configurazione; non è necessario crearne un altro per la ripubblicazione.PROJECT_NUMBER: il tuo Google Cloud numero di progetto.sap-federated-identity-providerdeve utilizzare il numero di progetto, non l'ID progetto.POOL_ID: l'ID pool WIF.PROVIDER_ID: l'ID fornitore WIF.DATA_PRODUCT_ID: l'ID del tuo prodotto di dati del Knowledge Catalog.LOCATION: la posizione del prodotto di dati del Knowledge Catalog.SAP_SHARE_NAME: il nome della condivisione in SAP BDC.
Accesso Google Cloud ai dati in SAP BDC
Dopo aver pubblicato i dati in SAP BDC, puoi accedere Google Cloud ai dati in modo nativo nell'ambiente SAP. Per saperne di più sull'installazione e sull'utilizzo dei prodotti di dati in SAP come tabelle remote, consulta Installazione dei prodotti di dati nella documentazione SAP.
Passaggi successivi
- Risolvi i problemi di Lakehouse cross-cloud per SAP BDC.
- Installazione di prodotti di dati nella documentazione SAP.