Konfiguration des Deployments
In diesem Dokument werden die Optionen für die Bereitstellungskonfiguration für das Cortex Framework in den folgenden Bereichen erläutert:
- Bereitstellungskonfigurationen (
config/config.yaml): Definiert globale Variablen, Build-Umgebungen und die Modulzuordnung (Ziele für Datenfundament und Datenprodukt). - Tabellenkonfigurationen (
table_settings.yaml): Modulspezifische Leistungs- und Schemaspezifikationen, in denen beschrieben wird, wie Basistabellen in BigQuery kompiliert und angepasst werden.
Dieser Leitfaden enthält auch Anleitungen mit Schritt-für-Schritt-Anleitungen für gängige Bereitstellungsanwendungsfälle und ‑szenarien.
Konfigurationsdatei: config/config.yaml
Die Datei config/config.yaml, die in der Regel aus der Vorlage config/config.yaml.example initialisiert wird, dient als primäre Konfiguration für die Bereitstellung des Cortex Framework. Sie definiert wichtige Parameter wie das Zielprojekt für die Ausführung Google Cloud , die BigQuery-Quelldatasets und ‑zieldatasets sowie Dataform-Spezifikationen wie Repository- und Arbeitsbereichsnamen.
In den folgenden Abschnitten wird die config/config.yaml-Struktur detailliert beschrieben.
Build-Umgebung
Das Build-Umgebungsprojekt ist das Projekt, das für Build-Aktionen wie BigQuery-Jobs (Lesen von DD03L) abgerechnet wird.
buildEnvironment:
buildProjectId: YOUR_BUILD_PROJECT_ID
In der folgenden Tabelle werden die Parameter der Build-Umgebung beschrieben.
| Parameter | Bedeutung | Standardwert | Beschreibung |
|---|---|---|---|
buildEnvironment.buildProjectId |
Build-Projekt-ID | YOUR_BUILD_PROJECT_ID |
Google Cloud : Projekt-ID, in der Buildvorgänge ausgeführt werden. |
Übersicht über den Bereich „Daten“
Im data:-Abschnitt der Konfigurationsdatei werden Ihre Datenquellen, Ziele und die spezifischen Module für die Datengrundlage und die Datenprodukte definiert.
Die allgemeine Struktur sieht so aus:
data:
# Geographic location for BigQuery datasets (for example: US, EU, us-central1)
# For full list see: https://docs.cloud.google.com/cortex/docs/supported-locations
bigQueryLocation: US
# List of namespaces for data foundation and product modules.
namespaces:
- name: cortex
path: cortex
# List of source datasets.
sources:
- ...
# List of target datasets.
targets:
- ...
# Configuration for data foundation and product modules.
modules:
# List of foundation modules.
foundation:
- ...
# List of data product modules.
product:
- ...
Daten: BigQuery-Standort
Definiert den Speicherort der BigQuery-Quell- und ‑Zieldatasets.
| Parameter | Bedeutung | Standardwert | Beschreibung |
|---|---|---|---|
data.bigQueryLocation |
BigQuery-Standort | US |
Speicherort des BigQuery-Datasets, z. B. US, us-central1 oder europe-west1.
|
Daten: Cortex-Namespace
Definiert den Namespace des Cortex Framework.
| Parameter | Bedeutung | Standardwert | Beschreibung |
|---|---|---|---|
data.namespaces.name |
Namespace-Name | - | Name des Cortex Framework-Namespace. Beispiel: cortex. |
data.namespaces.path |
Namespace-Pfad | - | Cortex Framework-Namespacepfad für Unterverzeichnisse, die im Ordner „src“ und „config“ verwendet werden. Beispiel: cortex. |
Daten: BigQuery-Quellen und ‑Zieldatasets
In der Liste der Quellen werden BigQuery-Datasets definiert, in die die Rohdaten aus dem Quellsystem repliziert oder gestreamt wurden.
Die Ziele definieren eine Liste von BigQuery-Datasets, in denen die von Dataform verarbeiteten Datasets gespeichert werden.
Auf jede Quelle und jedes Ziel wird in den Modulen anhand der eindeutigen ID verwiesen.
# Data source and target mapping
sources:
- id: sap_raw
projectId: YOUR_SOURCE_PROJECT_ID
datasetId: cortex_sap_raw
targets:
- id: sap_foundation
projectId: YOUR_TARGET_PROJECT_ID
datasetId: cortex7_sap_data_foundation
In der folgenden Tabelle werden die Parameter für die Zuordnung von Datenquelle und ‑ziel beschrieben.
| Parameter | Bedeutung | Standardwert | Beschreibung |
|---|---|---|---|
data.sources.id |
Quellen-ID | - |
Definiert die ID für das Quelldataset, aus dem Daten abgerufen werden sollen. Beispiel: sap_raw. |
data.sources.projectId |
ID des Quellprojekts | YOUR_SOURCE_PROJECT_ID |
Verweist auf die Google Cloud Projekt-ID mit Quelldaten. |
data.sources.datasetId |
BigQuery-Quell-Dataset-ID | - |
Verweist auf die BigQuery-Dataset-ID mit Quelldaten. Beispiel: cortex_sap_raw. |
data.targets.id |
Ziel-ID | - | Definiert die „id“ für das Ziel-Dataset. Beispiel: sap_foundation. |
data.targets.projectId |
Zielprojekt-ID | YOUR_TARGET_PROJECT_ID |
Verweist auf die Google Cloud Projekt-ID für die Zieldaten. |
data.targets.datasetId |
BigQuery-Zieldataset-ID | - |
Verweist auf die BigQuery-Dataset-ID für die Zieldaten. Beispiel: cortex7_sap_data_foundation. |
Daten: Module
Die Module definieren die Struktur und die Komponenten der Dataform-Datenpipelines.
Daten: Module: Grundlagen
In diesem Abschnitt werden die Module der Data Foundation-Ebene konfiguriert, die Daten aus der Rohdatenebene (CDC-Streams) in eine standardisierte Darstellung der neuesten Datensätze der Quelldaten verarbeiten. Wenn die Quelle direkt eine Ansicht der neuesten Datensätze bereitstellt oder solche Transformationen vom Connector des Quellsystems ausgeführt werden, kann das Modul als externe Datenfundierungsquelle konfiguriert werden.
modules:
# List of foundation modules.
foundation:
# Unique identifier for the module instance.
- moduleId: erp
# Type of the module (namespaced, for example, cortex.sap).
type: cortex.sap
# Reference to the source dataset ID.
dataSourceId: sap_raw
# Reference to the target dataset ID.
dataTargetId: sap_foundation
# Module-specific configuration settings.
moduleSettings:
# SAP version (for example, ecc, s4).
sapVersion: ecc
# SAP client number.
mandt: "100"
# Whether the module is enabled.
# enabled: true
# Whether the foundation is external (does not create target dataset).
# external: false
# Custom table settings file, relative to 'config/' file directory
# Recommended path: '{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml'
# Default path: '../src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml'
# tableSettings: "custom_datafoundation_table_settings.yaml"
In der folgenden Tabelle werden die Parameter der Data Foundation-Module für die modules.foundation-Konfiguration beschrieben.
| Parameter | Bedeutung | Standardwert | Beschreibung |
|---|---|---|---|
moduleId |
Modulkennung | erp |
Eindeutige Kennung für eine bestimmte Instanz eines Data Foundation-Transformationsmoduls. |
type |
Logischer Modultyp | cortex.sap |
Definiert die angewendete Geschäftslogik oder Vorlage (z. B. cortex.sap). |
dataSourceId |
Quellenlink | sap_raw |
Verweist auf die „id“ aus der Liste „data.sources“, um Daten abzurufen. |
dataTargetId |
Ziellink | sap_foundation |
Verweist auf die „id“ aus der Zielliste, an die Daten gesendet werden sollen. |
moduleSettings.sapVersion |
SAP-Systemversion | ecc |
Gilt nur für SAP-Datenquellen. Legt die quellspezifische Logik für ecc- (ECC) oder s4-Systeme (S/4HANA) fest. |
moduleSettings.mandt |
SAP-Client (Mandant) | 100 |
Gilt nur für SAP-Datenquellen. Die dreistellige SAP-Client-Kennung, die zum Filtern von Datenzeilen verwendet wird. |
enabled |
Modul aktivieren | true |
Gibt an, ob das Modul aktiviert ist. |
external |
Externe Stiftung | false |
Gibt an, ob die Grundlage extern ist (kein Zieldataset wird erstellt). |
tableSettings |
Tabelleneinstellungen | src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml |
Pfad zur benutzerdefinierten Konfigurationsdatei für Tabelleneinstellungen, relativ zu dieser Konfigurationsdatei. Empfohlener Pfad: relativ zum Verzeichnis „config/“: „{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml“ Standardpfad: „../src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml“ |
Daten: Module: Produkte
In Datenproduktmodulen werden die Aggregationen, Berechnungen und Joins definiert, die erforderlich sind, um Rohdaten in Statistiken umzuwandeln, die bestimmte geschäftliche Anwendungsfälle erfüllen.
Bei der Konfiguration der Datenprodukte können Sie eine eindeutige ID festlegen, Abhängigkeiten definieren sowie auf das Datenfundierungsmodul und das Zieldataset verweisen, in dem die Ergebnisse gespeichert werden.
Die detaillierte Konfiguration der angegebenen Datenprodukte wird in Dateien definiert, auf die mit dem Schlüssel tableSettings verwiesen wird.
modules:
# List of data product modules.
product:
# Unique identifier for the data product instance.
- moduleId: sap_purchasing_organizational_structure
# Type of the data product (namespaced).
type: cortex.purchasing_organizational_structure
# Map of module dependencies.
dependsOn:
sapModule: erp
# Reference to the target dataset ID.
dataTargetId: product_target
# Whether the module is enabled.
# enabled: true
# Custom table settings file, relative to 'config/' file directory
# Recommended path: '{namespace}/data_product/{data_product_module_type}/table_settings.yaml'
# If omitted, defaults to '../src/data_modules/{namespace}/data_product/{data_product_module_type}/table_settings.default.yaml'
# tableSettings: "custom_dataproduct_table_settings.yaml"
In der folgenden Tabelle werden die Parameter für die Datenproduktmodule für die modules.product-Konfiguration beschrieben.
| Parameter | Bedeutung | Standardwert | Beschreibung |
|---|---|---|---|
moduleId |
Modulkennung | - | Eindeutige Kennung für eine bestimmte Transformationsmodulinstanz. |
type |
Logischer Modultyp | - | Definiert die angewendete Geschäftslogik oder Vorlage, die im Ordner src/data_modules/{namespace}/data_product/{data_product_module_type} definiert ist. |
dataTargetId |
Ziellink | product_target |
Verweist auf die „id“ aus der Zielliste, an die Daten gesendet werden sollen. |
dependsOn |
Upstream-Abhängigkeit | sapModule: erp |
Gibt an, welches Fundierungsmodul vorhanden sein muss, bevor das Produktmodul erstellt werden kann. |
enabled |
Modul aktivieren | true |
Gibt an, ob das Modul aktiviert ist. |
tableSettings |
Tabelleneinstellungen | src/data_modules/{namespace}/data_product/{data_product_module_type}/table_settings.default.yaml |
Pfad zur benutzerdefinierten Konfigurationsdatei für Tabelleneinstellungen, relativ zu dieser Konfigurationsdatei. Empfohlener Pfad: relativ zum Verzeichnis „config/“: „{namespace}/data_product/{data_product_module_type}/table_settings.yaml“ Standardpfad: „../src/data_modules/{namespace}/data_product/{data_product_module_type}/table_settings.default.yaml“ |
Bereitstellungsumgebung
Das Cortex Framework verwendet Dataform, um SQL-Transformationen in BigQuery zu orchestrieren. Im deployment:-Block wird die Dataform-Konfiguration definiert, die für die Ausführung der Datenpipelines verantwortlich ist. Dazu gehören das Repository-Projekt, der Standort, der Repository-Name und der Name des Dataform-Arbeitsbereichs.
deployment:
targets:
- type: dataform
enabled: true
targetSettings:
repositoryProjectId: YOUR_REPO_PROJECT_ID
repositoryRegion: us-central1
repositoryName: cortex-repository
workspaceName: dev
# serviceAccount: "example@example.com"
In der folgenden Tabelle werden die Standortparameter für Bereitstellungsziele (deployment.targets:) beschrieben.
| Parameter | Bedeutung | Standardwert | Beschreibung |
|---|---|---|---|
type |
Art der Bereitstellung | dataform |
Typ der Bereitstellungsziele. |
enabled |
Aktiviert/ Deaktiviert | true |
Gibt an, ob das angegebene Bereitstellungsziel aktiviert oder deaktiviert ist. |
targetSettings.repositoryProjectId |
Repository-Projekt-ID | YOUR_REPO_PROJECT_ID |
Die Google Cloud Projekt-ID, in der das Dataform-Repository verwaltet wird. |
targetSettings.repositoryRegion |
Repository-Region | us-central1 |
Die Google Cloud -Region für das Dataform-Repository (z. B. us-central1 oder europe-west1). |
targetSettings.repositoryName |
Repository-Name | cortex-repository |
Der spezifische Name des Dataform-Repositorys. |
targetSettings.workspaceName |
Name des Arbeitsbereichs | dev |
Der spezifische Dataform-Arbeitsbereich, der für den Bereitstellungszyklus verwendet wird. |
targetSettings.serviceAccount |
E-Mail-Adresse des Dienstkontos | - |
Standard-E-Mail-Adresse des Dienstkontos für die Ausführung von Dataform-Repositories. |
Konfigurationsdatei: table_settings.yaml
In dieser Anleitung wird beschrieben, wie Sie mit der Datei table_settings.yaml Tabellen für die Datengrundlage und das Datenprodukt im Google Cloud Cortex Framework konfigurieren.
Die datenmodulspezifische table_settings.yaml-Datei steuert, wie Rohquellentabellen angepasst und wie analytische Datenmodelle in BigQuery materialisiert werden. Mit dieser Datei können Sie Tags, Materialisierungsstrategien und erweiterte BigQuery-Leistungsfunktionen wie Partitionierung oder Clustering konfigurieren.
Dynamische Auflösung von Abhängigkeiten
Standardmäßig optimiert Cortex Framework den Bereitstellungs-Footprint und die Ausführungszeit, indem nur die Fundamenttabellen bereitgestellt und kompiliert werden, die als Abhängigkeiten Ihrer aktivierten Datenprodukte erforderlich sind. Wenn für eine in table_settings.yaml konfigurierte Tabelle keine aktiven Downstream-Datenprodukte vorhanden sind, die von ihr abhängen, wird sie bei der Bereitstellung ausgelassen.
Wenn Sie diese Optimierung überschreiben und die Bereitstellung einer Foundation-Tabelle erzwingen möchten, können Sie das Attribut deployAlways auf true festlegen (siehe Referenz für Stilparameter für Data Foundations).
Im Google Cloud Cortex Framework kann jedem Modul (Foundation oder Produkt) in der Bereitstellungskonfigurationsdatei eine bestimmte Datei mit Tabelleneinstellungen zugewiesen werden: config/config.yaml mit dem Attribut tableSettings.
Konfigurationspfade
- Benutzerdefinierte Einstellungen (empfohlen): Wenn Sie das Tabellenverhalten anpassen möchten, kopieren Sie die Standarddatei in Ihr Konfigurationsverzeichnis, ändern Sie sie und verweisen Sie in
config/config.yamlauf den Pfad. Die empfohlenen Pfade (relativ zum Verzeichnisconfig/) sind:- Foundation-Module:
namespace/data_foundation/data_foundation/custom_table_settings.yaml(z.B.config/cortex/data_foundation/sap/table_settings.yaml) - Produktmodule:
namespace/data_product/data_product/custom_table_settings.yaml(z.B.config/cortex/data_product/accounting_documents/table_settings.yaml)
- Foundation-Module:
- Standard-Fallback:Wenn
tableSettingsweggelassen wird, greift das Framework automatisch auf Folgendes zurück:- Foundation-Module:
../src/data_modules/namespace/data_foundation/data_foundation/table_settings.default.yaml - Produktmodule:
../src/data_modules/namespace/data_product/data_product/table_settings.default.yaml
- Foundation-Module:
Konfigurationsstile
Je nach Kategorie des Moduls gibt es zwei verschiedene Schemastile für table_settings.yaml:
- Data Foundation-Stil:Listenbasierte Zuordnung, mit der die Beziehungen zwischen Quell- und Zielschema, die CDC-Verarbeitung (Change Data Capture) und das BigQuery-Layout definiert werden.
- Data Product Style (Stil des Datenprodukts): Eine kartenbasierte Zuordnung (Wörterbuch), die definiert, wie Analyseansichten oder ‑tabellen materialisiert (z.B. als Ansichten, Tabellen oder inkrementelle Tabellen) und optimiert werden.
Beide Stile unterstützen drei Abschnitte auf Stammebene, um Konfigurationen nach Quellsystemversion zu trennen (wird hauptsächlich für SAP Data Foundation und SAP-abhängige Produkte verwendet):
ecc: Einstellungen, die nur bei der Bereitstellung eines SAP ECC-Quellsystems angewendet werden.s4: Einstellungen, die nur bei der Bereitstellung eines SAP S/4HANA-Quellsystems angewendet werden.common: Einstellungen, die unabhängig von der SAP-Version angewendet werden (für angepasste oder universelle Einstellungen).
Stil der Datengrundlage
In einem Data Foundation-Modul ist die Datei table_settings.yaml als Liste von Tabellenelementen unter den Schlüsseln ecc, s4 und common strukturiert. Jedes Element ordnet eine Rohquelltabelle einer angepassten Zieltabelle zu und konfiguriert die BigQuery-Einstellungen.
Beispiel für YAML-Syntax
common:
- source:
tableName: bkpf
isCdc: true
target:
tableName: bkpf # Optional: defaults to source tableName if omitted
tags: [sap, common, finance, hourly]
clusterDetails:
columns: [bukrs, gjahr]
partitionDetails:
column: budat
partitionType: time
timeGrain: day
deployAlways: false
Parameterverweis
| Parameter | Typ | Erforderlich | Standard / Beispiel | Beschreibung |
|---|---|---|---|---|
ecc | s4 | common |
string |
Nein | [] |
Version oder Dialekt des Quellsystems. |
[].deployAlways |
boolean |
Nein | false |
Wenn true, wird die Tabelle immer bereitgestellt und erstellt, auch wenn sie aufgrund von Optimierungsregeln möglicherweise übersprungen würde. Siehe auch Dynamische Auflösung von Abhängigkeiten |
Quelleneinstellungen
Definiert die Eigenschaften der Rohdaten-Eingangstabelle.
| Parameter | Typ | Erforderlich | Standard / Beispiel | Beschreibung |
|---|---|---|---|---|
tableName |
string |
Ja | bkpf |
Der Name der Rohquelltabelle in BigQuery (Groß-/Kleinschreibung wird nicht beachtet). |
isCdc |
boolean |
Nein | true |
Gibt an, ob die Quelltabelle CDC-Logs (Change Data Capture) enthält.
• • |
Zieleinstellungen
Definiert das Layout der angepassten Ausgabetabelle im Ziel-Dataset.
| Parameter | Typ | Erforderlich | Standard / Beispiel | Beschreibung |
|---|---|---|---|---|
tableName |
string |
Nein | *(Same as source)* | Der Name der zu erstellenden angepassten Zieltabelle. Wenn nichts angegeben ist, wird standardmäßig das Framework der Quelle tableName verwendet. |
tags |
array[string] |
Nein | [sap, finance] |
Eine Liste der Metadatentags, die an die angepasste Aktion in Dataform angehängt sind. Das sind beliebige Strings, die nicht vorab registriert oder in anderen Konfigurationen definiert werden müssen. Sie können sofort zum Filtern von Pipeline-Ausführungen verwendet werden, z. B. mit dataform run --tags .... |
clusterDetails |
map |
Nein | – | Optional. Konfiguration für BigQuery-Clustering. Weitere Informationen finden Sie unter Details zum Clustering. |
partitionDetails |
map |
Nein | – | Optional. Konfiguration der BigQuery-Partitionierung. Weitere Informationen finden Sie unter Partitionierungsdetails. |
Stil des Datenprodukts
Im Modul „Datenprodukt“ ist die Datei table_settings.yaml als Dictionary (Map) unter den Schlüsseln ecc, s4 und common strukturiert. Die Schlüssel des Dictionarys stellen die Namen der Analysetabelle oder ‑ansicht dar und die Werte definieren die Materialisierungs- und Leistungseinstellungen.
Beispiel für YAML-Syntax
s4:
customers:
materializationType: incremental
tags: [sap, dataproduct, masterdata]
clusterDetails:
columns: [mandt, ktokd]
Parameterverweis
| Parameter | Typ | Erforderlich | Standard / Beispiel | Beschreibung |
|---|---|---|---|---|
ecc | s4 | common |
map |
Nein | {} |
Eine Zuordnung von analytischen Ziel-Assets (Tabellen oder Ansichten) zu ihren Konfigurationen. |
[table_name].materializationType |
string |
Nein | incremental |
Wie das Analyse-Asset in BigQuery erstellt wird.
Zulässige Werte:
|
[table_name].tags |
array[string] |
Nein | [sap, dataproduct] |
Metadatentags, die an das Analyse-Asset in Dataform angehängt sind. Das sind beliebige Strings, die nicht vorregistriert werden müssen. Sie können sofort für selektive Pipeline-Ausführungen verwendet werden. |
[table_name].clusterDetails |
map |
Nein | – | Optional. Konfiguration für BigQuery-Clustering. Weitere Informationen finden Sie unter Details zum Clustering. |
[table_name].partitionDetails |
map |
Nein | – | Optional. Konfiguration der BigQuery-Partitionierung. Weitere Informationen finden Sie unter Partitionierungsdetails. |
Erweiterte BigQuery-Konfigurationen
Beide Stile haben dieselbe Struktur für die Optimierung von BigQuery-Speicher und Abfrageleistung durch Clustering und Partitionierung.
Details zum Clustering
Beim Clustering werden Daten anhand der Werte in bestimmten Spalten zusammengefasst. BigQuery sortiert die Daten in jedem Speicherblock anhand dieser Spalten. Dadurch werden Abfragen, die nach diesen Spalten filtern (WHERE) oder sie verknüpfen (JOIN), erheblich beschleunigt.
clusterDetails:
columns: [bukrs, gjahr]
Parameterverweis
| Parameter | Typ | Erforderlich | Beispiel | Beschreibung |
|---|---|---|---|---|
columns |
array[string] |
Ja | [bukrs, gjahr] |
Eine sortierte Liste mit bis zu vier Spaltennamen, nach denen die Tabelle geclustert werden soll.
Einschränkung:Spalten müssen alphanumerisch sein und dürfen nur Unterstriche enthalten. Die Reihenfolge der Spalten in der Liste bestimmt die Sortierhierarchie. |
Details zur Partitionierung
Beim Partitionieren wird eine große Tabelle anhand der Werte einer Datums-, Zeitstempel- oder Ganzzahlspalte in kleinere physische Segmente unterteilt. So wird verhindert, dass BigQuery die gesamte Tabelle scannt, wenn in einer Abfrage nur ein bestimmter Bereich von Tagen, Monaten oder IDs angefordert wird.
partitionDetails:
column: budat
partitionType: time
timeGrain: day
Parameterverweis
| Parameter | Typ | Erforderlich | Beispiel | Beschreibung |
|---|---|---|---|---|
column |
string |
Ja | budat |
Der Spaltenname, der zum Partitionieren der Tabelle verwendet wird. Darf nur alphanumerische Zeichen und Unterstriche enthalten. Der Spaltentyp muss mit partitionType übereinstimmen. |
partitionType |
string |
Ja | time |
Die Partitionierungsstrategie.
Zulässige Werte:
|
timeGrain |
string |
Nein | day |
Erforderlich, wenn partitionType time oder DATE ist. Definiert die Granularität der Zeitpartitionen.
Zulässige Werte: |
rangeStart |
integer |
Nein | 1 |
Erforderlich, wenn partitionType integer ist. Der Startwert der ersten Partition (einschließlich). |
rangeEnd |
integer |
Nein | 1000 |
Erforderlich, wenn partitionType integer ist. Der Endwert der letzten Partition (ausschließlich). |
rangeInterval |
integer |
Nein | 10 |
Erforderlich, wenn partitionType integer ist. Die Breite jedes Partitionsintervalls. |
Beispiele
Die folgenden Beispiele zeigen Konfigurationsvorlagen für Datenfundament- und Datenproduktmodule. Sie veranschaulichen, wie Sie Zieltabellen anpassen, das Speicherlayout in BigQuery optimieren und Materialisierungstypen konfigurieren.
1. Beispiel für benutzerdefinierte Einstellungen für die Fundamentaldatentabelle
In diesem Beispiel wird gezeigt, wie Sie eine Fundierungsebene mit geclusterten und partitionierten Transaktionstabellen (z. B. bseg und ekbe) neben Standarddatentabellen konfigurieren:
# ==============================================================================
# S/4HANA-Specific Tables
# ==============================================================================
s4:
# ACDOCA is a massive table in S/4HANA; clustering is vital
- source:
tableName: acdoca
target:
tags: [sap, s4, finance, transactional, hourly]
clusterDetails:
columns: [rclnt, rbukrs, gjahr]
# ==============================================================================
# ECC-Specific Tables
# ==============================================================================
ecc:
- source:
tableName: faglflexa
target:
tags: [sap, ecc, finance, transactional, hourly]
# ==============================================================================
# Common Tables (ECC & S/4HANA)
# ==============================================================================
common:
# Financial document header (partitioned by posting date)
- source:
tableName: bkpf
isCdc: true
target:
tags: [sap, common, finance, hourly]
clusterDetails:
columns: [bukrs, gjahr]
partitionDetails:
column: budat
partitionType: time
timeGrain: day
# Purchasing document items (partitioned by creation date)
- source:
tableName: ekpo
target:
tags: [sap, common, logistics, purchasing, hourly]
clusterDetails:
columns: [mandt, ebeln]
partitionDetails:
column: aedat
partitionType: time
timeGrain: month
# Standard master data table (no partitioning/clustering needed)
- source:
tableName: lfa1
target:
tags: [sap, common, masterdata, vendor, daily]
2. Beispiel für benutzerdefinierte Einstellungen für die Tabelle mit Datenprodukten
In diesem Beispiel wird gezeigt, wie Sie Materialisierungstypen für nachgelagerte analytische Datenprodukte konfigurieren. Wir legen transaktionale sales_documents als inkrementell fest, um die Build-Leistung zu optimieren und Kosten zu sparen. Nicht transaktionale Datentabellen wie customers werden als Standardtabellen erstellt:
# settings applied for both ECC and S/4HANA pipelines
common:
# Transactional data product - incremental build
sales_documents:
materializationType: incremental
tags: [sap, dataproduct, sales, transactional]
clusterDetails:
columns: [vkorg, vbeln]
partitionDetails:
column: audat
partitionType: time
timeGrain: day
# Master data product - full table rebuild
customers:
materializationType: table
tags: [sap, dataproduct, masterdata]
clusterDetails:
columns: [mandt, ktokd]
# Aggregated reporting view - virtual view
sales_performance_summary:
materializationType: view
tags: [sap, dataproduct, sales, reporting]
Anleitungen
Dieser Abschnitt enthält detaillierte Anleitungen für häufige Konfigurationsaufgaben und benutzerdefinierte Bereitstellungsszenarien.
Tabellenbereich in einem Datenfundierungsmodul anpassen
So fügen Sie einem vorhandenen Data Foundation-Modul Tabellen hinzu oder entfernen sie daraus, ohne neue Module zu erstellen oder separate Pipeline-Instanzen auszuführen:
- Kopieren Sie die Standardkonfigurationen für
table_settings.default.yamlin das Konfigurationsverzeichnis Ihres Arbeitsbereichs (z. B.config/cortex/data_foundation/sap/custom_table_settings.yaml). - Fügen Sie in der neuen Datei nach Bedarf benutzerdefinierte Tabellen unter den Schlüsseln
ecc,s4odercommonhinzu oder entfernen Sie nicht verwendete Standardtabellen:
common:
- source:
tableName: custom_table_name
target:
tags: [custom_tag]
- Aktualisieren Sie
config/config.yaml, damit auf den Pfad der benutzerdefinierten Tabelleneinstellungen in dertableSettings-Eigenschaft des Moduls verwiesen wird:
data:
modules:
foundation:
- moduleId: erp
type: cortex.sap
# Custom table settings file, relative to configuration file directory
# Recommended path: '{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml'
tableSettings: 'cortex/data_foundation/sap/custom_table_settings.yaml'
Mehrere Instanzen eines Data Foundation-Moduls konfigurieren
So stellen Sie zwei oder mehr separate Pipeline-Instanzen desselben Modultyps bereit (z. B. zur Unterstützung mehrerer SAP-Instanzen, zum Segmentieren von Tabellen, zum Isolieren von Umgebungen oder zum Ausrichten auf verschiedene Zieldatasets):
Vorbereitung:
* Prüfen Sie, ob die Quelltabellen in Ihrem Rohdatensatz vorhanden sind.
* Achten Sie darauf, dass die Schemas der Ziel-Datasets konfiguriert sind.
* Prüfen Sie bei der Arbeit mit SAP-Datenfundierungsmodulen, ob die Metadatentabelle DD03L Spalten und Deskriptorinformationen für die benutzerdefinierten Tabellen enthält, die Sie aufnehmen möchten. Weitere Informationen finden Sie unter SAP ERP-Anforderungen.
Anleitung:
- Fügen Sie in der Datei
config/config.yamlunterdata.targetsZielkonfigurationen hinzu, um Zieldatasets für jede Pipeline-Instanz zu definieren:
data:
targets:
- id: data_foundation_core
projectId: target_project_id
datasetId: data_foundation_sap_core
- id: data_foundation_custom
projectId: target_project_id
datasetId: data_foundation_sap_custom
- Definieren Sie mehrere Instanzen des Moduls in der Liste
data.modules.foundation. Geben Sie für jede Instanz eine eindeutigemoduleId, eigene Ziel-Dataset-IDs und optional einetableSettings-Konfiguration an:
data:
modules:
foundation:
# Core SAP ERP foundation module instance
- moduleId: erp_core
type: cortex.sap
dataSourceId: sap_raw
dataTargetId: data_foundation_core
# If omitted, defaults to "../src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml"
# tableSettings: "../src/data_modules/cortex/data_foundation/sap/table_settings.default.yaml"
# Custom tables pipeline instance
- moduleId: erp_custom
type: cortex.sap
dataSourceId: sap_raw
dataTargetId: data_foundation_custom
# Custom table settings file, relative to configuration file directory
# Recommended path: 'config/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml'
tableSettings: "cortex/data_foundation/sap/custom_datafoundation_table_settings.yaml"
- Erstellen Sie die
config/cortex/data_foundation/sap/custom_datafoundation_table_settings.yaml-Datei, in der der benutzerdefinierte Bereich angegeben wird. Beispiel:
common:
- source:
tableName: custom_sap_table_name
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [carrid, connid]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
- Wenden Sie die Änderungen an, indem Sie das Bereitstellungsskript (
uv run cortex-build-and-deploy) ausführen. Führen Sie dann die Dataform-Aktionen aus, wie unter Schritte nach der Bereitstellung beschrieben.