Pembuatan modul fondasi data

Pembuatan modul fondasi data diperlukan untuk memproses tabel mentah tambahan dan menyertakannya dalam set data fondasi data.

Saat membuat modul fondasi data kustom, sebaiknya gunakan namespace kustom khusus untuk mengemasnya. Selain itu, pastikan tabel sumber yang akan Anda proses ada dalam set data lapisan mentah.

Saat menggunakan modul fondasi data SAP, pastikan tabel DD03L telah direplikasi dalam set data mentah—dikonfigurasi sebagai sumber untuk modul fondasi Anda dalam file config/config.yaml. Pastikan juga bahwa tabel DD03L yang direplikasi berisi catatan metadata kolom untuk tabel apa pun yang akan Anda muat (misalnya, tabel kustom atau tambahan seperti sflight). Skrip build Cortex Framework dan pemecah dependensi membaca baris metadata ini untuk mengidentifikasi daftar kolom, jenis data, dan hubungan kunci utama antar-tabel.

Definisi modul fondasi data

Untuk definisi modul fondasi data, ikuti langkah-langkah berikut:

  • Di file config/config.yaml, tambahkan konfigurasi set data target ke data.targets. Tindakan ini akan menyiapkan set data BigQuery khusus yang akan digunakan untuk men-deploy tabel fondasi:
[...]
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   
  • Untuk menentukan modul fondasi data, tambahkan hal berikut ke bagian modules.foundation dalam file config/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. 

  • Alternatif: jika menggunakan tabel CDC yang diproses eksternal sebagai fondasi data, sesuaikan bagian modules.foundation dalam file config/config.yaml dengan external: true dan hapus 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. 

  • Buat table_settings.yaml yang direferensikan untuk menentukan tabel mana dari set data lapisan mentah yang akan diubah menjadi lapisan fondasi data.
common:
  - source:
      tableName: custom_sap_table_name
    target:
      tags: [sap, s4, hourly]
      clusterDetails:
        columns: [carrid, connid]
      partitionDetails:
        column: fldate
        partitionType: time
        timeGrain: day

Contoh modul fondasi data

Dalam contoh berikut, kita akan menggunakan namespace custom_namespace yang telah ditentukan sebelumnya untuk membuat modul fondasi data kustom baru yang memproses tabel sflight.

Mendaftarkan modul fondasi data baru.

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"

Membuat table_settings.yaml

Buat file: config/sap_bookingdatamodel/data_foundation/sap/table_settings.yaml dengan konten ini:

common:
  - source:
      tableName: sflight
    target:
      tags: [sap, s4, hourly]
      clusterDetails:
        columns: [carrid, connid]
      partitionDetails:
        column: fldate
        partitionType: time
        timeGrain: day

Karena tabel memiliki tata letak yang sama untuk dialek SAP ECC dan S/4HANA, tabel ini adalah elemen turunan dari bagian common:.

Membuat file anotasi untuk setiap tabel, yang digunakan untuk memperkaya skema dengan metadata.

Dalam skenario contoh, kita membuat src/data_modules/sap_bookingdatamodel/data_foundation/sap/annotations/sflight.yaml, dengan konten ini:

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"

Untuk memverifikasi bahwa modul fondasi data kustom berhasil dikompilasi dan di-deploy, lihat bagian Verifikasi di halaman ekstensi produk data.