Creazione del modulo della base di dati
La creazione di un modulo data foundation personalizzato è necessaria solo se devi definire comportamenti di build personalizzati o estendere il supporto a un nuovo sistema di origine (ad esempio Salesforce) non supportato immediatamente.
Prima di iniziare, assicurati che la tabella di origine che prevedi di elaborare esista nel set di dati del livello non elaborato.
Quando lavori sui moduli della base dati SAP, assicurati che la tabella DD03L replicata contenga i record di metadati necessari per tutte le tabelle che prevedi di importare (incluse tabelle personalizzate o supplementari). Per i requisiti dettagliati, vedi Requisiti dei metadati SAP ERP.
Quando crei un modulo o uno spazio dei nomi della base di dati personalizzata, ti consigliamo di utilizzare uno spazio dei nomi personalizzato dedicato per migliorare la gestione del ciclo di vita separando le estensioni e le personalizzazioni dagli artefatti di Cortex Framework.
Creazione di un nuovo modulo di base di dati
Per la definizione del modulo Data Foundation:
- 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 implementate le tabelle di base:
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 dati, aggiungi quanto segue alla sezione
modules.foundationall'interno del fileconfig/config.yaml:
data:
modules:
foundation:
# Recommended naming for foundation_module_id:
# custom_namespace_data_foundation_module_type
- moduleId: foundation_module_id
type: cortex.sap
dataSourceId: sap_raw_s4
dataTargetId: data_foundation_sap_custom_namespace
moduleSettings:
sapVersion: s4
mandt: "100"
# Custom table settings file, relative to 'config/' directory
# If omitted, defaults to "../src/data_modules/custom_namespace/data_foundation/data_foundation_module_type/table_settings.default.yaml"
# tableSettings: "custom_namespace/data_foundation/data_foundation_module_type/table_settings.yaml"
- Alternativa: se utilizzi una tabella CDC elaborata esterna come base dei dati, modifica la sezione
modules.foundationall'interno del fileconfig/config.yamlconexternal: truee rimuovidataTargetId:
data:
modules:
foundation:
- moduleId: foundation_module_id
type: cortex.sap
dataSourceId: sap_raw_s4
external: true
moduleSettings:
sapVersion: s4
mandt: "100"
# Custom table settings file, relative to 'config/' directory
# If omitted, defaults to "../src/data_modules/custom_namespace/data_foundation/data_foundation_module_type/table_settings.default.yaml"
# tableSettings: "custom_namespace/data_foundation/data_foundation_module_type/table_settings.yaml"
- Crea il file
tableSettingsa cui viene fatto riferimento nella configurazione, definendo quali tabelle del set di dati del livello non elaborato verranno trasformate nel livello di base dei dati. Ti consigliamo di utilizzare il percorso predefinito:src/data_modules/custom_namespace/data_foundation/data_foundation_module_type/table_settings.default.yaml
common:
- source:
tableName: custom_sap_table_name
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [ pk_column]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
Esempio di modulo di base dei dati
L'esempio seguente registra un nuovo modulo di base dati personalizzato che elabora la tabella sflight nello spazio dei nomi personalizzato sap_bookingdatamodel.
Registra il nuovo modulo di base dei 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_bookingdatamodel
moduleSettings:
sapVersion: s4
mandt: "100"
Crea table_settings.default.yaml
Crea il file delle impostazioni della tabella: src/data_modules/sap_bookingdatamodel/data_foundation/sap/table_settings.default.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 secondario della sezione common:.
Crea un file di annotazioni per ogni tabella, utilizzato per arricchire gli schemi con i metadati.
Nello scenario di esempio, creiamo src/data_modules/sap_bookingdatamodel/data_foundation/sap/annotations/sflight.yaml con questi contenuti:
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 di base dei dati personalizzato venga compilato e implementato correttamente, consulta la sezione Verifica nella pagina di estensibilità del prodotto di dati.
- Passaggio precedente: configurazione di uno spazio dei nomi personalizzato
- Passaggio successivo: creazione del modulo del prodotto di dati
- Torna alla panoramica