Pubblica prodotti di dati su SAP BDC

Questo documento spiega come configurare Google Cloud per consentire a SAP Business Data Cloud (BDC) di accedere ai dati BigQuery senza copiarli. Per farlo, devi configurare l'endpoint del catalogo REST Apache Iceberg nel catalogo runtime Lakehouse for Apache Iceberg o in un prodotto di dati 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

  1. Accedi al tuo Google Cloud account. 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.
  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: crea un bucket Cloud Storage per archiviare i metadati e i file di dati Iceberg. Per le istruzioni, consulta Crea bucket. Tutte le risorse, incluso il bucket di backend, devono esistere nella stessa regione per evitare errori nella pipeline di configurazione.
  7. 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 le istruzioni, consulta Configura il catalogo REST Iceberg.
  8. Catalogo di connessione Delta Sharing: prepara un catalogo di connessione 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 le istruzioni, consulta Configura Lakehouse senza confini per SAP BDC.
  9. Federazione delle identità per i workload (WIF): preparati a configurare WIF per considerare attendibile l'emittente di 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:

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:

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

Configura la federazione delle identità per i workload

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

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

Recupera l'URI emittente

Recupera l'URI emittente OIDC dal catalogo di connessione Delta Sharing. Questo URI è necessario per configurare il provider WIF.

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

Nell'output del comando, individua il campo federatedIdentityIssuer, che contiene l'URI 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 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 ruoli all'entità federata

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

Per autorizzare un oggetto specifico (opzione consigliata):

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 carico di lavoro.

Per autorizzare ogni identità nel pool (meno restrittivo, adatto agli 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 in SAP BDC

Puoi pubblicare un catalogo REST Apache Iceberg utilizzando la console o Google Cloud CLI oppure puoi pubblicare un prodotto di dati Knowledge Catalog contenente tabelle Iceberg utilizzando gcloud CLI. Google Cloud La pubblicazione di un prodotto di dati non è supportata nella Google Cloud console.

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

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

    Vai al catalogo 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, inclusa 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 il catalogo REST Apache Iceberg in SAP BDC. Tieni presente che il catalogo di connessione, il catalogo Iceberg e il bucket Cloud Storage sottostante devono risiedere 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"

    Il catalogo REST Apache Iceberg pubblicato è rilevabile in SAP BDC e può essere installato in SAP Datasphere come una tabella remota.

    Sostituisci quanto segue:

    • CONNECTION_CATALOG_ID: il catalogo di connessione Delta Sharing registrato creato durante la configurazione iniziale per la condivisione dei dati da SAP BDC a BigQuery. È lo stesso catalogo Delta Sharing menzionato nelle istruzioni di configurazione; non è necessario crearne un altro per la pubblicazione.
    • PROJECT_NUMBER: il tuo Google Cloud numero di progetto. 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 del 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, una descrizione dettagliata di "Longer Sales Information" viene accettata.

Prodotto di dati Knowledge Catalog

In alternativa, puoi pubblicare un prodotto di dati Knowledge Catalog. Un prodotto di dati è un raggruppamento logico e curato di asset di dati (come tabelle o viste) confezionati 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 curata in SAP BDC.

  1. 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-name esegue il mapping a title in SAP BDC e --description esegue il mapping a short_description.

  2. Collega un asset della tabella Iceberg Lakehouse 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 delle tabelle devono avere chiavi primarie e almeno una riga. Tutti gli asset di dati in un singolo prodotto di dati 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 Google Cloud console.

  3. (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"
  4. Pubblica il prodotto di dati in 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 una 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 Knowledge Catalog.

    Sostituisci quanto segue:

    • CONNECTION_CATALOG_ID: il catalogo di connessione Delta Sharing registrato creato durante la configurazione iniziale per la condivisione dei dati da SAP BDC a BigQuery. È lo stesso catalogo Delta Sharing menzionato nelle istruzioni di configurazione; non è necessario crearne un altro per la pubblicazione.
    • PROJECT_NUMBER: Il tuo Google Cloud numero di progetto. 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 del provider WIF.
    • DATA_PRODUCT_ID: l'ID del prodotto di dati Knowledge Catalog.
    • LOCATION: la località del prodotto di dati Knowledge Catalog.
    • SAP_SHARE_NAME: il nome della condivisione in SAP BDC.

Accedi ai Google Cloud 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 ulteriori informazioni sull'installazione e sull'utilizzo dei prodotti di dati in SAP come tabelle remote, consulta Installare i prodotti di dati nella documentazione SAP.

Passaggi successivi