En este documento, se explica cómo configurar Google Cloud para permitir que SAP Business Data Cloud (BDC) acceda a los datos de BigQuery sin copiarlos. Para ello, configura el extremo del catálogo de REST de Apache Iceberg en el catálogo de tiempo de ejecución de Lakehouse para Apache Iceberg o un producto de datos de Knowledge Catalog para compartir con SAP.
Para obtener una descripción general de esta integración y sus casos de uso, consulta Acerca de la integración de SAP BDC.
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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 de Cloud Storage: Crea un bucket de Cloud Storage para almacenar los metadatos y los archivos de datos de Iceberg. Para obtener instrucciones, consulta Crea buckets. Todos los recursos, incluido el bucket de backend, deben existir en la misma región para evitar fallas en la canalización de configuración.
- Catálogo de REST de Apache Iceberg: Configura un extremo del catálogo de REST de Apache Iceberg en el catálogo de tiempo de ejecución de Lakehouse con la venta de credenciales habilitada, que contenga los espacios de nombres y las tablas que deseas compartir. Este catálogo usa el bucket de Cloud Storage como su almacén. Para obtener instrucciones, consulta Configura el catálogo de REST de Iceberg.
- Catálogo de conexión de Delta Sharing: Prepara un catálogo de conexión de Delta Sharing inscrito para tu conexión de SAP BDC. Este es el mismo catálogo que se creó durante la configuración inicial para compartir datos de SAP BDC a BigQuery; no es necesario crear uno nuevo. Para obtener instrucciones, consulta Configura Lakehouse entre nubes para SAP BDC.
- Federación de identidades para cargas de trabajo (WIF): Prepárate para configurar WIF para confiar en la entidad emisora de autenticación de SAP BDC. Lo configurarás en la siguiente sección.
Roles obligatorios
Para obtener los permisos que necesitas para configurar la federación de identidades para cargas de trabajo y publicar datos, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Administrar la federación de identidades para cargas de trabajo:
Administrador de grupos de identidades para cargas de trabajo de Identity and Access Management (IAM) (
roles/iam.workloadIdentityPoolAdmin) -
Publicar productos de datos:
Administrador de BigLake (
roles/biglake.admin) -
Ver metadatos del catálogo (otorgado a la principal de WIF):
Visualizador de BigLake (
roles/biglake.viewer) -
Consumir cuota de servicio (otorgado a la principal de WIF):
Consumidor de uso de servicios (
roles/serviceusage.serviceUsageConsumer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Flujo de trabajo general
Para publicar datos en SAP BDC, sigue estos pasos:
- Configura la federación de identidades para cargas de trabajo: Crea un grupo y un proveedor de federación de Workload Identity para establecer la confianza con la entidad emisora de OIDC de SAP BDC.
- Otorga roles a la principal federada: Otorga los permisos de identidad federada para ver los metadatos del catálogo y consumir la cuota de servicio.
- Publica datos: Publica tu catálogo de REST de Apache Iceberg o un producto de datos de Knowledge Catalog en SAP BDC con la CLI de
gcloud.
Configura la federación de identidades para cargas de trabajo
Para permitir que SAP BDC acceda a tus recursos de Lakehouse sin requerir claves de cuenta de servicio exportadas, configura la federación de identidades para cargas de trabajo (WIF). Esto establece la confianza entre Google Cloud y la entidad emisora de OIDC de SAP BDC.
Sigue estos pasos para configurar el grupo y el proveedor de WIF:
Obtén el URI de la entidad emisora
Recupera el URI de la entidad emisora de OIDC de tu catálogo de conexión de Delta Sharing. Necesitas este URI para configurar el proveedor de WIF.
gcloud alpha biglake delta-sharing catalogs describe CONNECTION_CATALOG_ID \ --project="PROJECT_ID"
En el resultado del comando, busca el campo federatedIdentityIssuer, que contiene el URI de la entidad emisora.
Crea el grupo de identidades para cargas de trabajo
Crea un grupo de identidades para cargas de trabajo para agrupar identidades externas.
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --display-name="POOL_DISPLAY_NAME" \ --project="PROJECT_ID"
Crea el proveedor de OIDC
Crea un proveedor de OIDC dentro del grupo para definir la confianza y asignar las declaraciones de tokens.
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"
Otorga roles a la principal federada
Autoriza la identidad federada del grupo de confianza para llamar a las APIs de Google requeridas. Puedes autorizar un UUID de asunto específico o todo el grupo.
Para autorizar un asunto específico (recomendado), haz lo siguiente:
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"
Reemplaza WIF_SUBJECT por el UUID que emite la entidad emisora del lado de SAP para la carga de trabajo.
Para autorizar cada identidad en el grupo (menos restrictivo, adecuado para entornos de prueba), haz lo siguiente:
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/*"
Publica datos en SAP BDC
Puedes publicar un catálogo de REST de Apache Iceberg con la Google Cloud consola o Google Cloud CLI, o puedes publicar un producto de datos de Knowledge Catalog que contenga tablas de Iceberg con gcloud CLI. No se admite la publicación de un producto de datos en la Google Cloud consola de.
Catálogo de REST de Iceberg
Antes de publicar, verifica que tus tablas de Iceberg tengan claves primarias y al menos una fila, ya que SAP BDC requiere ambas para las consultas.
Console
En la Google Cloud consola de, ve a la página Catálogo de tiempo de ejecución de Lakehouse.
En el panel de navegación, expande tu proyecto y selecciona el catálogo de Delta (catálogo de conexión) que se usará para la publicación.
Haz clic en Publicar producto de datos.
Ingresa los detalles de uso compartido obligatorios, incluida la selección del catálogo de REST de Iceberg para publicar.
Haz clic en Publish.
gcloud
Verifica que exista el extremo del catálogo de REST de Apache Iceberg y obtén sus detalles:
gcloud alpha biglake iceberg catalogs describe ICEBERG_CATALOG_ID \ --project="PROJECT_ID"
Publica el catálogo de REST de Apache Iceberg en SAP BDC. Ten en cuenta que el catálogo de conexión, el catálogo de Iceberg y el bucket de Cloud Storage subyacente deben residir en la misma región.
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"
El catálogo de REST de Apache Iceberg publicado se puede detectar en SAP BDC y se puede instalar en SAP Datasphere como una tabla remota.
Reemplaza lo siguiente:
CONNECTION_CATALOG_ID: El catálogo de conexión de Delta Sharing inscrito que se creó durante la configuración inicial para compartir datos de SAP BDC a BigQuery. Es el mismo que el catálogo de Delta Sharing que se menciona en las instrucciones de configuración; no es necesario crear otro para la publicación.PROJECT_NUMBER: Es el número del proyecto de. Google Cloud Elsap-federated-identity-providerdebe usar el número del proyecto, no el ID del proyecto.POOL_ID: El ID del grupo de WIF.PROVIDER_ID: El ID del proveedor de WIF.TITLE_TEXTySHORT_DESCRIPTION_TEXT: Son los valores de visualización obligatorios para el uso compartido en SAP BDC.DETAILED_DESCRIPTION_TEXT: Una descripción detallada opcional. No ingreses el mismo texto para la descripción breve y la descripción detallada, ya que SAP lo rechazará. La operación de publicación también se rechaza si la descripción detallada contiene la descripción breve exacta como una substring. Por ejemplo, si la descripción breve esSales Data, se rechaza una descripción detallada deLonger Sales Data detailsporque contieneSales Data. Sin embargo, se acepta una descripción detallada de "Longer Sales Information".
Producto de datos de Knowledge Catalog
Como alternativa, puedes publicar un producto de datos de Knowledge Catalog. Un producto de datos es una agrupación lógica y seleccionada de activos de datos (como tablas o vistas) empaquetados para resolver problemas empresariales específicos. En lugar de publicar un catálogo completo, puedes seleccionar tablas específicas de Apache Iceberg, agruparlas en un producto de datos y publicar esa colección seleccionada en SAP BDC.
Crea el producto de datos:
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"
El
--display-namese asigna altitleen SAP BDC, y--descriptionse asigna alshort_description.Vincula un activo de tabla de Iceberg de Lakehouse al producto de datos:
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"
Cuando configuras activos en un producto de datos, los activos de tabla deben tener claves primarias y al menos una fila. Todos los activos de datos en un solo producto de datos deben pertenecer al mismo catálogo de REST de Apache Iceberg. Un producto de datos puede tener un máximo de 50 tablas y debe contener al menos un activo de datos válido para publicar. Es posible que las tablas de Iceberg no aparezcan en la Google Cloud consola de inmediato.
Opcional: Verifica los activos de tu producto de datos:
gcloud alpha dataplex data-products data-assets list \ --data_product="DATA_PRODUCT_ID" \ --location="LOCATION" \ --project="PROJECT_ID"
Publica el producto de datos en SAP BDC. Asegúrate de que el catálogo de conexión, el producto de datos y los recursos subyacentes estén en la misma región.
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"
El producto de datos publicado se puede detectar en SAP BDC y se puede instalar en SAP Datasphere como una tabla remota. En SAP BDC, el producto de datos publicado hereda el título y la descripción breve establecidos cuando se crea el producto de datos de Knowledge Catalog.
Reemplaza lo siguiente:
CONNECTION_CATALOG_ID: El catálogo de conexión de Delta Sharing inscrito que se creó durante la configuración inicial para compartir datos de SAP BDC a BigQuery. Es el mismo que el catálogo de Delta Sharing que se menciona en las instrucciones de configuración; no es necesario crear otro para la publicación.PROJECT_NUMBER: Es el Google Cloud número del proyecto. Elsap-federated-identity-providerdebe usar el número del proyecto, no el ID del proyecto.POOL_ID: El ID del grupo de WIF.PROVIDER_ID: El ID del proveedor de WIF.DATA_PRODUCT_ID: El ID de tu producto de datos de Knowledge Catalog.LOCATION: La ubicación de tu producto de datos de Knowledge Catalog.SAP_SHARE_NAME: El nombre del uso compartido en SAP BDC.
Acceder a los Google Cloud datos en SAP BDC
Después de publicar tus datos en SAP BDC, puedes acceder a los Google Cloud datos de forma nativa en el entorno de SAP. Para obtener más información sobre cómo instalar y consumir productos de datos en SAP como tablas remotas, consulta Instala productos de datos en la documentación de SAP.
¿Qué sigue?
- Soluciona problemas de Lakehouse entre nubes para SAP BDC.
- Instala productos de datos en la documentación de SAP.