Praktik terbaik untuk siklus proses alur kerja

Dokumen ini menjelaskan praktik terbaik untuk mengelola siklus proses alur kerja di Dataform: membuat lingkungan pengembangan, penyiapan, dan produksi, serta mengonfigurasi setelan kompilasi dan eksekusi untuk setiap lingkungan.

Untuk membuat siklus proses standar alur kerja Dataform yang menjaga kebersihan data dan mengoptimalkan proses pengembangan, sebaiknya Anda:

  • Buat lingkungan eksekusi untuk mengisolasi tabel yang dibuat selama pengembangan dari tabel yang tersedia bagi pengguna akhir.

  • Konfigurasi rilis dan alur kerja untuk menjalankan alur kerja di lingkungan produksi, dan secara opsional di lingkungan penyiapan.

Dokumen ini menjelaskan solusi untuk mengisolasi tabel pengembangan dengan penggantian kompilasi ruang kerja dan mengonfigurasi lingkungan staging dan produksi dengan konfigurasi rilis dan konfigurasi alur kerja.

Solusi ini memungkinkan Anda membuat lingkungan eksekusi dalam satu project dan repositori Dataform. Google Cloud Anda dapat memilih untuk memiliki beberapa salinan repositori Dataform, yang ditempatkan di projectGoogle Cloud yang berbeda, dengan setiap project sesuai dengan tahap siklus proses kode Anda, misalnya, pengembangan, staging, dan produksi. Pendekatan ini memungkinkan Anda menyesuaikan izin Identity and Access Management di setiap tahap siklus proses kode Anda.

Praktik terbaik untuk lingkungan eksekusi terisolasi

Sebaiknya pisahkan tabel yang dibuat selama eksekusi alur kerja pengembangan dari tabel produksi di BigQuery. Hal ini memastikan bahwa pengguna akhir dapat membuka tabel produksi dan menghilangkan risiko pengguna akhir mengakses data yang salah secara tidak sengaja.

Anda dapat membuat lingkungan eksekusi terisolasi dengan cara berikut:

Membagi tabel pengembangan dan produksi menurut skema
Direkomendasikan untuk tim kecil. Dataform membuat tabel pengembangan dan produksi dalam skema yang berbeda di BigQuery. Dataform menjalankan semua tabel pengembangan dalam skema yang memiliki akhiran yang sama, yang menandai bahwa tabel tersebut dibuat selama pengembangan. Developer dapat menimpa tabel pengembangan satu sama lain.
Membagi tabel pengembangan dan produksi menurut skema dan Google Cloud project
Direkomendasikan untuk tim berukuran sedang. Dataform membuat tabel pengembangan dan produksi dalam skema dan project yang berbeda di BigQuery. Dataform memublikasikan semua tabel pengembangan dalam project pengembangan Google Cloud khusus. Setiap developer Dataform memiliki skema uniknya sendiri untuk tabel pengembangan. Solusi ini menghilangkan risiko developer saling menimpa tabel pengembangan secara tidak sengaja. Kelemahan dari pendekatan ini adalah penghapusan tabel dan skema pengembangan, serta pembuatan ulang semua tabel di setiap lingkungan dapat memerlukan lebih banyak waktu.
Membagi tabel pengembangan, staging, dan produksi per Google Cloud project
Direkomendasikan untuk tim besar atau tim yang memerlukan lingkungan staging. Dataform menjalankan tabel dari setiap lingkungan dalam Google Cloud project khusus di BigQuery. Solusi ini memberi Anda kontrol paling besar atas siklus proses kode.

Semua solusi memerlukan satu repositori Dataform yang terhubung ke satu repositori jarak jauh pihak ketiga.

Dalam semua solusi, developer secara manual memicu eksekusi tabel pengembangan di dalam ruang kerja Dataform mereka. Dataform secara otomatis mengompilasi tabel produksi dan penyiapan dalam konfigurasi rilis, dan menjalankannya pada frekuensi yang ditetapkan dalam konfigurasi alur kerja.

Memisahkan pengembangan dan produksi menurut skema

Solusi ini membuat dua lingkungan eksekusi tempat Dataform akan menjalankan alur kerja Anda: pengembangan dan produksi. Untuk memisahkan tabel pengembangan dan produksi berdasarkan skema, Anda perlu mengonfigurasi setelan alur kerja, penggantian kompilasi ruang kerja, dan konfigurasi rilis. Untuk menjadwalkan proses produksi, Anda perlu membuat konfigurasi alur kerja.

Dataform menjalankan semua tabel pengembangan dalam skema yang memiliki akhiran yang sama, yang menandai bahwa tabel tersebut dibuat selama pengembangan. Dataform menjalankan semua tabel produksi dalam skema tanpa akhiran.

Tabel berikut menunjukkan konfigurasi yang memisahkan tabel pengembangan dan produksi menurut skema, dengan satu skema pengembangan:

Setelan Pengembangan Produksi
Google Cloud project enterprise-analytics enterprise-analytics
Cabang Git nama ruang kerja main
Penggantian kompilasi Workspace akhiran skema: dev -
Konfigurasi rilis - production
Konfigurasi alur kerja - production

Dalam solusi ini, tabel pengembangan dan produksi disimpan dalam satu Google Cloud project.

Developer memicu eksekusi secara manual di ruang kerja Dataform mereka. Dalam semua eksekusi yang dipicu secara manual, Dataform menjalankan tabel dalam skema yang memiliki akhiran yang sama, yang menandai bahwa tabel tersebut dibuat selama pengembangan. Developer harus menyadari bahwa mereka dapat menimpa tabel satu sama lain.

Di Dataform, developer melakukan commit dan mengirim perubahan ke cabang kustom repositori jarak jauh. Kemudian, di platform hosting Git pihak ketiga, mereka mengirimkan permintaan pull. Persetujuan permintaan pull menggabungkan perubahan ke branch main repositori jarak jauh.

Dataform otomatis mengompilasi tabel produksi dari cabang main repositori jarak jauh menjadi hasil kompilasi sesuai dengan setelan konfigurasi rilis production.

Dataform otomatis menjalankan hasil kompilasi production sesuai jadwal yang ditetapkan dalam konfigurasi alur kerja production.

Untuk menerapkan solusi ini, konfigurasi setelan Dataform berikut:

Setelan alur kerja

Bergantung pada versi Dataform core, setelan alur kerja disimpan di workflow_settings.yaml atau dataform.json. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi setelan alur kerja Dataform.

Di workflow_settings.yaml, konfigurasi setelan berikut:

defaultProject: enterprise-analytics
defaultDataset: analytics

Di dataform.json, konfigurasi setelan berikut:

{
defaultSchema: "analytics",
defaultDatabase: "enterprise-analytics"
}

Penggantian Workspace

Akhiran skema: "dev"

Konfigurasi rilis

Git commitish: "main"

Untuk menjadwalkan eksekusi hasil kompilasi production, buat konfigurasi alur kerja.

Proses pengembangan sampel

Dalam contoh ini, developer Sasha dan Kai bekerja di repositori Dataform yang sama. Repositori Dataform terhubung ke repositori Git pihak ketiga jarak jauh.

Mereka melakukan commit dan mengirim perubahan ke cabang kustom di repositori jarak jauh, yang disebut sasha dan kai.

Tabel berikut menunjukkan setelan lingkungan yang diterapkan untuk Sasha, Kai, dan lingkungan produksi:

Setelan Sasha Kai Produksi
Google Cloud project enterprise-analytics enterprise-analytics enterprise-analytics
Cabang Git sasha kai main
Skema analytics_dev analytics_dev analytics

Sasha membuat tabel baru dan men-deploy-nya ke produksi dalam proses berikut:

  1. Di ruang kerja Dataform, Sasha membuat tabel user_stats.
  2. Di ruang kerja, Sasha memicu eksekusi tabel secara manual.
  3. Dataform membuat tabel enterprise-analytics.analytics_dev.user_stats dalam skema analytics_dev di project enterprise-analytics Google Cloud di BigQuery.
  4. Di ruang kerja, Sasha melakukan commit pada perubahan dan mengirimkannya ke cabang sasha di repositori Git jarak jauh.
  5. Di repositori jarak jauh, Sasha mengirimkan permintaan pull.
  6. Di repositori jarak jauh, Kai meninjau dan menyetujui permintaan pull, menggabungkan perubahan ke branch main.
  7. Dataform otomatis memperbarui hasil kompilasi dalam rilis production pada frekuensi yang ditentukan. Selama update berikutnya pada hasil kompilasi production, Dataform akan menambahkan tabel enterprise-analytics.analytics.user_stats ke hasil kompilasi.
  8. Selama eksekusi konfigurasi alur kerja terjadwal, Dataform menjalankan tabel enterprise-analytics.analytics.user_stats di skema analytics dalam project enterprise-analytics Google Cloud di BigQuery.
  9. Tabel user_stats tersedia untuk pengguna akhir dalam skema analytics di project enterprise-analytics Google Cloud di BigQuery.

Memisahkan pengembangan dan produksi menurut skema dan project

Solusi ini membuat dua lingkungan eksekusi: pengembangan dan produksi. Untuk memisahkan tabel pengembangan dan produksi menurut skema dan project Google Cloud , Anda perlu mengonfigurasi setelan alur kerja, penggantian kompilasi ruang kerja, dan konfigurasi rilis. Untuk menjadwalkan proses produksi, Anda perlu membuat konfigurasi alur kerja.

Dalam solusi ini, Dataform menjalankan pengembangan dalam project pengembangan Google Cloud khusus, dalam skema dengan akhiran skema yang berbeda untuk setiap ruang kerja.

Dataform menjalankan semua tabel produksi di BigQuery project produksi khusus tanpa akhiran skema. Google Cloud

Tabel berikut menunjukkan konfigurasi yang memisahkan tabel pengembangan dan produksi menurut skema dan project Google Cloud , dengan satu skema pengembangan per ruang kerja Dataform:

Setelan Pengembangan Produksi
Google Cloud project enterprise-dev enterprise-prod
Cabang Git nama ruang kerja main
Penggantian kompilasi Workspace akhiran skema: ${workspaceName} -
Konfigurasi rilis - production
Konfigurasi alur kerja - production

Dalam solusi ini, Dataform menjalankan tabel pengembangan dan produksi dalam skema dan Google Cloud project yang berbeda di BigQuery.

Developer memicu eksekusi secara manual di ruang kerja Dataform mereka. Setiap developer bekerja di ruang kerja khusus mereka, yang dinamai sesuai nama mereka, misalnya, sasha.

Saat developer memicu eksekusi di ruang kerjanya, Dataform menambahkan nama ruang kerja sebagai akhiran skema ke semua skema. Kemudian, Dataform menjalankan tabel dalam skema kustom.

Misalnya, Dataform membuat tabel dari ruang kerja sasha dalam skema analytics_sasha di BigQuery. Dengan cara ini, setiap developer menyimpan tabel pengembangan di skemanya sendiri. Tidak ada risiko menimpa tabel developer lain secara tidak sengaja.

Di Dataform, developer melakukan commit dan mengirim perubahan ke cabang kustom repositori jarak jauh. Kemudian, di platform hosting Git pihak ketiga, mereka mengirimkan permintaan pull. Persetujuan permintaan pull menggabungkan perubahan ke branch main repositori jarak jauh.

Dataform otomatis mengompilasi tabel produksi dari cabang main repositori jarak jauh menjadi hasil kompilasi sesuai dengan setelan konfigurasi rilis production.

Dataform otomatis menjalankan hasil kompilasi production sesuai jadwal yang ditetapkan dalam konfigurasi alur kerja production.

Untuk menerapkan solusi ini, konfigurasi setelan Dataform berikut:

Setelan alur kerja

Bergantung pada versi Dataform core Anda, setelan alur kerja disimpan di workflow_settings.yaml atau dataform.json. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi setelan alur kerja Dataform.

Di workflow_settings.yaml, konfigurasi setelan berikut:

defaultProject: enterprise-dev
defaultDataset: analytics

Di dataform.json, konfigurasi setelan berikut:

{
defaultSchema: "analytics",
defaultDatabase: "enterprise-dev"
}

Penggantian Workspace

Akhiran skema: "${workspaceName}"

Konfigurasi rilis

  • Git commitish: "main"
  • Google Cloud ID project: "enterprise-prod"

Untuk menjadwalkan eksekusi hasil kompilasi production, buat konfigurasi alur kerja dengan jadwal kustom yang paling sesuai dengan kebutuhan Anda.

Proses pengembangan sampel

Dalam contoh ini, developer Sasha dan Kai mengerjakan repositori Dataform yang sama. Repositori Dataform terhubung ke repositori Git pihak ketiga jarak jauh.

Sasha bekerja di ruang kerja khusus miliknya yang bernama sasha, dan Kai bekerja di ruang kerja khusus miliknya yang bernama Kai. Mereka melakukan commit dan mengirim perubahan ke cabang kustom di repositori jarak jauh, yang disebut sasha dan kai.

Tabel berikut menunjukkan setelan lingkungan yang diterapkan untuk Sasha, Kai, dan lingkungan produksi:

Setelan Sasha Kai Produksi
Google Cloud project enterprise-dev enterprise-dev enterprise-prod
Cabang Git sasha kai main
Penggantian kompilasi Workspace akhiran skema: ${workspaceName} akhiran skema: ${workspaceName} -
Konfigurasi rilis - - production
Konfigurasi alur kerja - - production

Sasha membuat tabel baru dan men-deploy-nya ke produksi dalam proses berikut:

  1. Di ruang kerja Dataform sasha, Sasha membuat tabel user_stats.
  2. Di ruang kerja sasha, Sasha memicu eksekusi tabel secara manual.
  3. Dataform menjalankan tabel enterprise-dev.analytics_sasha.user_stats dalam skema analytics_sasha di project enterprise-dev Google Cloud di BigQuery.
  4. Di ruang kerja sasha, Sasha melakukan commit perubahan dan mengirimkannya ke cabang sasha di repositori Git jarak jauh.
  5. Di repositori jarak jauh, Sasha mengirimkan permintaan pull.
  6. Di repositori jarak jauh, Kai meninjau dan menyetujui permintaan pull, menggabungkan perubahan ke branch main.
  7. Dataform otomatis memperbarui hasil kompilasi dalam rilis production pada frekuensi yang ditentukan. Selama update berikutnya pada hasil kompilasi production, Dataform akan menambahkan tabel enterprise-prod.analytics.user_stats ke hasil kompilasi.
  8. Selama eksekusi konfigurasi alur kerja terjadwal, Dataform menjalankan tabel enterprise-prod.analytics.user_stats di skema analytics dalam project enterprise-prod Google Cloud di BigQuery.
  9. Tabel user_stats tersedia untuk pengguna akhir dalam skema analytics di project enterprise-prod Google Cloud di BigQuery.

Anda juga dapat memisahkan deklarasi sumber data pengembangan dan produksi menurut project dan memisahkan deklarasi sumber data pengembangan dan produksi menurut skema dan project.

Membagi pengembangan, staging, dan produksi menurut skema dan project

Solusi ini membuat tiga lingkungan eksekusi: pengembangan, staging, dan produksi. Semua lingkungan dibagi berdasarkan Google Cloud project. Selain itu, pengembangan dipisahkan dari staging dan produksi berdasarkan skema.

Untuk memisahkan tabel pengembangan, penyiapan, dan produksi menurut skema dan project Google Cloud , Anda perlu mengonfigurasi setelan alur kerja, penggantian kompilasi ruang kerja, dan dua konfigurasi rilis. Untuk menjadwalkan eksekusi staging dan produksi, Anda harus membuat dua konfigurasi alur kerja terpisah.

Dalam solusi ini, Dataform menjalankan tabel pengembangan di BigQuery dalam beberapa skema pengembangan, satu per ruang kerja Dataform, dalam project pengembangan Google Cloud khusus.

Dataform menjalankan semua tabel penahapan di BigQuery dalam project penahapan Google Cloud khusus dalam skema yang memiliki akhiran yang sama, yang menandai bahwa tabel tersebut dibuat dalam penahapan.

Dataform menjalankan semua tabel produksi di BigQuery dalam project produksi Google Cloud khusus dalam skema yang memiliki akhiran yang sama, yang menandai bahwa tabel tersebut dibuat dalam produksi.

Tabel berikut menunjukkan contoh konfigurasi yang membagi tabel pengembangan, penyiapan, dan produksi menurut skema dan project Google Cloud , dengan satu skema pengembangan per ruang kerja Dataform:

Setelan Pengembangan Staging Produksi
Google Cloud project enterprise-dev enterprise-staging enterprise-prod
Cabang Git nama ruang kerja main prod
Penggantian kompilasi Workspace akhiran skema: ${workspaceName} - -
Konfigurasi rilis - staging production
Konfigurasi alur kerja - staging production

Dalam solusi ini, Dataform menjalankan tabel pengembangan, penyiapan, dan produksi di project yang berbeda di BigQuery. Google Cloud Selain itu, Dataform menjalankan tabel pengembangan di beberapa skema kustom, satu per ruang kerja. Dataform menjalankan tabel penyiapan dan produksi dalam skema yang sama, tetapi di project yang berbeda. Google Cloud

Developer memicu eksekusi secara manual di ruang kerja Dataform mereka. Setiap developer bekerja di ruang kerja khusus mereka, yang dinamai sesuai nama mereka, misalnya, sasha.

Setiap ruang kerja sesuai dengan skema BigQuery kustom, yang dinamai sesuai dengan ruang kerja. Saat developer memicu eksekusi di ruang kerjanya, Dataform menambahkan nama ruang kerja sebagai akhiran skema ke skema default. Kemudian, Dataform menjalankan tabel dalam skema kustom di BigQuery.

Misalnya, Dataform menjalankan tabel dari ruang kerja sasha dalam skema analytics_sasha di BigQuery. Dengan cara ini, setiap developer menyimpan tabel pengembangan di skemanya sendiri. Tidak ada risiko menimpa tabel developer lain secara tidak sengaja.

Di Dataform, developer melakukan commit dan mengirim perubahan ke cabang kustom repositori jarak jauh. Kemudian, di platform hosting Git pihak ketiga, mereka mengirimkan permintaan pull ke branch main. Persetujuan permintaan pull menggabungkan perubahan ke branch main repositori jarak jauh.

Dataform otomatis mengompilasi tabel penyiapan dari cabang main repositori jarak jauh menjadi hasil kompilasi sesuai dengan setelan konfigurasi rilis staging.

Dataform otomatis menjalankan hasil kompilasi staging sesuai jadwal yang ditetapkan dalam konfigurasi alur kerja staging.

Untuk mempromosikan tabel dari staging ke produksi, di platform hosting Git pihak ketiga, developer mengirimkan permintaan penarikan dari cabang main ke cabang prod. Persetujuan permintaan pull menggabungkan perubahan ke branch prod repositori jarak jauh.

Dataform otomatis mengompilasi tabel produksi dari cabang prod repositori jarak jauh menjadi hasil kompilasi sesuai dengan setelan konfigurasi rilis production.

Dataform otomatis menjalankan hasil kompilasi production sesuai jadwal yang ditetapkan dalam konfigurasi alur kerja production.

Untuk menerapkan solusi ini, konfigurasi setelan Dataform berikut:

Setelan alur kerja

Bergantung pada versi Dataform core, setelan alur kerja disimpan di workflow_settings.yaml atau dataform.json. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi setelan alur kerja Dataform.

Di workflow_settings.yaml, konfigurasi setelan berikut:

defaultProject: enterprise-dev
defaultDataset: analytics

Di dataform.json, konfigurasi setelan berikut:

{
defaultSchema: "analytics",
defaultDatabase: "enterprise-dev"
}

Penggantian Workspace

Akhiran skema: "${workspaceName}"

staging konfigurasi rilis

  • Git commitish: "main"
  • Google Cloud ID project: "enterprise-staging"

prod konfigurasi rilis

  • Git commitish: "prod"
  • Google Cloud ID project: "enterprise-prod"

Untuk menjadwalkan hasil kompilasi staging dan production, buat dua konfigurasi alur kerja terpisah dengan jadwal kustom yang paling sesuai dengan kebutuhan Anda.

Proses pengembangan sampel

Dalam contoh ini, developer Sasha dan Kai bekerja di repositori Dataform yang sama. Repositori Dataform terhubung ke repositori Git pihak ketiga jarak jauh.

Sasha bekerja di ruang kerja khusus miliknya yang bernama sasha, dan Kai bekerja di ruang kerja khusus miliknya yang bernama Kai. Mereka melakukan commit dan mengirim perubahan ke cabang kustom di repositori jarak jauh, yang disebut sasha dan kai.

Tabel berikut menunjukkan setelan lingkungan yang diterapkan untuk Sasha, Kai, dan lingkungan produksi:

Setelan Sasha Kai Staging Produksi
Google Cloud project enterprise-dev enterprise-dev enterprise-staging enterprise-prod
Cabang Git sasha kai main prod
Skema analytics_sasha analytics_kai analytics analytics

Sasha membuat tabel baru dan men-deploy-nya ke produksi dalam proses berikut:

  1. Di ruang kerja Dataform sasha, Sasha membuat tabel user_stats.
  2. Di ruang kerja sasha, Sasha secara manual memicu eksekusi tabel.
  3. Dataform menjalankan tabel enterprise-dev.analytics_sasha.user_stats dalam skema analytics_sasha di project enterprise-dev Google Cloud di BigQuery.
  4. Di ruang kerja sasha, Sasha melakukan commit pada perubahan dan mengirimkannya ke cabang sasha di repositori Git jarak jauh.
  5. Di repositori jarak jauh, Sasha mengirimkan permintaan pull ke cabang main.
  6. Di repositori jarak jauh, Kai meninjau dan menyetujui permintaan pull, lalu menggabungkan perubahan ke branch main.
  7. Dataform otomatis memperbarui hasil kompilasi dalam rilis staging pada frekuensi yang ditentukan. Selama update berikutnya pada hasil kompilasi staging, Dataform akan menambahkan tabel enterprise-staging.analytics.user_stats ke hasil kompilasi.
  8. Selama eksekusi konfigurasi alur kerja terjadwal, Dataform menjalankan tabel enterprise-staging.analytics.user_stats di skema analytics dalam project enterprise-staging Google Cloud di BigQuery.
  9. Di repositori jarak jauh, Sasha mengirimkan permintaan pull ke cabang prod.
  10. Di repositori jarak jauh, Kai meninjau dan menyetujui permintaan pull, lalu menggabungkan perubahan ke branch prod.
  11. Dataform otomatis memperbarui hasil kompilasi dalam rilis production pada frekuensi yang ditentukan. Selama update berikutnya pada hasil kompilasi production, Dataform akan menambahkan tabel enterprise-prod.analytics.user_stats ke hasil kompilasi.
  12. Selama eksekusi konfigurasi alur kerja terjadwal, Dataform menjalankan tabel enterprise-prod.analytics.user_stats dalam skema analytics di project enterprise-prod Google Cloud di BigQuery.
  13. Tabel user_stats tersedia untuk pengguna akhir dalam skema analytics di project enterprise-prod Google Cloud di BigQuery.

Membagi deklarasi sumber data pengembangan dan produksi menurut project

Solusi ini memisahkan deklarasi sumber data pengembangan dan produksi berdasarkan project. Daripada mendeklarasikan sumber data dengan project statis, Anda dapat mengubah deklarasi sumber data secara dinamis menggunakan variabel dari file setelan alur kerja. Cara ini berguna saat sumber data Anda diisolasi ke dalam project pengembangan dan produksi yang terpisah.

Dalam contoh ini, variabel project dari file setelan alur kerja disisipkan ke deklarasi sumber data menggunakan variabel Dataform dataform.projectConfig.vars.projectVar:

Di file source_declaration.sqlx, konfigurasi setelan berikut:

config {
  type: "declaration",
  database: dataform.projectConfig.vars.projectVar,
  schema: "source_schema",
  name: "source_name",
}

Saat alur kerja dijalankan, Dataform akan menyuntikkan nilai project default atau penggantian kompilasi project yang dikonfigurasi ke dalam deklarasi. Saat Anda mereferensikan sumber data ini dalam alur kerja, sumber data ini akan mengarah ke sumber data pengembangan atau produksi, bergantung pada lingkungan eksekusi.

Solusi ini memerlukan konvensi penamaan yang konsisten untuk skema dan tabel sumber pengembangan dan produksi. Jika Anda memerlukan konvensi penamaan yang berbeda, gunakan variabel kompilasi kustom.

Memisahkan deklarasi sumber data pengembangan dan produksi menurut skema dan project

Solusi ini memisahkan deklarasi sumber data pengembangan dan produksi berdasarkan project dan skema. Selain menggunakan variabel project dari file setelan alur kerja, variabel kompilasi kustom ditentukan untuk mewakili nama skema sumber kustom dan akhiran tabel sumber kustom. Nilai default untuk variabel ini diselaraskan dengan sumber data pengembangan dan dapat diganti dengan nilai penggantian kompilasi untuk sumber data produksi, bergantung pada lingkungan eksekusi alur kerja.

Di file workflow_settings.yaml, konfigurasi setelan berikut:

defaultProject: development
defaultLocation: US
defaultDataset: development
defaultAssertionDataset: dataform_assertions
dataformCoreVersion: 3.0.0
vars:
 sourceSchema: schema_DEV
 sourceNameSuffix: _DEV

Di file source_declaration.sqlx, konfigurasi setelan berikut:

config {
  type: "declaration",
  database: dataform.projectConfig.vars.projectVar,
  schema: dataform.projectConfig.vars.sourceSchema,
  name: "source_name"+dataform.projectConfig.vars.sourceNameSuffix,
}
Variabel Pengembangan (default) Produksi (penggantian)
projectVar development production
sourceSchema schema_DEV schema_PROD
sourceNameSuffix _DEV _PROD
Sumber data yang dikompilasi development.schema_DEV.source_name_DEV production.schema_PROD.source_name_PROD

Dalam contoh ini, pemisahan sumber data pengembangan dan produksi menurut project dan skema dilakukan melalui variabel projectVar dan variabel kustom sourceSchema. Secara opsional, pemisahan tabel sumber dilakukan melalui akhiran yang ditambahkan ke nama tabel.

Contoh di atas mengharuskan sumber data dibuat sebelumnya di project pengembangan dan produksi terpisah, serta mengharuskan skema sumber dan nama tabel mengikuti konvensi penamaan yang konsisten. Selain itu, saat mereferensikan tabel sumber, referensi perlu diubah untuk menggunakan variabel kompilasi kustom ${ref("source_name"+dataform.projectConfig.vars.sourceNameSuffix)} agar referensi dapat diselesaikan dengan benar.

Langkah berikutnya