Integra e sincronizza i prodotti di dati di SAP Business Data Cloud con Cortex Framework utilizzando il catalogo di runtime Lakehouse.
Questo documento descrive come connettere Cortex Framework a SAP Business Data Cloud utilizzando l'integrazione del catalogo di runtime Lakehouse.
Combinando Google Cloud SAP Delta Sharing con la connessione di federazione del catalogo di runtime BigQuery Lakehouse, Cortex Framework può eseguire query su qualsiasi prodotto di dati gestito all'interno di SAP BDC direttamente in BigQuery senza sovraccarico di copia e farvi riferimento in prodotti di dati analitici downstream personalizzati. I componenti chiave di questa integrazione sono:
- Query federate: i prodotti di dati pubblicati in SAP BDC vengono esposti utilizzando endpoint Delta Sharing sicuri. BigQuery federa le query a questi endpoint utilizzando la Google Cloud connessione del catalogo di runtime Lakehouse.
- Registrazione del catalogo: in Cortex Framework registri il catalogo SAP BDC utilizzando un modulo di tipo
delta_shareindata.modules.catalogsinconfig/config.yaml. - Associazioni di prodotti di dati di Google Cloud Cortex Framework: i prodotti di dati personalizzati downstream fanno riferimento alle tabelle del catalogo BDC associando le dipendenze di input agli ID di condivisione e tabella di Delta Sharing specifici nel formato
{catalog_id}.{share_id}.{table_name}.
Prerequisiti per SAP BDC
Prima di configurare la connessione in Cortex Framework, devi completare i seguenti passaggi in Google Cloud SAP:
- Configura Google Cloud il catalogo di runtime Lakehouse: configura la connessione del catalogo di runtime BigQuery Lakehouse nel tuo Google Cloud progetto sfruttando Google Cloud Delta Sharing per SAP Business Data Cloud.
- Recupera gli ID di condivisione: individua ed elenca i valori
shareIddi Delta Sharing (ad es.customer_v1_he2_100_p8123osalesorder_v1_he2_100_p8124) pubblicati dal tenant SAP BDC connesso.
Esempio di configurazione
La seguente configurazione di esempio registra un catalogo SAP BDC e utilizza le relative condivisioni per calcolare un prodotto di dati personalizzato sul rendimento delle vendite:
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
Per il riferimento ai parametri, consulta la sezione Configurazione del deployment per il tipo di modulo del catalogo di dati.
Quando un prodotto di dati personalizzato si basa sulle tabelle del catalogo di runtime Lakehouse, configura le relative dipendenze di input in config/config.yaml utilizzando la sintassi del percorso del catalogo:
dependencyBindings:
{logical_input_name}: {catalog_id}.{share_id}.{table_name}
Dove:
{catalog_id}corrisponde alla proprietàiddel catalogo indata.modules.catalogs.{share_id}corrisponde a una delle stringheshareIddel catalogo dichiarate.{table_name}corrisponde al nome della tabella fisica esposta all'interno di quella condivisione.
Associazione di dipendenze Dataform downstream
Durante la compilazione (cortex-build), Cortex Framework legge i metadati del catalogo e traduce automaticamente le associazioni di dipendenze in nomi di tabelle federate BigQuery completi.
Nelle definizioni dei prodotti di dati personalizzati (ad es. file .js o .sqlx), fai riferimento alle origini SAP BDC conformi:
// 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
`
);