Publica productos de datos en SAP BDC

Google Cloud te permite compartir datos de BigQuery con SAP Business Data Cloud (BDC) sin copiarlos. Para publicar datos en SAP BDC, configura un extremo de catálogo de REST de Apache Iceberg en el catálogo de entornos de ejecución de Lakehouse o configura un producto de datos de Knowledge Catalog.

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

  1. Accede a tu cuenta de Google Cloud . 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.
  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 de Cloud Storage: Crea un bucket de Cloud Storage para almacenar tus metadatos y 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.
  7. Extremo del catálogo de REST de Apache Iceberg: Configura un extremo del catálogo de REST de Apache Iceberg en el catálogo de entornos de ejecución de Lakehouse con la venta de credenciales habilitada, que contenga los espacios de nombres y las tablas que quieras compartir. Este catálogo usa el bucket de Cloud Storage como su almacén. Para obtener instrucciones, consulta Configura el extremo del catálogo de REST de Apache Iceberg.
  8. Catálogo de conexiones de Delta Sharing: Prepara un catálogo de conexiones 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 que crees uno nuevo. Para obtener instrucciones, consulta Configura la conexión de varias nubes para SAP Business Data Cloud.
  9. Federación de identidades para cargas de trabajo (WIF): Prepárate para configurar la WIF de modo que confíe en la entidad emisora de autenticación de SAP BDC. Configurarás esto 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:

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 a través de roles personalizados o cualquier otro rol predefinido.

Flujo de trabajo general

Para publicar datos en SAP BDC, sigue estos pasos:

  1. Configura la federación de identidades para cargas de trabajo: Crea un grupo y un proveedor de federación de Workload Identity para establecer confianza con la entidad emisora de OIDC de SAP BDC.
  2. Otorga roles a la principal federada: Otorga a la identidad federada permisos para ver los metadatos del catálogo y consumir la cuota de servicio.
  3. Publicar datos: Publica tu extremo del 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 límites sin necesidad de exportar claves de cuentas de servicio, 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 del catálogo de conexiones de Delta Sharing. Necesitas este URI para configurar el proveedor de WIF.

gcloud 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 reclamaciones 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 necesarias. Puedes autorizar un UUID de sujeto 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 emitió la entidad emisora del lado de SAP para la carga de trabajo.

Para autorizar todas las identidades del 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 extremo de catálogo de REST de Apache Iceberg o un producto de datos de Knowledge Catalog que contenga tablas de Iceberg con la consola de Google Cloud o Google Cloud CLI.

Catálogo de REST de Iceberg

Antes de publicar, verifica que tus tablas de Iceberg tengan claves primarias definidas con identifier-field-ids en sus metadatos de tabla de Iceberg y, al menos, una fila, ya que SAP BDC requiere ambas para las consultas. Cualquier columna a la que se haga referencia en identifier-field-ids debe establecerse en required: true (no anulable) en el esquema de Iceberg. Si tu tabla no tiene claves primarias o contiene campos de clave que admiten valores nulos, consulta Actualiza el esquema de la tabla de Iceberg para las claves primarias para actualizarlas con la API de REST de BigLake.

Console

  1. En la consola de Google Cloud , ve a la página Lakehouse Runtime Catalog.

    Ir al catálogo de entorno de ejecución de Lakehouse

  2. En el panel de navegación, expande tu proyecto y selecciona el catálogo Delta (catálogo de conexiones) que usarás para la publicación.

  3. Haz clic en Publicar producto de datos.

  4. Ingresa los detalles de uso compartido requeridos, incluida la selección del catálogo de REST de Iceberg que se publicará.

  5. Haz clic en Publicar.

gcloud

  1. Verifica que exista el extremo del catálogo de REST de Apache Iceberg y obtén sus detalles:

    gcloud biglake iceberg catalogs describe ICEBERG_CATALOG_ID \
        --project="PROJECT_ID"
  2. Publica el extremo del 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 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 extremo del catálogo de REST de Apache Iceberg publicado se puede descubrir en SAP BDC y se puede instalar en SAP Datasphere como una tabla remota.

    Reemplaza lo siguiente:

    • CONNECTION_CATALOG_ID: Es el catálogo de conexiones de Delta Sharing inscrito que se creó durante la configuración inicial para compartir datos de SAP BDC a BigQuery. Es el mismo catálogo de Delta Sharing que se menciona en las instrucciones de configuración; no es necesario que crees otro para volver a publicar.
    • PROJECT_NUMBER: Es el número del proyecto de Google Cloud . La marca --sap-federated-identity-provider debe usar el número del proyecto, no el ID del proyecto.
    • POOL_ID: Es el ID del grupo de WIF.
    • PROVIDER_ID: Es el ID del proveedor de WIF.
    • TITLE_TEXT y SHORT_DESCRIPTION_TEXT: Son los valores de visualización obligatorios para el recurso 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 rechaza. La operación de publicación también se rechaza si la descripción detallada contiene la descripción breve exacta como una subcadena. Por ejemplo, si la descripción breve es Sales Data, se rechazará una descripción detallada de Longer Sales Data details porque contiene Sales Data. Sin embargo, se acepta una descripción detallada de la "Información de ventas más larga".

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 recursos 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.

Console

  1. En la consola de Google Cloud , ve a la página Knowledge Catalog.

    Ir a Knowledge Catalog

  2. En el menú de navegación, selecciona Productos de datos.

  3. Haz clic en el producto de datos que quieres publicar para abrir su página de detalles.

  4. Haz clic en Compartir y selecciona Publicar en SAP.

  5. En el panel Publica el producto de datos en SAP, configura los siguientes campos:

    • Nombre del recurso compartido: Ingresa el nombre del recurso compartido en SAP BDC.
    • Catálogo delta: Selecciona el catálogo de conexiones de Delta Sharing inscrito.
    • Workload Identity: Selecciona o ingresa tu proveedor de grupos de identidades para cargas de trabajo.
  6. Haz clic en Publicar.

gcloud

  1. Crea el producto de datos:

    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"

    El --display-name se asigna al title en SAP BDC, y --description se asigna al short_description.

  2. Vincula un recurso de tabla de Apache Iceberg administrado por Lakehouse al producto de datos:

    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"

    Cuando configuras recursos en un producto de datos, los recursos de tabla deben tener claves primarias definidas con identifier-field-ids en sus metadatos de tabla de Iceberg (con todas las columnas de identificador marcadas como required: true) y al menos una fila. Si tu tabla no tiene claves primarias o contiene campos de clave que admiten valores nulos, consulta Actualiza el esquema de la tabla de Iceberg para las claves primarias para actualizarlas con la API de REST de BigLake. Todos los recursos de datos de 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 recurso de datos válido para publicarlo. Es posible que las tablas de Iceberg no aparezcan en la consola de Google Cloud de inmediato.

  3. Opcional: Verifica los recursos en tu producto de datos:

    gcloud dataplex data-products data-assets list \
        --data-product="DATA_PRODUCT_ID" \
        --location="LOCATION" \
        --project="PROJECT_ID"
  4. Publicar el producto de datos en SAP BDC Asegúrate de que el catálogo de conexiones, el producto de datos y los recursos subyacentes estén en la misma región.

    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"

    El producto de datos publicado se puede descubrir 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 que se establecieron cuando se creó el producto de datos de Knowledge Catalog.

    Reemplaza lo siguiente:

    • CONNECTION_CATALOG_ID: Es el catálogo de conexiones de Delta Sharing inscrito que se creó durante la configuración inicial para compartir datos de SAP BDC a BigQuery. Es el mismo catálogo de Delta Sharing que se menciona en las instrucciones de configuración; no es necesario que crees otro para volver a publicar.
    • PROJECT_NUMBER: Es el número del proyecto de Google Cloud. El sap-federated-identity-provider debe usar el número del proyecto, no el ID del proyecto.
    • POOL_ID: Es el ID del grupo de WIF.
    • PROVIDER_ID: Es el ID del proveedor de WIF.
    • DATA_PRODUCT_ID: Es el ID de tu producto de datos del Knowledge Catalog.
    • LOCATION: Es la ubicación de tu producto de datos de Knowledge Catalog.
    • SAP_SHARE_NAME: Es el nombre del recurso compartido en SAP BDC.

Accede a los datos de Google Cloud en SAP BDC

Después de publicar tus datos en SAP BDC, puedes acceder a los datos de Google Cloud 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?