Branch node adalah node alur kendali di Data Studio yang memungkinkan Anda menentukan logika percabangan dan mengarahkan eksekusi node downstream berdasarkan kondisi tertentu.
Catatan penggunaan
-
Untuk menggunakan fitur branch node, Anda harus berlangganan DataWorks Standard Edition atau edisi yang lebih tinggi. Untuk informasi selengkapnya, lihat Perbandingan edisi DataWorks.
-
Branch node dapat memiliki maksimal 50 cabang.
-
Branch node biasanya digunakan bersama dengan assignment node. Untuk informasi selengkapnya, lihat Assignment node.
-
Jika suatu kondisi cabang tidak terpenuhi saat runtime, node downstream dari cabang tersebut akan masuk ke status dry run. Log runtime menampilkan pesan seperti
It's set condition-skip by task.
Buat branch node
Masuk ke DataWorks console. Di wilayah target, klik di panel navigasi sebelah kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Development.
-
Arahkan kursor ke ikon
dan pilih .Atau, Anda dapat membuka workflow target, klik kanan area kosong, lalu pilih .
-
Di kotak dialog Create Node, masukkan nama node dan pilih path.
- Klik Commit.
-
Tentukan logika percabangan.
-
Di halaman Definition, klik Add Branch.
-
Di kotak dialog Branch Definition, konfigurasikan parameter.
Parameter
Deskripsi
Condition
Menentukan kondisi untuk cabang. Perhatikan aturan berikut:
-
Anda hanya dapat menggunakan operator perbandingan Python untuk menentukan kondisi logis.
-
Jika ekspresi dievaluasi sebagai true saat runtime, kondisi cabang yang sesuai dianggap terpenuhi.
-
Jika terjadi error saat penguraian ekspresi pada runtime, seluruh branch node gagal.
-
Anda dapat menggunakan variabel global dan parameter yang didefinisikan dalam konteks node di kondisi cabang. Misalnya, ${input} dapat berupa parameter input yang didefinisikan pada branch node.
Associated Node Output
Menentukan output yang digunakan oleh node downstream untuk dependensi:
-
Node downstream menggunakan output ini untuk menetapkan dependensi.
-
Ketika kondisi cabang terpenuhi, node downstream yang bergantung pada output terkait akan berjalan, asalkan dependensi upstream lainnya juga terpenuhi.
-
Jika kondisi cabang tidak terpenuhi, node downstream yang bergantung pada output tersebut tidak berjalan. DataWorks menetapkan node ini ke status
Not run because the branch condition is not met.
Description
Masukkan deskripsi singkat tentang cabang tersebut. Misalnya, Anda dapat menentukan dua cabang dengan kondisi ${input}==1 dan ${input}>2.
Contoh berikut menunjukkan cara mengonfigurasi parameter Associated Node Output.
Misalnya, sebuah branch node memiliki dua node downstream bernama qqqq dan wwww. Ketika kondisi cabang adalah 1, logika node qqqq dijalankan. Ketika kondisi cabang adalah 2, logika node wwww dijalankan. Saat mengonfigurasi branch node, Anda dapat menetapkan output node sesuai kebutuhan. Misalnya, jika output untuk Cabang 1 adalah 1234 dan output untuk Cabang 2 adalah 2324, keduanya digunakan sebagai nama output untuk branch node ini. Node downstream qqqq harus mereferensikan nama output 1234, dan node wwww harus mereferensikan nama output 2324.
-
-
Klik OK.
Setelah menambahkan cabang, Anda dapat Edit atau Delete cabang tersebut.
-
Klik Edit untuk memodifikasi pengaturan cabang. DataWorks akan memperbarui dependensi terkait secara otomatis.
-
Klik Delete untuk menghapus cabang. DataWorks juga akan memperbarui dependensi terkait.
-
-
-
Di panel sebelah kanan, klik Scheduling Settings untuk mengonfigurasi properti penjadwalan node.
Setelah Anda menentukan kondisi cabang, DataWorks secara otomatis menambahkan nama output ke bagian Output Name of Current Node pada tab . Node downstream dapat menggunakan nama output ini untuk mendeklarasikan dependensi.
Catatan-
Karena properti dry run diwariskan ke node downstream, jangan letakkan tugas yang memiliki dependensi diri sendiri pada jalur cabang. Untuk informasi selengkapnya tentang apakah properti dry run diwariskan dari node upstream, lihat Inherit the dry run property from upstream nodes.
-
Jika Anda membuat dependensi dengan menggambar garis untuk menetapkan konteks node dan nama output tidak muncul di Scheduling Settings, Anda harus memasukkan nama output secara manual.
-
-
Commit dan deploy node.
-
Klik ikon
di bilah alat untuk menyimpan node. -
Klik ikon
di bilah alat untuk melakukan commit node. -
Di kotak dialog Submission, masukkan Change Description.
-
Klik OK.
Jika Anda menggunakan ruang kerja dalam mode standar, Anda harus mendeploy tugas ke lingkungan produksi setelah melakukan commit. Klik Deploy Task di pojok kiri atas bilah menu atas. Untuk informasi selengkapnya, lihat Deploy tasks.
-
-
Lihat tugas terjadwal.
-
Di pojok kanan atas editor, klik O&M Personnel untuk membuka Operation Center lingkungan produksi.
-
Lihat tugas terjadwal yang sedang berjalan. Untuk informasi selengkapnya, lihat Manage scheduled tasks.
Untuk melihat detail lebih lanjut tentang tugas terjadwal, klik Operation Center di bilah menu atas. Untuk informasi selengkapnya, lihat Operation Center overview.
-
Contoh: Dependensi node downstream
Saat node downstream bergantung pada branch node, Anda dapat memilih output spesifik dari branch node untuk mengontrol kapan node downstream dijalankan. Misalnya, dalam workflow yang ditunjukkan pada gambar berikut, Branch 1 dan Branch 2 adalah dua node downstream dari branch node.
Branch 1: Bergantung pada output autotest.fenzhi121902_1. Di panel Scheduling Dependency untuk node Branch 1, Output Name of Parent Node untuk node upstream diatur ke autotest.fenzhi121902_1. Nama node yang sesuai adalah branch node 121902, dan sumbernya adalah Manually Added.
Branch 2: Bergantung pada output autotest.fenzhi121902_2.
Setelah Anda mengirimkan workflow ke Operation Center, asumsikan kondisi untuk cabang yang bergantung pada autotest.fenzhi121902_1 terpenuhi. Log menampilkan hal berikut:
-
Di Operational Logs, Anda dapat melihat status node downstream yang dijalankan karena kondisi cabangnya terpenuhi.
-
Di Operational Logs, Anda dapat melihat bahwa node downstream untuk kondisi cabang yang tidak terpenuhi dilewati, dengan status
It's set condition-skip by task. Untuk node yang dilewati seperti Branch 2, runtime log-nya menampilkan pesan berwarna kuning:It's set condition-skip by task(9760933771-branch node 121902). Pesan ini menunjukkan bahwa branch node melewatkan eksekusi node tersebut, dan durasi waktu prosesnya adalah 0 detik.
Operator perbandingan Python yang didukung
Contoh berikut mengasumsikan bahwa variabel a bernilai 10 dan variabel b bernilai 20.
|
Operator |
Deskripsi |
Contoh |
|
== |
Equal to: Memeriksa apakah dua objek sama. |
(a == b) mengembalikan false. |
|
!= |
Not equal to: Memeriksa apakah dua objek tidak sama. |
(a != b) mengembalikan true. |
|
<> |
Not equal to: Memeriksa apakah dua objek tidak sama. |
(a <> b) mengembalikan true. Operator ini mirip dengan !=. |
|
> |
Greater than: Memeriksa apakah x lebih besar daripada y. |
(a > b) mengembalikan false. |
|
< |
Less than: Memeriksa apakah x lebih kecil daripada y. |
(a < b) mengembalikan true. |
|
>= |
Greater than or equal to: Memeriksa apakah x lebih besar dari atau sama dengan y. |
(a >= b) mengembalikan false. |
|
<= |
Less than or equal to: Memeriksa apakah x lebih kecil dari atau sama dengan y. |
(a <= b) mengembalikan true. |