Integra y sincroniza los productos de datos de SAP Business Data Cloud con Cortex Framework mediante el catálogo de tiempo de ejecución de Lakehouse

En este documento, se describe cómo conectar Cortex Framework a SAP Business Data Cloud con la integración del catálogo de tiempo de ejecución de Lakehouse.

Si se combina Google Cloud SAP Delta Sharing con la conexión de federación del catálogo de tiempo de ejecución de BigQuery Lakehouse, Cortex Framework puede consultar cualquier producto de datos administrado dentro de SAP BDC directamente en BigQuery sin sobrecarga de copia y hacer referencia a ellos en productos de datos analíticos personalizados de nivel inferior. Los componentes clave de esta integración son los siguientes:

  1. Consultas federadas: Los productos de datos publicados en SAP BDC se exponen mediante extremos seguros de Delta Sharing. BigQuery federa las consultas a estos extremos con la conexión del catálogo de tiempo de ejecución de Lakehouse. Google Cloud
  2. Registro de catálogo: En Cortex Framework, registras el catálogo de SAP BDC con un módulo de tipo delta_share en data.modules.catalogs en config/config.yaml.
  3. Vinculaciones de productos de datos de Google Cloud Cortex Framework: Los productos de datos personalizados de nivel inferior hacen referencia a las tablas del catálogo de BDC vinculando sus dependencias de entrada a los IDs de tabla y uso compartido de Delta Sharing específicos en el formato {catalog_id}.{share_id}.{table_name}.

Requisitos previos para SAP BDC

Antes de configurar la conexión en Cortex Framework, debes completar los siguientes pasos en Google Cloud SAP:

  • Configura Google Cloud el catálogo de tiempo de ejecución de Lakehouse: Configura la conexión del catálogo de tiempo de ejecución de BigQuery Lakehouse en tu Google Cloud proyecto con Google Cloud Delta Sharing para SAP Business Data Cloud.
  • Recupera los IDs de uso compartido: Ubica y enumera los valores shareId de Delta Sharing (por ejemplo, customer_v1_he2_100_p8123 o salesorder_v1_he2_100_p8124) publicados por el tenant de SAP BDC conectado.

Ejemplo de configuración

En la siguiente configuración de ejemplo, se registra un catálogo de SAP BDC y se usan sus recursos compartidos para calcular un producto de datos personalizado de rendimiento de ventas:

buildEnvironment:
  buildProjectId: YOUR_BUILD_PROJECT_ID

data:
  bigQueryLocation: europe-west3
  namespaces:
    - name: cortex
      path: ../src/data_modules/cortex
    - name: cortex_samples
      path: ../src/data_modules/cortex_samples
  datasets:
    - id: sap_bdc_data_products
      projectId: YOUR_TARGET_PROJECT_ID
      datasetId: sap_bdc_data_products

  modules:
    # 1. Register the SAP BDC Lakehouse runtime catalog connection (using lakehouse_delta_share type)
    catalogs:
      - id: sap_bdc_catalog
        type: lakehouse_delta_share
        enabled: true
        bindsNamespaces: [sap_bdc]
        connectionSettings:
          catalogId: sap_bdc_catalog
          projectId: YOUR_CATALOG_PROJECT_ID
          location: europe-west3
          shares:
            - shareId: customer_v1_he2_100_p8123
            - shareId: salesorder_v1_he2_100_p8124

    # 2. Reference the catalog shares in downstream products
    products:
      - moduleId: sap_bdc_sales_performance
        modulePath: cortex_samples.sap_bdc.products.sales_performance
        dependencyBindings:
          # Bind logical dependencies directly to the catalog shares and tables
          sapBdcCustomer: sap_bdc_catalog.customer_v1_he2_100_p8123.customer
          sapBdcSalesOrder: sap_bdc_catalog.salesorder_v1_he2_100_p8124.salesorder
        dataTargetId: sap_bdc_data_products

Para obtener información de referencia sobre los parámetros, consulta la sección Configuración de implementación para el tipo de módulo de catálogo de datos.

Cuando un producto de datos personalizado depende de las tablas del catálogo de tiempo de ejecución de Lakehouse, configura sus dependencias de entrada en config/config.yaml con la sintaxis de la ruta de acceso del catálogo:

dependencyBindings:     {logical_input_name}: {catalog_id}.{share_id}.{table_name}

Aquí:

  • {catalog_id} coincide con la propiedad id del catálogo en data.modules.catalogs.
  • {share_id} coincide con una de las cadenas shareId del catálogo declaradas.
  • {table_name} coincide con el nombre de la tabla física expuesta dentro de ese recurso compartido.

Vinculación de dependencias de Dataform de nivel inferior

Durante la compilación (cortex-build), Cortex Framework lee los metadatos del catálogo y traduce automáticamente las vinculaciones de dependencias a nombres de tablas federadas de BigQuery completamente calificados.

En las definiciones de productos de datos personalizados (por ejemplo, archivos .js o .sqlx), haz referencia a las fuentes conformadas de SAP BDC:

// Example JS definition referencing SAP BDC inputs
const moduleConfig = config.product[moduleContext.moduleId];
const customerSource = moduleConfig.sources.sapBdcCustomer;
const salesOrderSource = moduleConfig.sources.sapBdcSalesOrder;

publish("custom_sales_performance", {
  type: "table",
}).query(
  (ctx) => `
    SELECT
      cust.customer_id,
      orders.sales_order_id,
      orders.amount
    FROM ${ctx.ref(customerSource.datasetId, customerSource.tableName)} AS cust
    JOIN ${ctx.ref(salesOrderSource.datasetId, salesOrderSource.tableName)} AS orders
      ON cust.customer_id = orders.customer_id
  `
);