Menyiapkan namespace kustom
Namespace kustom berfungsi sebagai lingkungan logis untuk mengemas dan mengisolasi fondasi data dan modul produk data analisis Anda. Dengan menjalankan di dalam namespace kustom khusus, Anda dapat mengelola opsi konfigurasi dan deployment secara independen, sehingga memberikan isolasi untuk lingkungan Anda. Manfaat utama dari pemisahan ini adalah Anda dapat dengan mudah mengambil update dan peningkatan mendatang dari namespace cortex di Google Cloud Cortex Framework tanpa risiko mengganti atau merusak modul kustom Anda. Sebaiknya buat modul kustom Anda dalam namespace khusus.
Struktur folder namespace kustom
Folder namespace Cortex Framework digunakan untuk mengemas dan mengisolasi artefak modul kustom. Struktur folder namespace kustom ditentukan dalam tabel:
| Jalur direktori | Tujuan dan deskripsi | Struktur subfolder umum |
|---|---|---|
config/ |
Konfigurasi deployment Cortex (Wajib) Pembuatan namespace baru memerlukan penyiapannya dalam config.yaml.
|
config/config.yaml |
src/data_modules/custom_namespace_path/data_foundation/ |
Modul fondasi data (Opsional) Transformasi set data mentah ke fondasi. |
- |
src/data_modules/custom_namespace_path/data_product/ |
Definisi produk data (Opsional) Berisi logika bisnis dan model analisis. Setiap produk dipisahkan dalam subdirektori (misalnya, your_product_name) dan terdiri dari:
|
data_product/
└── your_product_name/
├── README.md
├── manifest.yaml
├── annotations/
└── definitions/ |
src/data_modules/custom_namespace_path/includes/ |
Helper JavaScript (Opsional) File JavaScript yang ditempatkan di sini akan otomatis dikemas dan tersedia untuk model Dataform Anda selama kompilasi di jalur namespace (misalnya, includes/custom_namespace/).
|
- |
src/data_modules/custom_namespace_path/common/ |
Alat bersama namespace (Opsional) Builder kustom, deployer, dan alat lainnya yang cakupannya namespace. |
- |
Konfigurasi namespace kustom
Namespace baru: custom_namespace dapat ditentukan dengan memperluas bagian yang sesuai dari file config.yaml, membuat direktori baru di bagian src/data_modules/, dan menambahkan aset kode modul baru.
Agar compiler Google Cloud Cortex Framework mengetahui namespace dan modul kustom Anda, Anda harus mendaftarkannya di file konfigurasi global (misalnya, config/config.yaml).
Langkah A: Daftarkan namespace
Di bagian blok data.namespaces, tambahkan metadata namespace Anda:
data:
namespaces:
- name: cortex
path: cortex/
- name: custom_namespace # <-- Name of custom namespace
path: custom_namespace_path/ # <-- Folder name that is used for custom namespace, points to subdirectory of 'src/data_modules/'
Langkah B: Konfigurasi modul kustom
Daftarkan modul kustom Anda di bagian data.modules.foundation atau data.modules.product. Gunakan format yang dipisahkan titik custom_namespace.module_type untuk kolom type field:
data:
modules:
foundation:
- moduleId: custom_namespace_foundation_module_id
type: custom_namespace.sap # Format: <namespace>.<module_type>
dataSourceId: sap_raw_s4
dataTargetId: data_foundation_sap_custom_namespace
moduleSettings:
sapVersion: s4
mandt: "100"
tableSettings: "config/custom_namespace_path/data_foundation/sap/table_settings.yaml"
product:
- moduleId: custom_namespace_data_product_id
type: custom_namespace.data_product_id # Format: <namespace>.<module_type>
dependsOn:
sapModule: erp_ecc # References an existing foundation moduleId
dataTargetId: product_target
tableSettings: "config/custom_namespace_path/data_product/data_product_id/table_settings.yaml"
Kode bersama namespace kustom
Namespace kustom mendukung berbagi artefak kode antar-modulnya. Jenis artefak yang didukung adalah:
- includes - Berisi helper JavaScript yang akan tersedia untuk artefak Dataform Anda. Helper ini dapat ditempatkan di folder:
src/data_modules/custom_namespace_path/includes/. - builders - Class generator kustom yang dapat mengompilasi kode sumber modul Anda menjadi artefak Dataform. Class ini dapat ditempatkan di
src/data_modules/custom_namespace_path/common/.
Memahami dan mereferensikan builder
Builder adalah class generator Python yang mengompilasi file sumber modul Anda menjadi output Dataform fisik. Google Cloud Cortex Framework mengompilasi modul menggunakan urutan resolusi builder tiga tingkat yang fleksibel:
Tingkat 1: Builder penggantian global
Framework ini mencakup builder yang sangat andal yang terletak di src/common/builders/. Builder ini terdaftar secara global dan dapat digunakan oleh namespace kustom apa pun.
Misalnya, untuk menggunakan builder produk data SAP standar untuk produk kustom Anda, referensikan sap_product di manifest.yaml:
# src/data_modules/custom_namespace_path/data_product/data_product_id/manifest.yaml
type: data_product_id
builder: sap_product # Automatically resolves to the global SapProductBuilder fallback
dependencies:
sapModule:
type: sap
supportedVersions:
- ecc
- s4
Tingkat 2: Builder cakupan namespace
Jika modul di dalam namespace kustom Anda memerlukan compiler khusus, Anda dapat mendaftarkan builder kustom untuk namespace tersebut.
Buat file builder di bagian
src/data_modules/custom_namespace_path/common/builders/my_builder.py.Hias class builder Anda dengan
@builder_registry.register("my_builder"):
from common.builders.base import ProductBuilder
from common.registry import builder_registry
@builder_registry.register("my_builder")
class MyCustomProductBuilder(ProductBuilder):
# Implement build logic here...
- Referensikan di
manifest.yamlproduk Anda menggunakanbuilder: my_builder.
Tingkat 3: Builder tingkat produk individual
Untuk pipeline yang sangat unik, Anda dapat menentukan builder yang cakupannya khusus untuk satu produk data.
Cukup buat file bernama
builder.pylangsung di dalam folder produk data Anda (misalnya,src/data_modules/custom_namespace_path/data_product/data_product_id/builder.py).Tentukan subclass
BaseBuilderatauProductBuilderdi dalamnya:
from common.builders.base import ProductBuilder
class UniqueSalesPerformanceBuilder(ProductBuilder):
# Implement unique build logic here...
- Compiler akan otomatis mengimpor dan menjalankan class ini secara dinamis tanpa memerlukan pendaftaran atau dekorator.
Contoh namespace kustom
Di file config/config.yaml, tambahkan blok ini di bagian data.namespaces:
data:
namespaces:
- name: cortex
path: cortex/
- name: sap_bookingdatamodel # <-- Name of custom namespace: sap_bookingdatamodel
path: sap_bookingdatamodel/ # <-- Folder name that is used for custom namespace:sap_bookingdatamodel, points to subdirectory of 'src/data_modules/'
Pada langkah berikutnya: Pembuatan modul fondasi data dan Pembuatan modul produk data, Anda akan mempelajari cara menambahkan modul data ke namespace.
- Langkah berikutnya: Pembuatan modul fondasi data
- Kembali ke Ringkasan