Creazione del modulo della base di dati
La creazione di un modulo della base di dati è necessaria per elaborare le tabelle non elaborate supplementari e includerle nel set di dati della base di dati.
Quando crei un modulo della base di dati personalizzato, ti consigliamo di utilizzare uno spazio dei nomi personalizzato dedicato per il packaging. Inoltre, assicurati che la tabella di origine che intendi elaborare esista nel set di dati del livello non elaborato.
Quando lavori sui moduli della base di dati SAP, assicurati che la tabella DD03L sia stata replicata nel set di dati non elaborati, configurato come origine per il modulo della base di dati nel file config/config.yaml. Assicurati inoltre che la tabella DD03L replicata contenga i record dei metadati dei campi per tutte le tabelle che intendi importare (ad esempio, le tabelle personalizzate o supplementari come sflight). Gli script di build e il resolver delle dipendenze di Cortex Framework leggono queste righe di metadati per identificare gli elenchi di colonne, i tipi di dati e le relazioni di chiave primaria tra le tabelle.
Definizione del modulo della base di dati
Per la definizione del modulo della base di dati, segui questi passaggi:
- Nel file
config/config.yaml, aggiungi la configurazione del set di dati di destinazione adata.targets. In questo modo, verrà preparato un set di dati BigQuery dedicato in cui verranno eseguito il deployment delle tabelle della base di dati:
[...]
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
- Per definire il modulo della base di dati, aggiungi quanto segue alla sezione
modules.foundationall'interno del fileconfig/config.yaml:
[...]
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.
- In alternativa, se utilizzi una tabella CDC elaborata esterna come base di dati, modifica la sezione
modules.foundationall'interno del fileconfig/config.yamlconexternal: truee rimuovitargetDataSetID.
[...]
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.
- Crea il file
table_settings.yamla cui viene fatto riferimento, definendo le tabelle del set di dati del livello non elaborato che verranno trasformate nel livello della base di dati.
common:
- source:
tableName: custom_sap_table_name
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [carrid, connid]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
Esempio di modulo della base di dati
Nell'esempio seguente, utilizzeremo lo spazio dei nomi custom_namespace definito in precedenza per creare un nuovo modulo della base di dati personalizzato che elabora la tabella sflight.
Registra il nuovo modulo della base di dati.
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"
Crea table_settings.yaml
Crea il file: config/sap_bookingdatamodel/data_foundation/sap/table_settings.yaml con questo contenuto:
common:
- source:
tableName: sflight
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [carrid, connid]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
Poiché la tabella ha lo stesso layout per i dialetti SAP ECC e S/4HANA, è un elemento figlio della sezione common:.
Crea file di annotazioni per ogni tabella, utilizzati per arricchire gli schemi con i metadati.
Nello scenario di esempio, creiamo src/data_modules/sap_bookingdatamodel/data_foundation/sap/annotations/sflight.yaml, con questo contenuto:
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"
Per verificare che il modulo della base di dati personalizzato venga compilato ed eseguito il deployment correttamente, consulta la sezione Verifica nella pagina Estensibilità del prodotto dati.
- Passaggio precedente: configurare uno spazio dei nomi personalizzato
- Passaggio successivo: creazione del modulo del prodotto dati
- Torna alla panoramica