Halaman ini menunjukkan cara mengedit setelan pemrosesan alur kerja SQL Dataform untuk repositori tertentu.
Anda mungkin ingin mengedit file setelan untuk mengganti nama skema atau menambahkan variabel kompilasi kustom ke repositori Anda.
Tentang setelan repositori
Setiap repositori Dataform berisi file setelan alur kerja yang unik. File ini berisi ID project Google Cloud dan skema tempat Dataform memublikasikan aset di BigQuery. Dataform menggunakan setelan default yang dapat Anda ganti agar sesuai dengan kebutuhan Anda dengan mengedit file setelan.
Mulai Dataform core 3.0.0,
setelan alur kerja disimpan di file workflow_settings.yaml secara default.
Pada versi inti Dataform sebelumnya,
setelan alur kerja disimpan dalam file dataform.json
.
File workflow_settings.yaml
inti Dataform 3.0
kompatibel dengan dataform.json
. Anda dapat terus menggunakan
dataform.json
untuk menyimpan setelan alur kerja. Sebagai praktik terbaik, Anda harus
memigrasikan setelan alur kerja repositori
ke format workflow_settings.yaml
untuk kompatibilitas di masa mendatang.
Tentang workflow_settings.yaml
File workflow_settings.yaml
, yang diperkenalkan di
Dataform core 3.0,
menyimpan setelan alur kerja Dataform dalam format YAML
.
Contoh kode berikut menunjukkan contoh file workflow_settings.yaml
:
defaultProject: my-gcp-project-id
defaultDataset: dataform
defaultLocation: australia-southeast2
defaultAssertionDataset: dataform_assertions
Dalam contoh kode sebelumnya, pasangan nilai kunci dijelaskan sebagai berikut:
defaultProject
: Project ID Google Cloud BigQuery Anda.defaultDataset
: Set data BigQuery tempat Dataform membuat aset, yang disebutdataform
secara default.defaultLocation
: Region set data BigQuery default Anda. Untuk mengetahui informasi selengkapnya tentang lokasi set data BigQuery, lihat Lokasi set data Di lokasi ini, Dataform memproses kode Anda dan menyimpan data yang dieksekusi. Region pemrosesan ini harus cocok dengan lokasi set data BigQuery Anda, tetapi tidak perlu cocok dengan region repositori Dataform.defaultAssertionDataset
: Set data BigQuery tempat Dataform membuat tampilan dengan hasil pernyataan, yang disebutdataform_assertions
secara default.
Untuk mengetahui informasi selengkapnya tentang properti workflow_settings.yaml
, lihat
referensi konfigurasi untuk setelan alur kerja
di GitHub.
Anda dapat mengakses properti yang ditentukan di workflow_settings.yaml
dalam
kode Dataform sebagai properti objek
dataform.projectConfig
.
Pemetaan berikut dari opsi workflow_settings.yaml
ke opsi dataform.projectConfig
yang dapat diakses kode berlaku:
defaultProject
=>defaultDatabase
.defaultDataset
=>defaultSchema
.defaultAssertionDataset
=>assertionSchema
.projectSuffix
=>databaseSuffix
.datasetSuffix
=>schemaSuffix
.namePrefix
=>tablePrefix
.
Contoh kode berikut menunjukkan objek dataform.projectConfig
yang dirujuk
dalam pernyataan SELECT
dalam tampilan:
config { type: "view" }
SELECT ${when(
!dataform.projectConfig.tablePrefix,
"table prefix is set!",
"table prefix is not set!"
)}
Tentang dataform.json
File dataform.json
menyimpan setelan alur kerja Dataform dalam format JSON
.
Contoh kode berikut menunjukkan contoh file dataform.json
:
{
"warehouse": "bigquery",
"defaultDatabase": "my-gcp-project-id",
"defaultSchema": "dataform",
"defaultLocation": "australia-southeast2",
"assertionSchema": "dataform_assertions"
}
Dalam contoh kode sebelumnya, pasangan nilai kunci dijelaskan sebagai berikut:
warehouse
: Pointer ke BigQuery, tempat Dataform membuat aset.defaultDatabase
: Project ID Google Cloud BigQuery Anda.defaultSchema
: Set data BigQuery tempat Dataform membuat aset.defaultLocation
: Region set data BigQuery default Anda. Untuk mengetahui informasi selengkapnya tentang lokasi set data BigQuery, lihat Lokasi set data. Di lokasi ini, Dataform memproses kode Anda dan menyimpan data yang dieksekusi. Region pemrosesan ini harus cocok dengan lokasi set data BigQuery Anda, tetapi tidak perlu cocok dengan region repositori Dataform.assertionSchema
: Set data BigQuery tempat Dataform membuat tampilan dengan hasil pernyataan, yang disebutdataform_assertions
secara default.
Anda dapat mengakses properti yang ditentukan dalam dataform.json
dalam kode project sebagai
properti objek
dataform.projectConfig
.
Sebelum memulai
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi setelan Dataform,
minta administrator untuk memberi Anda
peran IAM Dataform Admin (roles/dataform.admin
) di repositori.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengonfigurasi nama skema
Untuk mengonfigurasi nama skema, Anda perlu mengedit properti defaultDataset
dan
defaultAssertionSchema
dalam
file workflow_settings.yaml
, atau properti defaultSchema
dan assertionSchema
dalam file dataform.json
.
Untuk mengonfigurasi nama skema, ikuti langkah-langkah berikut:
workflow_settings.yaml
Di ruang kerja pengembangan, di panel Files, klik file
workflow_settings.yaml
.Edit nilai
defaultDataset
,defaultAssertionSchema
, atau keduanya.
Contoh kode berikut menunjukkan nama defaultDataset
kustom yang ditentukan dalam
file workflow_settings.yaml
:
...
defaultDataset: mytables
...
dataform.json
Di ruang kerja pengembangan, di panel Files, klik file
dataform.json
.Edit nilai
defaultSchema
,assertionSchema
, atau keduanya.
Contoh kode berikut menunjukkan nama defaultSchema
kustom yang ditentukan dalam
file dataform.json
:
{
...
"defaultSchema": "mytables",
...
}
Membuat variabel kompilasi kustom
Variabel kompilasi berisi nilai yang dapat Anda ubah dengan penggantian kompilasi dalam konfigurasi rilis atau dalam permintaan Dataform API.
Setelah menentukan variabel kompilasi di workflow_settings.yaml
dan menambahkannya ke tabel yang dipilih, Anda dapat menggunakan modifikasi nilainya dalam konfigurasi rilis atau penggantian kompilasi Dataform API untuk mengeksekusi tabel secara kondisional.
Untuk informasi selengkapnya tentang cara menjalankan tabel secara kondisional menggunakan variabel kompilasi, lihat Pengantar siklus proses kode di Dataform.
Untuk membuat variabel kompilasi yang dapat Anda gunakan di seluruh repositori, ikuti langkah-langkah berikut:
workflow_settings.yaml
- Buka ruang kerja pengembangan Dataform Anda.
- Di panel Files, pilih file
workflow_settings.yaml
. Masukkan cuplikan kode berikut:
"vars": { "YOUR_VARIABLE":"VALUE" }
Ganti kode berikut:
- YOUR_VARIABLE dengan nama untuk variabel.
- VALUE dengan nilai default variabel kompilasi.
Contoh kode berikut menunjukkan variabel kompilasi myVariableName
yang ditetapkan
ke myVariableValue
dalam file workflow_settings.yaml
:
...
vars:
myVariableName: myVariableValue
...
Contoh kode berikut menunjukkan file workflow_settings.yaml
dengan
variabel kompilasi executionSetting
yang ditetapkan ke dev
:
defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev
dataform.json
- Buka ruang kerja pengembangan Dataform Anda.
- Di panel Files, pilih file
dataform.json
. Masukkan cuplikan kode berikut:
"vars": { "YOUR_VARIABLE":"VALUE" }
Ganti kode berikut:
- YOUR_VARIABLE dengan nama untuk variabel.
- VALUE dengan nilai default variabel kompilasi.
Contoh kode berikut menunjukkan variabel kompilasi myVariableName
yang ditetapkan
ke myVariableValue
dalam file dataform.json
:
{
...
"vars": {
"myVariableName": "myVariableValue"
},
...
}
Contoh kode berikut menunjukkan file dataform.json
dengan
variabel kompilasi executionSetting
yang ditetapkan ke dev
:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Menambahkan variabel kompilasi ke tabel
Untuk menambahkan variabel kompilasi ke file definisi tabel SQLX, ikuti langkah-langkah berikut:
- Buka ruang kerja pengembangan Dataform Anda.
- Di panel Files, pilih file definisi tabel SQLX.
Dalam file tersebut, masukkan klausa
when
dalam format berikut:${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
Ganti kode berikut:
- YOUR_VARIABLE dengan nama variabel Anda, misalnya
executionSetting
. - SET_VALUE dengan nilai untuk variabel,
misalnya,
staging
. - CONDITION dengan kondisi untuk eksekusi tabel.
- YOUR_VARIABLE dengan nama variabel Anda, misalnya
Contoh kode berikut menunjukkan file SQLX definisi tabel dengan klausa when
dan variabel executionSetting
yang mengeksekusi 10% data dalam
setelan eksekusi staging:
select
*
from ${ref("data")}
${when(
dataform.projectConfig.vars.executionSetting === "staging",
"where mod(farm_fingerprint(id) / 10) = 0",
)}
Contoh kode berikut menunjukkan file SQLX definisi tampilan dengan klausa when
dan variabel myVariableName
:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Memigrasikan setelan alur kerja ke workflow_settings.yaml
Untuk memastikan file setelan alur kerja Anda kompatibel dengan versi framework inti Dataform mendatang, Anda harus memigrasikan setelan alur kerja dari file dataform.json
ke file workflow_settings.yaml
.
File workflow_settings.yaml
menggantikan file dataform.json
.
Jika inti Dataform adalah satu-satunya paket dependensi di repositori Anda,
file workflow_settings.yaml
juga akan menggantikan file package.json
.
Untuk informasi selengkapnya tentang mengganti package.json
dengan
workflow_settings.yaml
, lihat
Mengelola paket inti Dataform.
Tabel berikut menunjukkan pemetaan properti setelan alur kerja dari
dataform.json
ke workflow_settings.yaml
:
Properti di dataform.json |
Properti di workflow_settings.yaml |
Deskripsi |
---|---|---|
assertionSchema |
defaultAssertionDataset |
Wajib. Set data default untuk pernyataan. |
defaultDatabase |
defaultProject |
Wajib. Nama project Google Cloud default. |
defaultLocation |
defaultLocation |
Wajib. Lokasi BigQuery default tempat Dataform akan membuat tabel. Untuk mengetahui informasi selengkapnya tentang lokasi BigQuery, lihat Lokasi set data. |
defaultSchema |
defaultDataset |
Wajib. Set data default. |
databaseSuffix |
projectSuffix |
Opsional. Akhiran yang akan ditambahkan ke semua referensi project Google Cloud. |
schemaSuffix |
datasetSuffix |
Opsional. Akhiran yang akan ditambahkan ke semua set data tindakan. |
tablePrefix |
namePrefix |
Opsional. Awalan yang akan ditambahkan ke semua nama tindakan. |
vars |
vars |
Opsional. Variabel buatan pengguna yang disediakan untuk kode project selama kompilasi. Objek yang berisi daftar pasangan key: value . |
warehouse |
- | Wajib di dataform.json . Harus ditetapkan ke bigquery . Tidak tersedia di workflow_settings.yaml . |
- | dataformCoreVersion |
Tidak tersedia di dataform.json . Diinstal di workflow_settings.yaml secara default untuk repositori baru. Untuk informasi selengkapnya, lihat Mengelola paket inti Dataform. |
Untuk memigrasikan setelan alur kerja ke workflow_settings.yaml
, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Dataform.
Pilih repositori, lalu pilih ruang kerja.
Di panel Files, klik addAdd, lalu klik Create file.
Di kolom Add a file path, masukkan
workflow_settings.yaml
.Klik Create file.
Dalam file
workflow_settings.yaml
, tambahkan setelan dari filedataform.json
, yang dipetakan ke format YAML.Di panel Files, klik menu More di samping
dataform.json
, lalu klik Delete.Untuk mengonfirmasi penghapusan
dataform.json
, klik Hapus.
Contoh kode berikut menunjukkan setelan alur kerja yang ditentukan dalam
file dataform.json
:
{
"warehouse": "bigquery",
"defaultDatabase": "dataform-demos",
"defaultLocation": "US",
"defaultSchema": "dataform",
"assertionSchema": "dataform_assertions"
"vars": {
"environmentName": "development"
}
}
Contoh kode berikut menunjukkan file dataform.json
sebelumnya
yang dikonversi menjadi workflow_settings.yaml
:
defaultProject: dataform-demos
defaultLocation: US
defaultDataset: dataform
defaultAssertionDataset: dataform_assertions
vars:
environmentName: "development"
Langkah selanjutnya
Untuk mempelajari cara memigrasikan paket inti Dataform ke
workflow_settings.yaml
, lihat Mengelola paket inti Dataform.Untuk mempelajari setelan project Dataform lebih lanjut, lihat referensi
IProjectConfig
.