SAP Business Data Cloud-Datenprodukte mit Cortex Framework mithilfe des Lakehouse-Laufzeitkatalogs einbinden und synchronisieren
In diesem Dokument wird beschrieben, wie Sie Cortex Framework mit SAP Business Data Cloud verbinden. Dazu wird die Lakehouse-Laufzeitkatalogintegration verwendet.
Durch die Kombination von Google Cloud SAP Delta Sharing mit der BigQuery Lakehouse-Laufzeitkatalog-Verbindungsföderation kann Cortex Framework alle Datenprodukte, die in SAP BDC verwaltet werden, direkt in BigQuery abfragen, ohne dass Kopien erstellt werden müssen. Außerdem können sie in benutzerdefinierten nachgelagerten analytischen Datenprodukten referenziert werden. Die wichtigsten Komponenten dieser Integration sind:
- Föderierte Abfragen: In SAP BDC veröffentlichte Datenprodukte werden über sichere Delta Sharing-Endpunkte bereitgestellt. BigQuery führt föderierte Abfragen für diese Endpunkte mit der Google Cloud Lakehouse-Laufzeitkatalogverbindung aus.
- Katalogregistrierung: In Cortex Framework registrieren Sie den SAP BDC-Katalog mit einem Modul vom Typ
delta_shareunterdata.modules.catalogsinconfig/config.yaml. - Bindungen von Google Cloud Cortex Framework-Datenprodukten: Nachgelagerte benutzerdefinierte Datenprodukte verweisen auf BDC-Katalogtabellen, indem ihre Eingabeabhängigkeiten an die spezifischen Delta Sharing-Freigabe- und Tabellen-IDs im Format
{catalog_id}.{share_id}.{table_name}gebunden werden.
Voraussetzungen für SAP BDC
Bevor Sie die Verbindung in Cortex Framework konfigurieren, müssen Sie die folgenden Schritte in Google Cloud und SAP ausführen:
- Lakehouse-Laufzeitkatalog Google Cloud konfigurieren: Richten Sie die BigQuery Lakehouse-Laufzeitkatalogverbindung in Ihrem Google Cloud Projekt mit Google Cloud Delta Sharing für SAP Business Data Cloud ein.
- Freigabe-IDs abrufen: Suchen Sie die Delta Sharing
shareId-Werte (z. B.customer_v1_he2_100_p8123odersalesorder_v1_he2_100_p8124), die vom verbundenen SAP BDC-Mandanten veröffentlicht wurden, und listen Sie sie auf.
Konfigurationsbeispiel
In der folgenden Beispielkonfiguration wird ein SAP BDC-Katalog registriert und seine Freigaben werden verwendet, um ein benutzerdefiniertes Datenprodukt zur Umsatzleistung zu berechnen:
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
Eine Parameterreferenz finden Sie im Abschnitt Bereitstellungskonfiguration für den Datenkatalogmodultyp.
Wenn ein benutzerdefiniertes Datenprodukt auf Lakehouse-Laufzeitkatalogtabellen basiert, konfigurieren Sie die Eingabeabhängigkeiten in config/config.yaml mit der Syntax für den Katalogpfad:
dependencyBindings:
{logical_input_name}: {catalog_id}.{share_id}.{table_name}
Wobei:
{catalog_id}entspricht dem Attributiddes Katalogs unterdata.modules.catalogs.{share_id}entspricht einem der deklariertenshareId-Strings des Katalogs.{table_name}entspricht dem physischen Tabellennamen, der in dieser Freigabe verfügbar gemacht wird.
Nachgelagerte Dataform-Abhängigkeitsbindung
Während der Kompilierung (cortex-build) liest Cortex Framework die Katalogmetadaten und übersetzt die Abhängigkeitsbindungen automatisch in vollständig qualifizierte föderierte BigQuery-Tabellennamen.
Referenzieren Sie in Ihren benutzerdefinierten Datenproduktdefinitionen (z. B. .js- oder .sqlx-Dateien) die angepassten SAP BDC-Quellen:
// 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
`
);