全部产品
Search
文档中心

DataWorks:Konfigurasi node do-while

更新时间:Jul 02, 2025

DataWorks menyediakan node do-while. Anda dapat mengatur ulang alur kerja di dalam node do-while, menulis logika yang akan dieksekusi dalam loop, dan mengonfigurasi node akhir untuk menentukan apakah akan keluar dari looping. Node do-while dapat digunakan secara mandiri atau bersama dengan node penugasan untuk melakukan iterasi pada set hasil yang dilewatkan oleh node penugasan. Topik ini memberikan contoh cara mengonfigurasi node do-while.

Prasyarat

  • Anda telah memahami bahwa Anda dapat mengonfigurasi alur kerja internal untuk node do-while sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Komposisi dan orkestrasi alur kerja node do-while.

  • Anda telah memahami bahwa variabel bawaan yang disediakan oleh node do-while dapat digunakan untuk mendapatkan nilai terkait dalam setiap loop. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel Bawaan.

  • Anda telah memahami bahwa alur kerja internal dalam node do-while harus dimulai dengan node awal dan diakhiri dengan node akhir. Node awal menandai awal dari sebuah loop, sedangkan node akhir digunakan untuk mengontrol apakah akan keluar dari looping. Untuk informasi tentang node akhir, lihat Contoh kode untuk node akhir.

  • Anda sudah familiar dengan metode untuk menguji node do-while dan melihat log eksekusi node do-while. Untuk informasi lebih lanjut, lihat Tindakan pencegahan.

Batasan

  • Hanya DataWorks Edisi Standar dan edisi yang lebih tinggi yang mendukung node do-while. Untuk informasi lebih lanjut, lihat Perbedaan antara edisi DataWorks.

  • Jumlah maksimum loop untuk node do-while adalah 1.024.

  • Eksekusi paralel tidak didukung. Sebuah loop hanya dapat dimulai jika loop sebelumnya berakhir.

Membuat node do-while

  1. Pergi ke halaman DataStudio.

    Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi sisi kiri, pilih Data Development and O&M > Data Development. Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Development.

  2. Buat node do-while.

    1. Di halaman DataStudio, gerakkan pointer di atas ikon 新建 dan pilih Create Node > General > do-while.

      Sebagai alternatif, Anda dapat menemukan alur kerja tempat Anda ingin membuat node do-while, klik nama alur kerja, klik kanan General, dan pilih Create Node > do-while.

    2. Di kotak dialog Create Node, konfigurasikan parameter Nama dan Jalur.

    3. Klik Confirm.

Contoh penggunaan node do-while

Bagian ini menjelaskan cara menggunakan node do-while untuk melakukan iterasi pada output dalam lima loop dan menampilkan jumlah loop saat ini setiap kali loop dijalankan.

Edit kode untuk node shell

Catatan

Secara default, node do-while terdiri dari node start, shell, dan end.

  • Node start menandai awal dari sebuah loop dan tidak digunakan untuk memproses tugas loop. Node awal tidak dapat dihapus.

  • Node shell adalah node pemrosesan bisnis sampel yang disediakan oleh DataWorks.

  • Node end menandai akhir dari sebuah loop dan menentukan apakah akan memulai loop berikutnya. Node akhir mendefinisikan kondisi untuk keluar dari looping untuk node do-while. Node akhir tidak dapat dihapus.

Anda dapat mengonfigurasi alur kerja internal dalam node do-while sesuai kebutuhan bisnis Anda. Secara rinci, Anda dapat mengganti node shell dengan jenis node lainnya.

  1. Klik dua kali node shell. Tab konfigurasi node shell muncul.

  2. Masukkan kode berikut di editor kode:

    echo ${dag.loopTimes} ----Menampilkan jumlah loop saat ini.

    • Variabel ${dag.loopTimes} adalah variabel cadangan sistem. Variabel ini menentukan jumlah loop saat ini, dan nilai variabel ini dimulai dari 1. Semua node internal dari node do-while dapat merujuk ke variabel ini. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel Bawaan dan Contoh nilai variabel.

    • Setelah Anda memodifikasi kode node shell, simpan modifikasi tersebut. Tidak ada pesan yang mengingatkan Anda untuk menyimpan modifikasi ketika Anda mengirimkan node. Jika Anda tidak menyimpan modifikasi, kode tidak dapat diperbarui ke versi terbaru tepat waktu.

Konfigurasi node akhir

Tentukan kondisi untuk keluar dari looping di node akhir.

  1. Klik dua kali node akhir. Tab konfigurasi node muncul.

  2. Pilih Python dari daftar drop-down Language.

  3. Masukkan kode berikut untuk menentukan kondisi untuk keluar dari looping untuk node do-while:

    if ${dag.loopTimes}<5: 
     print True; 
    else: 
     print False;
    • Variabel ${dag.loopTimes} adalah variabel cadangan sistem. Variabel ini menentukan jumlah loop saat ini, dan nilai variabel ini dimulai dari 1. Semua node internal dari node do-while dapat merujuk ke variabel ini. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel Bawaan dan Contoh nilai variabel.

    • Dalam kode, nilai variabel dag.loopTimes dibandingkan dengan 5 untuk membatasi jumlah loop yang dapat dijalankan. Nilai variabel dag.loopTimes adalah 1 untuk loop pertama dan bertambah 1 setiap kali. Dalam hal ini, nilai variabel ${dag.loopTimes} adalah 2 untuk loop kedua dan 5 untuk loop kelima. Node do-while keluar dari looping ketika hasil dari ${dag.loopTimes}<5 adalah False.

Kirimkan node do-while

  1. Klik ikon 保存 di bilah alat atas untuk menyimpan node.

  2. Klik ikon 提交 di bilah alat atas untuk mengirimkan node.

    Di kotak dialog Submit, konfigurasikan parameter Change description. Kemudian, tentukan apakah akan meninjau kode node setelah Anda mengirimkan node berdasarkan kebutuhan bisnis Anda.

    Penting
    • Anda harus mengonfigurasi parameter Rerun dan Parent Nodes di tab Properti sebelum Anda mengirimkan node.

    • Anda dapat menggunakan fitur tinjauan kode untuk memastikan kualitas kode tugas dan mencegah kesalahan eksekusi tugas yang disebabkan oleh kode tugas yang tidak valid. Jika Anda mengaktifkan fitur tinjauan kode, kode node yang dikirimkan hanya dapat diterapkan setelah kode node lulus tinjauan kode. Untuk informasi lebih lanjut, lihat Tinjauan Kode.

    Jika ruang kerja yang Anda gunakan berada dalam mode standar, Anda harus mengklik Terapkan di sudut kanan atas tab konfigurasi node untuk menerapkan tugas pada node ke lingkungan produksi untuk dijalankan setelah Anda mengirimkan tugas pada node. Untuk informasi lebih lanjut, lihat Terapkan tugas.

Uji node do-while dan lihat log eksekusi node do-while

Prosedur untuk mengirimkan, menerapkan, dan menjalankan node do-while sama dengan prosedur untuk mengirimkan, menerapkan, dan menjalankan node umum. Namun, Anda tidak dapat menguji node do-while di DataStudio.

Catatan

Jika ruang kerja yang Anda gunakan berada dalam mode standar, Anda tidak dapat langsung melakukan uji coba untuk menjalankan node do-while di DataStudio.

Untuk melakukan uji coba menjalankan node do-while dan melihat hasilnya, Anda harus mengirimkan dan menerapkan alur kerja yang berisi node do-while ke Pusat Operasi dan menjalankan node do-while di Pusat Operasi. Jika Anda menggunakan nilai yang dilewatkan oleh node penugasan di node do-while, jalankan baik node penugasan maupun node do-while selama pengujian di Pusat Operasi.

  1. Di tab konfigurasi node do-while, klik Operation Center di bilah alat atas untuk pergi ke Operation Center.

  2. Di panel navigasi sisi kiri halaman Pusat Operasi, pilih Cycle Task Maintenance > Cycle Task.

  3. Di halaman Tugas Siklus, temukan node do-while dan klik DAG di kolom Aksi untuk membuka grafik asiklik terarah (DAG) dari node do-while. Di DAG node do-while, klik kanan node penugasan dan pilih Run > Current and Descendant Nodes Retroactively. Di kotak dialog Isi Ulang Data, konfigurasikan parameter dan klik OK.

  4. Segarkan halaman Patch Data. Setelah instance isi ulang data berhasil dijalankan, klik DAG di kolom Aksi dari instance isi ulang data yang dihasilkan untuk node do-while.

  5. Lihat log eksekusi node do-while.

    1. Klik kanan node do-while dan pilih View Internal Nodes.

      Anda hanya dapat melihat log eksekusi node do-while jika Anda melihat node internal dari node do-while.

      Alur kerja internal node do-while dibagi menjadi tiga bagian:

      • Panel kiri tampilan menampilkan riwayat jalankan ulang node do-while. Sebuah catatan dihasilkan setiap kali instance node do-while dijalankan.

      • Panel tengah tampilan menampilkan daftar catatan loop yang menunjukkan semua loop yang ada dari node do-while dan status setiap loop.

      • Panel kanan tampilan menampilkan detail tentang setiap loop. Anda dapat mengklik catatan dalam daftar catatan loop untuk melihat detail setiap instance dalam loop.

    2. Di halaman node internal, klik loop yang selesai di panel tengah, klik kanan node yang diinginkan di panel kanan, dan pilih View Runtime Log.

    3. Lihat log eksekusi untuk loop ke-n.

      Di halaman node internal, klik Loop 5 di panel tengah untuk melihat log eksekusi node shell dalam loop kelima.

      Contoh sebelumnya menunjukkan bahwa node do-while bekerja berdasarkan logika aplikasi berikut:

      1. Sistem memulai loop dari node awal.

      2. Node lain di dalam node do-while dijalankan secara berurutan berdasarkan dependensi yang dikonfigurasikan untuk mereka.

      3. Sistem mengeksekusi pernyataan kondisional yang didefinisikan dalam kode node akhir untuk keluar dari looping.

      4. Sistem mencatat jumlah loop yang dijalankan, dan loop berikutnya dimulai jika pernyataan kondisional mengembalikan True dalam log eksekusi node akhir.

      5. Seluruh proses looping berakhir jika pernyataan kondisional mengembalikan False dalam log eksekusi node akhir.

Ringkasan

  • Perbandingan antara node do-while dan pernyataan loop while, For Each, dan do-while:

    • Node do-while berjalan berdasarkan alur kerja yang memulai loop sebelum evaluasi. Node ini berfungsi dengan cara yang sama seperti pernyataan do-while. Node do-while dapat menggunakan variabel bawaan ${dag.offset} dan parameter input serta output untuk mencapai fitur pernyataan For Each.

    • Node do-while tidak dapat mencapai fitur pernyataan while karena node do-while menjalankan loop sebelum evaluasi.

  • Prosedur kerja node do-while:

    1. Sistem menjalankan loop dari node awal dan menjalankan node lain berdasarkan dependensi yang dikonfigurasikan untuk mereka.

    2. Setelah sistem menjalankan kode yang didefinisikan untuk node akhir dalam loop, salah satu dari situasi berikut terjadi:

      • Loop berikutnya dimulai jika node akhir mengembalikan True.

      • Seluruh proses looping berakhir jika node akhir mengembalikan False.

  • Parameter input dan output: Node internal dari node do-while menggunakan variabel ${dag.Nama Parameter Input dan Output} untuk merujuk pada parameter input dan output yang dikonfigurasikan untuk node do-while.

  • Variabel bawaan: DataWorks menyediakan variabel bawaan berikut untuk node internal dari node do-while:

    • dag.loopTimes: jumlah loop yang dijalankan. Nilai variabel ini dimulai dari 1.

    • dag.offset: offset jumlah loop yang dijalankan ke 1. Nilai variabel ini dimulai dari 0.