Publier des tables Lakehouse dans SAP BDC

Ce document explique comment configurer Google Cloud pour permettre à SAP Business Data Cloud (BDC) d'accéder aux données BigQuery sans les copier. Pour ce faire, configurez le point de terminaison du catalogue Apache Iceberg REST dans le catalogue d'exécution Lakehouse pour Apache Iceberg ou un produit de données Knowledge Catalog à partager avec SAP.

Pour obtenir une présentation de cette intégration et de ses cas d'utilisation, consultez À propos de l'intégration de SAP BDC .

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  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 : créez un bucket Cloud Storage pour stocker vos métadonnées et fichiers de données Iceberg. Pour obtenir des instructions, consultez Créer des buckets. Toutes les ressources, y compris le bucket backend, doivent exister dans la même région pour éviter les échecs du pipeline de configuration.
  7. Catalogue REST Apache Iceberg : configurez un point de terminaison de catalogue REST Apache Iceberg dans le catalogue d'exécution Lakehouse avec la distribution d'identifiants activée, contenant les espaces de noms et les tables que vous souhaitez partager. Ce catalogue utilise le bucket Cloud Storage comme entrepôt. Pour obtenir des instructions, consultez Configurer le catalogue REST Iceberg.
  8. Catalogue de connexion Delta Sharing : préparez un catalogue de connexion Delta Sharing inscrit pour votre connexion SAP BDC. Il s'agit du même catalogue que celui créé lors de la configuration initiale pour partager des données de SAP BDC vers BigQuery. Vous n'avez pas besoin d'en créer un autre. Pour obtenir des instructions, consultez Configurer Lakehouse inter-cloud pour SAP BDC.
  9. Fédération d'identité de charge de travail (WIF) : préparez-vous à configurer la WIF pour approuver l'émetteur d'authentification SAP BDC. Vous effectuerez cette configuration dans la section suivante.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer la fédération d'identité de charge de travail et publier des données, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Workflow général

Pour publier des données dans SAP BDC, procédez comme suit :

  1. Configurer la fédération d'identité de charge de travail : créez un pool et un fournisseur de fédération de Workload Identity pour établir une relation de confiance avec l'émetteur OIDC SAP BDC.
  2. Attribuer des rôles au compte principal fédéré : accordez à l'identité fédérée les autorisations nécessaires pour afficher les métadonnées du catalogue et utiliser le quota de service.
  3. Publier des données : publiez votre catalogue REST Apache Iceberg ou un produit de données Knowledge Catalog dans SAP BDC à l'aide de la CLI gcloud.

Configurer la fédération d'identité de charge de travail

Pour permettre à SAP BDC d'accéder à vos ressources Lakehouse sans nécessiter de clés de compte de service exportées, configurez la fédération d'identité de charge de travail (WIF). Cela établit une relation de confiance entre Google Cloud et l'émetteur OIDC SAP BDC.

Pour configurer le pool et le fournisseur WIF, procédez comme suit :

Obtenir l'URI de l'émetteur

Récupérez l'URI de l'émetteur OIDC à partir de votre catalogue de connexion Delta Sharing. Vous avez besoin de cet URI pour configurer le fournisseur WIF.

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

Dans le résultat de la commande, recherchez le champ federatedIdentityIssuer, qui contient l'URI de l'émetteur.

Créer le pool d'identités de charge de travail

Créez un pool d'identités de charge de travail pour regrouper les identités externes.

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

Créer le fournisseur OIDC

Créez un fournisseur OIDC dans le pool pour définir la relation de confiance et mapper les revendications de jeton.

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"

Attribuer des rôles au compte principal fédéré

Autorisez l'identité fédérée du pool approuvé à appeler les API Google requises. Vous pouvez autoriser un UUID de sujet spécifique ou l'ensemble du pool.

Pour autoriser un sujet spécifique (recommandé) :

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"

Remplacez WIF_SUBJECT par l'UUID émis par l'émetteur côté SAP pour la charge de travail.

Pour autoriser chaque identité du pool (moins restrictif, adapté aux environnements de 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/*"

Publier des données dans SAP BDC

Vous pouvez publier un catalogue REST Apache Iceberg à l'aide de la console ou de Google Cloud CLI, ou vous pouvez publier un produit de données Knowledge Catalog contenant des tables Iceberg à l'aide de gcloud CLI. Google Cloud La publication d'un produit de données n'est pas compatible avec la Google Cloud console.

Catalogue REST Iceberg

Avant de publier, vérifiez que vos tables Iceberg comportent des clés primaires et au moins une ligne, car SAP BDC nécessite les deux pour les requêtes.

Console

  1. Dans la Google Cloud console, accédez à la page Catalogue d'exécution Lakehouse.

    Accéder au catalogue d'exécution Lakehouse

  2. Dans le panneau de navigation, développez votre projet et sélectionnez le catalogue Delta (catalogue de connexion) à utiliser pour la publication.

  3. Cliquez sur Publier le produit de données.

  4. Saisissez les informations de partage requises, y compris le catalogue REST Iceberg à publier.

  5. Cliquez sur Publier.

gcloud

  1. Vérifiez que le point de terminaison du catalogue REST Apache Iceberg existe et obtenez ses détails :

    gcloud alpha biglake iceberg catalogs describe ICEBERG_CATALOG_ID \
        --project="PROJECT_ID"
  2. Publiez le catalogue REST Apache Iceberg dans SAP BDC. Notez que le catalogue de connexion, le catalogue Iceberg et le bucket Cloud Storage sous-jacent doivent tous se trouver dans la même région.

    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"

    Le catalogue REST Apache Iceberg publié est détectable dans SAP BDC et peut être installé dans SAP Datasphere en tant que table distante.

    Remplacez les éléments suivants :

    • CONNECTION_CATALOG_ID: catalogue de connexion Delta Sharing inscrit qui a été créé lors de la configuration initiale pour partager des données de SAP BDC vers BigQuery. Il est identique au catalogue Delta Sharing mentionné dans les instructions de configuration. Vous n'avez pas besoin d'en créer un autre pour la publication.
    • PROJECT_NUMBER : numéro de votre Google Cloud projet. Le sap-federated-identity-provider doit utiliser le numéro de projet, et non l'ID du projet.
    • POOL_ID : ID du pool WIF.
    • PROVIDER_ID : ID du fournisseur WIF.
    • TITLE_TEXT et SHORT_DESCRIPTION_TEXT : valeurs d'affichage requises pour le partage dans SAP BDC.
    • DETAILED_DESCRIPTION_TEXT: description détaillée facultative. N'entrez pas le même texte pour la description courte et la description détaillée, car cela sera refusé par SAP. L'opération de publication est également refusée si la description détaillée contient la description courte exacte en tant que sous-chaîne. Par exemple, si la description courte est Sales Data, une description détaillée de Longer Sales Data details est refusée, car elle contient Sales Data. Toutefois, une description détaillée de "Longer Sales Information" est acceptée.

Produit de données Knowledge Catalog

Vous pouvez également publier un produit de données Knowledge Catalog. Un produit de données est un regroupement logique organisé d'éléments de données (tels que des tables ou des vues) regroupés pour résoudre des problèmes commerciaux spécifiques. Au lieu de publier un catalogue complet, vous pouvez sélectionner des tables Apache Iceberg spécifiques, les regrouper dans un produit de données et publier cette collection organisée dans SAP BDC.

  1. Créez le produit de données :

    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 correspond à title dans SAP BDC, et --description correspond à short_description.

  2. Associez un élément de table Iceberg Lakehouse au produit de données :

    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"

    Lorsque vous configurez des éléments dans un produit de données, les éléments de table doivent comporter des clés primaires et au moins une ligne. Tous les éléments de données d'un même produit de données doivent appartenir au même catalogue REST Apache Iceberg. Un produit de données peut comporter jusqu'à 50 tables et doit contenir au moins un élément de données valide à publier. Il est possible que les tables Iceberg n'apparaissent pas immédiatement dans la Google Cloud console.

  3. Facultatif : Vérifiez les éléments de votre produit de données :

    gcloud alpha dataplex data-products data-assets list \
        --data_product="DATA_PRODUCT_ID" \
        --location="LOCATION" \
        --project="PROJECT_ID"
  4. Publiez le produit de données dans SAP BDC. Assurez-vous que le catalogue de connexion, le produit de données et les ressources sous-jacentes se trouvent dans la même région.

    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"

    Le produit de données publié est détectable dans SAP BDC et peut être installé dans SAP Datasphere en tant que table distante. Dans SAP BDC, le produit de données publié hérite du titre et de la description courte définis lors de la création du produit de données Knowledge Catalog.

    Remplacez les éléments suivants :

    • CONNECTION_CATALOG_ID: catalogue de connexion Delta Sharing inscrit qui a été créé lors de la configuration initiale pour partager des données de SAP BDC vers BigQuery. Il est identique au catalogue Delta Sharing mentionné dans les instructions de configuration. Vous n'avez pas besoin d'en créer un autre pour la publication.
    • PROJECT_NUMBER : numéro de votre Google Cloud projet. Le sap-federated-identity-provider doit utiliser le numéro de projet, et non l'ID du projet.
    • POOL_ID : ID du pool WIF.
    • PROVIDER_ID : ID du fournisseur WIF.
    • DATA_PRODUCT_ID: ID de votre produit de données Knowledge Catalog.
    • LOCATION: emplacement de votre produit de données Knowledge Catalog.
    • SAP_SHARE_NAME: nom du partage dans SAP BDC.

Accéder aux Google Cloud données dans SAP BDC

Une fois vos données publiées dans SAP BDC, vous pouvez y accéder de manière native dans l'environnement SAP. Google Cloud Pour en savoir plus sur l'installation et l'utilisation de produits de données dans SAP en tant que tables distantes, consultez Installer des produits de données dans la documentation SAP.

Étape suivante