Topik ini menjelaskan variabel yang digunakan dalam orkestrasi task.
Ikhtisar variabel
Variabel adalah nilai dinamis dalam alur task, dikategorikan sebagai variabel sistem, variabel waktu, dan variabel non-waktu. Anda dapat mereferensikan variabel apa pun di dalam suatu node menggunakan sintaks ${varName}.
System variables
System variables adalah nilai yang telah ditentukan sebelumnya, seperti ID alur task saat ini dan waktu eksekusi alur task tersebut.
Jika variabel kustom memiliki nama yang sama dengan system variable, nilainya akan menggantikan nilai system variable tersebut, sehingga variabel kustom memiliki prioritas lebih tinggi.
Time variables
-
Variabel alur task (variabel global): Variabel alur task dihitung dengan menerapkan offset waktu terhadap timestamp. Secara default, timestamp tersebut adalah waktu eksekusi dikurangi satu hari. Sebagai variabel global, variabel ini tersedia untuk semua node dalam alur task saat ini.
CatatanAnda dapat mengonfigurasi variabel alur task pada node mana pun dalam alur task. Konfigurasi tersebut secara otomatis disinkronkan ke semua node lainnya.
-
Variabel node: Variabel waktu yang dibuat dengan menerapkan offset waktu terhadap variabel bawaan
bizdate(T-1). Variabel node hanya berlaku dalam cakupan node tempat variabel tersebut didefinisikan.Sebagai contoh, jika tanggal saat ini adalah 22 Agustus 2023 dan Anda menerapkan offset waktu +1 hari, nilai variabel tersebut menjadi 23 Agustus 2023.
Non-time variables
-
Konstanta alur task (variabel global): Konstanta alur task adalah nilai tetap yang dapat digunakan di semua node dalam alur task saat ini.
-
Variabel input: Sistem secara otomatis mengisi variabel input. Anda dapat mereferensikan variabel input dalam pernyataan SQL pada node saat ini menggunakan sintaks ${var_name} atau sebagai variabel kondisional dalam node Conditional Branch. Variabel input mencakup:
-
Variabel hulu: Variabel output dari node hulu.
-
Variabel status: Untuk informasi selengkapnya, lihat Status variables.
-
System variable: Untuk informasi selengkapnya, lihat System variables.
-
-
Variabel output: Anda mendefinisikan dan memberikan nilai pada variabel output di node saat ini. Node hilir kemudian dapat mengakses dan mereferensikannya.
Sebagai contoh, jika Anda mengonfigurasi variabel output dalam node Script, variabel tersebut dapat direferensikan dalam pernyataan SQL pada node hilir.
-
Variabel output dari node Single Instance SQL: Anda dapat menggunakan node Single Instance SQL untuk mendefinisikan set hasil dari kueri SQL. Set hasil ini membentuk matriks dua dimensi. Saat mendefinisikan variabel, Anda dapat mengekstraksi satu elemen tunggal atau menggabungkan semua nilai dari satu baris atau kolom.
-
Variabel output skrip: Jika baris terakhir dari output skrip berupa objek JSON dalam format
{ key1: value1, key2: value2, … }, dan nilainya bertipe String, task skrip secara otomatis mengurai pasangan kunci-nilai JSON tersebut. Hal ini membuat variabel bernama key, dan nilai variabel key diatur sesuai dengan nilai yang sesuai. Anda dapat mereferensikan variabel tersebut sebagai${key}.Sebagai contoh, jika baris terakhir skrip adalah
echo {"hello": "world"}, task skrip membuat variabel bernama hello, dan nilai hello adalah world.
Konfigurasi time variables
|
Parameter |
Deskripsi |
|
Variable name |
Masukkan nama variabel kustom. Catatan
Untuk menghapus variabel yang telah dikonfigurasi, klik ikon |
|
Variable rule |
Konfigurasikan aturan untuk time variable.
Catatan
Setelah Anda mengonfigurasi time variable, Anda dapat mereferensikannya dalam pernyataan SQL menggunakan sintaks |
Time formats
Tabel berikut menjelaskan spesifikasi format waktu yang didukung.
|
Penentu |
Deskripsi |
Contoh input |
Contoh output |
|
Era |
|
Gyyyy |
AD 2021 |
|
Tahun |
|
yyyy |
2021 |
|
Bulan |
|
MM |
08 |
|
Minggu |
|
ww |
13 |
|
Hari |
|
D |
360 |
|
Hari dalam minggu |
|
e |
1 |
|
AM/PM |
|
a |
AM |
|
Jam |
|
HH |
10 |
|
Menit |
|
m |
27 |
|
Kedua |
|
ss |
08 |
|
Zona waktu |
|
z |
UTC+08:00 |
Contoh format waktu gabungan:
|
Contoh input |
Contoh output |
|
|
2021-08-12 |
|
|
20210801 |
|
|
11:05:21 |
|
|
20210812 11:05:21 |
System variables
|
Nama variabel |
Deskripsi |
Contoh |
|
sys.flow.start.timestamp |
Timestamp waktu eksekusi. |
2021-05-24T11:20:07.562+08:00 |
|
sys.flow.start.year |
Tahun waktu eksekusi. |
2021 |
|
sys.flow.start.month |
Bulan waktu eksekusi. |
5 |
|
sys.flow.start.day |
Hari waktu eksekusi. |
24 |
|
sys.flow.start.hour |
Jam waktu eksekusi. |
11 |
|
sys.flow.start.minute |
Menit waktu eksekusi. |
20 |
|
sys.flow.start.second |
Detik waktu eksekusi. |
7 |
|
sys.flow.start.milliseconds |
Milidetik waktu eksekusi. |
562 |
|
sys.flow.start.timezone |
Zona waktu eksekusi. |
Asia/Shanghai |
|
sys.flow.biztime |
Data timestamp. Secara default, ini adalah waktu eksekusi dikurangi satu hari. |
1621740007562 |
|
sys.flow.name |
Nama alur task. |
dwd_activity_daily_pv |
|
sys.node.name |
Nama node. |
Single Instance SQL-1 |
Status variables
|
Nama variabel |
Deskripsi |
|
all_success |
Semua task hulu berhasil dijalankan. |
|
all_failed |
Semua task hulu gagal. |
|
one_success |
Setidaknya satu task hulu berhasil dijalankan. |
|
one_failed |
Setidaknya satu task hulu gagal. |
Anda dapat menggunakan status variables dalam node Conditional Branch untuk mengontrol apakah alur task menjalankan task berikutnya berdasarkan status eksekusi tertentu.
.