Intégrer et synchroniser les produits de données SAP Business Data Cloud avec Cortex Framework à l'aide du catalogue d'exécution Lakehouse
Ce document explique comment connecter Cortex Framework à SAP Business Data Cloud à l'aide de l'intégration du catalogue d'exécution Lakehouse.
En combinant Google Cloud SAP Delta Sharing avec la connexion de fédération du catalogue d'exécution BigQuery Lakehouse, Cortex Framework peut interroger tous les produits de données gérés dans SAP BDC directement dans BigQuery sans frais de copie, et les référencer dans des produits de données analytiques personnalisés en aval. Les principaux composants de cette intégration sont les suivants :
- Requêtes fédérées : les produits de données publiés dans SAP BDC sont exposés à l'aide de points de terminaison Delta Sharing sécurisés. BigQuery fédère les requêtes vers ces points de terminaison à l'aide de la connexion du catalogue d'exécution Google Cloud Lakehouse.
- Enregistrement du catalogue : dans Cortex Framework, vous enregistrez le catalogue SAP BDC à l'aide d'un module de type
delta_sharesousdata.modules.catalogsdansconfig/config.yaml. - Liaisons de produits de données Google Cloud Cortex Framework : les produits de données personnalisés en aval référencent les tables de catalogue BDC en liant leurs dépendances d'entrée aux ID de partage et de table Delta Sharing spécifiques au format
{catalog_id}.{share_id}.{table_name}.
Prérequis pour SAP BDC
Avant de configurer la connexion dans Cortex Framework, vous devez suivre les étapes ci-dessous dans Google Cloud et SAP :
- Configurer Google Cloud le catalogue d'exécution Lakehouse : configurez la connexion du catalogue d'exécution BigQuery Lakehouse dans votre Google Cloud projet en tirant parti de Google Cloud Delta Sharing pour SAP Business Data Cloud.
- Récupérer les ID de partage : recherchez et listez les valeurs
shareIdDelta Sharing (par exemple,customer_v1_he2_100_p8123ousalesorder_v1_he2_100_p8124) publiées par le locataire SAP BDC connecté.
Exemple de configuration
L'exemple de configuration suivant enregistre un catalogue SAP BDC et utilise ses partages pour calculer un produit de données personnalisé sur les performances commerciales :
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
Pour obtenir une référence des paramètres, consultez la section Configuration du déploiement pour le type de module de catalogue de données.
Lorsqu'un produit de données personnalisé repose sur des tables de catalogue d'exécution Lakehouse, configurez ses dépendances d'entrée dans config/config.yaml à l'aide de la syntaxe du chemin d'accès au catalogue :
dependencyBindings:
{logical_input_name}: {catalog_id}.{share_id}.{table_name}
Où :
{catalog_id}correspond à la propriétéiddu catalogue sousdata.modules.catalogs.{share_id}correspond à l'une des chaînesshareIddu catalogue déclarées.{table_name}correspond au nom de la table physique exposée dans ce partage.
Liaison de dépendance Dataform en aval
Lors de la compilation (cortex-build), Cortex Framework lit les métadonnées du catalogue et traduit automatiquement les liaisons de dépendance en noms de tables fédérées BigQuery complets.
Dans vos définitions de produits de données personnalisés (par exemple, les fichiers .js ou .sqlx), référencez les sources SAP BDC conformes :
// 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
`
);