Modul für Datengrundlage erstellen
Zum Verarbeiten zusätzlicher Rohdatentabellen und zum Einbeziehen dieser Tabellen in das Data Foundation-Dataset muss ein Data Foundation-Modul erstellt werden.
Wenn Sie ein benutzerdefiniertes Data Foundation-Modul erstellen, empfehlen wir, es in einem benutzerdefinierten Namespace zu verpacken. Achten Sie außerdem darauf, dass die Quelltabelle, die Sie verarbeiten möchten, im Dataset der Rohdatenebene vorhanden ist.
Achten Sie beim Bearbeiten von SAP-Datenfundierungsmodulen darauf, dass die Tabelle DD03L im Rohdatensatz repliziert wurde, der als Quelle für Ihr Fundierungsmodul in der Datei config/config.yaml konfiguriert ist. Achten Sie außerdem darauf, dass die replizierte DD03L-Tabelle die Feldmetadatensätze für alle Tabellen enthält, die Sie aufnehmen möchten, z. B. die benutzerdefinierten oder zusätzlichen Tabellen wie sflight. Die Build-Skripts und der Abhängigkeitsresolver des Cortex Framework lesen diese Metadatenzeilen, um Spaltenlisten, Datentypen und Primärschlüsselbeziehungen zwischen Tabellen zu ermitteln.
Definition des Moduls „Datengrundlage“
So definieren Sie das Modul für die Datenbasis:
- Fügen Sie der Datei
config/config.yamldie Konfiguration des Zieldatasets zudata.targetshinzu. Dadurch wird ein dediziertes BigQuery-Dataset vorbereitet, in dem die Fundamenttabellen bereitgestellt werden:
[...]
data:
[...]
targets:
- id: data_foundation_sap_custom_namespace
# Google Cloud Project ID for the target dataset.
projectId: target_project_id
# BigQuery dataset ID for the target.
datasetId: data_foundation_sap_custom_namespace
- Fügen Sie Folgendes in den Abschnitt
modules.foundationin der Dateiconfig/config.yamlein, um das Modul für die Datenbasis zu definieren:
[...]
data:
[...]
modules:
foundation:
[...]
- moduleId: foundation_module_id
type: cortex.sap
dataSourceId: sap_raw_s4
dataTargetId: data_foundation_sap_custom_namespace
moduleSettings:
sapVersion: s4
mandt: "100"
tableSettings: "table_settings.yaml"
# Optional. Path to custom table settings configuration relative to this config file, e.g., `config/custom_namespace_path/data_foundation/sap/table_settings.yaml`
# If omitted, defaults to src/data_modules/cortex/data_foundation/sap/table_settings.default.yaml.
- Alternative: Wenn Sie eine externe verarbeitete CDC-Tabelle als Datenbasis verwenden, passen Sie den
modules.foundation-Abschnitt in derconfig/config.yaml-Datei mitexternal: truean und entfernen SietargetDataSetID.
[...]
data:
[...]
modules:
foundation:
[...]
- moduleId: foundation_module_id
type: cortex.sap
dataSourceId: sap_raw_s4
external: true
moduleSettings:
sapVersion: s4
mandt: "100"
tableSettings: "table_settings.yaml"
# Optional. Path to custom table settings configuration relative to this config file, e.g., `config/custom_namespace_path/data_foundation/sap/table_settings.yaml`
# If omitted, defaults to src/data_modules/cortex/data_foundation/sap/table_settings.default.yaml.
- Erstellen Sie die referenzierte
table_settings.yaml, in der definiert wird, welche Tabellen aus dem Dataset der Rohdatenebene in die Datengrundlagenebene transformiert werden.
common:
- source:
tableName: custom_sap_table_name
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [carrid, connid]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
Beispiel für ein Data Foundation-Modul
Im folgenden Beispiel verwenden wir den zuvor definierten Namespace custom_namespace, um ein neues benutzerdefiniertes Data Foundation-Modul zu erstellen, das die Tabelle sflight verarbeitet.
Registrieren Sie ein neues Data Foundation-Modul.
data:
targets:
- id: data_foundation_sap_bookingdatamodel
projectId: target_project_id
datasetId: data_foundation_sap_bookingdatamodel
modules:
foundation:
- moduleId: sap_bookingdatamodel
type: sap_bookingdatamodel.sap
dataSourceId: sap_raw_s4
dataTargetId: data_foundation_sap_sap_bookingdatamodel
moduleSettings:
sapVersion: s4
mandt: "100"
tableSettings: "table_settings.yaml"
table_settings.yaml erstellen
Erstellen Sie die Datei config/sap_bookingdatamodel/data_foundation/sap/table_settings.yaml mit folgendem Inhalt:
common:
- source:
tableName: sflight
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [carrid, connid]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
Da die Tabelle für SAP ECC- und S/4HANA-Dialekte dasselbe Layout hat, ist sie ein untergeordnetes Element des Abschnitts common:.
Erstellen Sie Anmerkungsdateien für jede Tabelle, um die Schemas mit Metadaten anzureichern.
Im Beispielszenario erstellen wir src/data_modules/sap_bookingdatamodel/data_foundation/sap/annotations/sflight.yaml mit folgendem Inhalt:
description: "transparent table FLIGHT, part of the Basis Components Module, BC-DWB-TND (Training and Demo)."
fields:
- name: "mandt"
description: "Client"
- name: "carrid"
description: "Airline Code"
- name: "connid"
description: "Flight Connection Number"
- name: "fldate"
description: "Flight date"
- name: "price"
description: "Airfare"
- name: "currency"
description: "Local currency of airline"
- name: "planetype"
description: "Aircraft Type"
- name: "seatsmax"
description: "Maximum capacity in economy class"
- name: "seatsocc"
description: "Occupied seats in economy class"
- name: "paymentsum"
description: "Total of current bookings"
- name: "seatsmax_b"
description: "Maximum capacity in business class"
- name: "seatsocc_b"
description: "Occupied seats in business class"
- name: "seatsmax_f"
description: "Maximum capacity in first class"
- name: "seatsocc_f"
description: "Occupied seats in first class"
Wenn Sie prüfen möchten, ob das benutzerdefinierte Modul für die Datenbasis erfolgreich kompiliert und bereitgestellt wird, lesen Sie den Abschnitt Bestätigung auf der Seite zur Erweiterbarkeit von Datenprodukten.
- Vorheriger Schritt: Benutzerdefinierten Namespace einrichten
- Nächster Schritt: Modul für Datenprodukt erstellen
- Zurück zur Übersicht