Integrar e sincronizar produtos de dados do SAP Business Data Cloud com o Cortex Framework usando o catálogo de ambiente de execução do Lakehouse.

Este documento descreve como conectar o Cortex Framework ao SAP Business Data Cloud usando a integração do catálogo de ambiente de execução do Lakehouse.

Ao combinar Google Cloud o SAP Delta Sharing com a conexão de federação do catálogo de ambiente de execução do BigQuery Lakehouse, o Cortex Framework pode consultar qualquer produto de dados gerenciado no SAP BDC diretamente no BigQuery sem sobrecarga de cópia e referenciá-los em produtos de dados analíticos personalizados downstream. Os principais componentes dessa integração são:

  1. Consultas federadas: os produtos de dados publicados no SAP BDC são expostos usando endpoints seguros do Delta Sharing. O BigQuery federa consultas a esses endpoints usando a Google Cloud conexão do catálogo de ambiente de execução do Lakehouse.
  2. Registro do catálogo: no Cortex Framework, você registra o catálogo do SAP BDC usando um módulo do tipo delta_share em data.modules.catalogs em config/config.yaml.
  3. Vinculações de produtos de dados do Google Cloud Cortex Framework: os produtos de dados personalizados downstream referenciam tabelas de catálogo do BDC vinculando as dependências de entrada aos IDs de compartilhamento e tabela do Delta Sharing no formato {catalog_id}.{share_id}.{table_name}.

Pré-requisitos do SAP BDC

Antes de configurar a conexão no Cortex Framework, conclua as etapas a seguir no Google Cloud SAP:

  • Configurar Google Cloud o catálogo de ambiente de execução do Lakehouse: configure a conexão do catálogo de ambiente de execução do BigQuery Lakehouse no seu Google Cloud projeto usando Google Cloud o Delta Sharing para o SAP Business Data Cloud.
  • Recuperar IDs de compartilhamento: localize e liste os valores shareId do Delta Sharing (por exemplo, customer_v1_he2_100_p8123 ou salesorder_v1_he2_100_p8124) publicados pelo locatário conectado do SAP BDC.

Exemplo de configuração

O exemplo de configuração a seguir registra um catálogo do SAP BDC e usa os compartilhamentos dele para calcular um produto de dados de performance de vendas personalizado:

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 referência de parâmetros, consulte a seção Configuração de implantação para o tipo de módulo do catálogo de dados.

Quando um produto de dados personalizado depende de tabelas de catálogo de ambiente de execução do Lakehouse, configure as dependências de entrada em config/config.yaml usando a sintaxe do caminho do catálogo:

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

Em que:

  • {catalog_id} corresponde à propriedade id do catálogo em data.modules.catalogs.
  • {share_id} corresponde a uma das strings shareId do catálogo declaradas.
  • {table_name} corresponde ao nome da tabela física exposta nesse compartilhamento.

Vinculação de dependência do Dataform downstream

Durante a compilação (cortex-build), o Cortex Framework lê os metadados do catálogo e traduz automaticamente as vinculações de dependência em nomes de tabelas federadas do BigQuery totalmente qualificados.

Nas definições de produtos de dados personalizados (por exemplo, arquivos .js ou .sqlx), referencie as fontes conformadas do 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
  `
);