Pubblica prodotti di dati su SAP BDC

Google Cloud ti consente di condividere i dati di BigQuery con SAP Business Data Cloud (BDC) senza copiarli. Per pubblicare i dati su SAP BDC, configura un endpoint del catalogo REST Apache Iceberg nel catalogo di runtime Lakehouse o configura un Knowledge Catalog Data Product.

Per una panoramica di questa integrazione e dei relativi casi d'uso, consulta Informazioni sull'integrazione di SAP BDC.

Prima di iniziare

  1. 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 workload.
  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the BigLake and Dataplex APIs, if any are not already enabled.

    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, if any are not already enabled.

    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: crea un bucket Cloud Storage per archiviare i metadati e i file di dati Iceberg. Per le istruzioni, vedi Crea bucket. Tutte le risorse, incluso il bucket di backend, devono esistere nella stessa regione per evitare errori della pipeline di configurazione.
  7. Endpoint del catalogo REST Apache Iceberg: configura un endpoint del catalogo REST Apache Iceberg nel catalogo di 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, consulta Configura l'endpoint del catalogo REST Apache Iceberg.
  8. Catalogo delle connessioni Delta Sharing: prepara un catalogo delle connessioni Delta Sharing registrato per la tua 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, consulta Configura la connessione cross-cloud per SAP Business Data Cloud.
  9. Federazione delle identità per i workload (WIF): preparati a configurare la WIF in modo che consideri attendibile l'emittente di autenticazione SAP BDC. La 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 nel progetto:

  • Gestisci la federazione delle identità per i workload: IAM Workload Identity Pool Admin (roles/iam.workloadIdentityPoolAdmin)
  • Pubblicazione di prodotti di dati: BigLake Admin (roles/biglake.admin)
  • Visualizza i metadati del catalogo (concesso all'entità WIF): BigLake Viewer (roles/biglake.viewer)
  • Utilizzare 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.

Workflow generale

Per pubblicare i dati in SAP BDC, segui questi passaggi:

  1. Configura la federazione delle identità per i workload: crea un pool e un provider di federazione Workload Identity per stabilire un rapporto di attendibilità con l'emittente OIDC di SAP BDC.
  2. Concedi i ruoli all'entità federata: concedi all'identità federata le autorizzazioni per visualizzare i metadati del catalogo e utilizzare la quota di servizio.
  3. Pubblica i dati: pubblica l'endpoint del catalogo REST Apache Iceberg o un prodotto di dati del Knowledge Catalog su SAP BDC utilizzando l'interfaccia a riga di comando gcloud.

Configura la federazione delle identità per i workload

Per consentire a SAP BDC di accedere alle risorse Lakehouse senza confini senza richiedere chiavi dei account di servizio esportate, configura la federazione delle identità per i workload (WIF). In questo modo viene stabilito un rapporto di attendibilità tra Google Cloud e l'emittente OIDC di SAP BDC.

Segui questi passaggi per configurare il pool e il provider WIF:

Recupera l'URI dell'emittente

Recupera l'URI dell'emittente OIDC dal catalogo delle connessioni Delta Sharing. Questo URI è necessario per configurare il provider WIF.

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

Nell'output 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 rivendicazioni dei 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 i ruoli all'entità federata

Autorizza l'identità federata del pool attendibile a chiamare le API di Google richieste. Puoi autorizzare un UUID soggetto specifico o l'intero pool.

Per autorizzare un oggetto 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 gli 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/*"

Pubblica i dati su SAP BDC

Puoi pubblicare un endpoint del catalogo REST Apache Iceberg o un prodotto di dati Knowledge Catalog contenente tabelle Iceberg utilizzando la console Google Cloud o Google Cloud CLI.

Catalogo REST Iceberg

Prima della pubblicazione, verifica che le tabelle Iceberg abbiano chiavi primarie definite utilizzando identifier-field-ids nei metadati della tabella Iceberg e almeno una riga, poiché SAP BDC richiede entrambe per le query. Qualsiasi colonna a cui viene fatto riferimento in identifier-field-ids deve essere impostata su required: true (non nullable) nello schema Iceberg. Se la tabella non ha chiavi primarie o contiene campi chiave nullable, consulta Aggiorna lo schema della tabella Iceberg per le chiavi primarie per aggiornarle utilizzando l'API REST BigLake.

Console

  1. Nella console Google Cloud , vai alla pagina Catalogo di runtime Lakehouse.

    Vai al catalogo di runtime Lakehouse

  2. Nel pannello di navigazione, espandi il progetto e seleziona il catalogo Delta (catalogo di connessione) da utilizzare per la pubblicazione.

  3. Fai clic su Pubblica prodotto di dati.

  4. Inserisci i dettagli di condivisione richiesti, tra cui la selezione del catalogo REST Iceberg da pubblicare.

  5. Fai clic su Pubblica.

gcloud

  1. Verifica che l'endpoint del catalogo REST Apache Iceberg esista e recupera i relativi dettagli:

    gcloud biglake iceberg catalogs describe ICEBERG_CATALOG_ID \
        --project="PROJECT_ID"
  2. Pubblica l'endpoint del catalogo REST Apache Iceberg su SAP BDC. Tieni presente che il catalogo di connessione, il catalogo Iceberg e il bucket Cloud Storage sottostante devono trovarsi tutti nella stessa regione.

    gcloud 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"

    L'endpoint del 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 che è stato 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 pubblicazione.
    • PROJECT_NUMBER: il tuo Google Cloud numero di progetto. Il flag --sap-federated-identity-provider deve utilizzare il numero di progetto, non l'ID progetto.
    • POOL_ID: l'ID del pool WIF.
    • PROVIDER_ID: l'ID provider WIF.
    • TITLE_TEXT e SHORT_DESCRIPTION_TEXT: valori di visualizzazione obbligatori per la condivisione in 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 di Longer Sales Data details viene rifiutata perché contiene Sales Data. Tuttavia, è accettata una descrizione dettagliata di "Informazioni di vendita più lunghe".

Prodotto di dati di 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 viste) pacchettizzati insieme 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 selezionata in SAP BDC.

Console

  1. Nella console Google Cloud , vai alla pagina Knowledge Catalog.

    Vai a Knowledge Catalog

  2. Nel menu di navigazione, seleziona Prodotti di dati.

  3. Fai clic sul prodotto di dati che vuoi pubblicare per aprire la relativa pagina dei dettagli.

  4. Fai clic su Condividi e seleziona Pubblica su SAP.

  5. Nel riquadro Pubblica prodotto di dati su SAP, configura i seguenti campi:

    • Nome condivisione: inserisci il nome della condivisione in SAP BDC.
    • Catalogo Delta: seleziona il catalogo di connessione Delta Sharing registrato.
    • Workload Identity: seleziona o inserisci il provider di pool di identità del workload.
  6. Fai clic su Pubblica.

gcloud

  1. Crea il prodotto di dati:

    gcloud 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 viene mappato a title in SAP BDC e --description viene mappato a short_description.

  2. Collega un asset di tabella Apache Iceberg gestito da Lakehouse al prodotto di dati:

    gcloud 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 definite utilizzando identifier-field-ids nei metadati della tabella Iceberg (con tutte le colonne identificatore contrassegnate come required: true) e almeno una riga. Se la tabella non ha chiare primarie o contiene campi chiave nullable, consulta Aggiorna lo schema della tabella Iceberg per le chiavi primarie per aggiornarle utilizzando l'API REST BigLake. Tutti gli asset di dati in un singolo prodotto di dati devono appartenere allo stesso catalogo REST Apache Iceberg. Un prodotto dati può avere un massimo di 50 tabelle e deve contenere almeno un asset di dati valido per la pubblicazione. Le tabelle Iceberg potrebbero non essere visualizzate immediatamente nella console Google Cloud .

  3. (Facoltativo) Verifica gli asset nel prodotto di dati:

    gcloud dataplex data-products data-assets list \
        --data-product="DATA_PRODUCT_ID" \
        --location="LOCATION" \
        --project="PROJECT_ID"
  4. Pubblica il prodotto di dati su SAP BDC. Assicurati che il catalogo di connessione, il prodotto di dati e le risorse sottostanti si trovino nella stessa regione.

    gcloud 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 descrizione breve impostati durante la creazione del prodotto di dati di Knowledge Catalog.

    Sostituisci quanto segue:

    • CONNECTION_CATALOG_ID: il catalogo delle connessioni Delta Sharing registrato che è stato 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 pubblicazione.
    • PROJECT_NUMBER: il tuo numero di progetto Google Cloud. sap-federated-identity-provider deve utilizzare il numero di progetto, non l'ID progetto.
    • POOL_ID: l'ID del pool WIF.
    • PROVIDER_ID: l'ID provider WIF.
    • DATA_PRODUCT_ID: l'ID del tuo prodotto di dati del Knowledge Catalog.
    • LOCATION: la località del tuo Knowledge Catalog Data Product.
    • SAP_SHARE_NAME: il nome della condivisione in SAP BDC.

Accedi ai dati di Google Cloud in SAP BDC

Dopo aver pubblicato i dati su SAP BDC, puoi accedere ai dati Google Cloud 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 di SAP.

Passaggi successivi