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.yaml die Konfiguration des Zieldatasets zu data.targets hinzu. 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.foundation in der Datei config/config.yaml ein, 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 der config/config.yaml-Datei mit external: true an und entfernen Sie targetDataSetID.
[...]
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.