DataWorks menyediakan simpul do-while. Anda dapat mengatur ulang alur kerja di dalam simpul do-while, menulis logika yang akan dieksekusi dalam loop, dan mengonfigurasi simpul akhir untuk menentukan apakah akan keluar dari looping. Simpul do-while dapat digunakan secara mandiri atau bersama dengan simpul penugasan untuk melakukan iterasi terhadap set hasil yang dilewatkan oleh simpul penugasan.
Pengenalan Simpul
Anda dapat mengatur ulang alur kerja di dalam simpul do-while, menulis logika yang akan dieksekusi dalam loop, dan mengonfigurasi simpul akhir untuk menentukan apakah akan keluar dari looping. Simpul do-while dapat digunakan secara mandiri atau bersama dengan simpul penugasan untuk melakukan iterasi terhadap set hasil yang dilewatkan oleh simpul penugasan. Topik ini menjelaskan komposisi dan logika aplikasi dari simpul do-while.
Prasyarat
Pengguna RAM yang ingin digunakan telah ditambahkan ke ruang kerja Anda.
Jika Anda ingin menggunakan pengguna RAM untuk mengembangkan tugas, tambahkan pengguna RAM sebagai anggota ruang kerja dan berikan peran Develop atau Workspace Administrator. Peran Workspace Administrator memiliki lebih banyak izin daripada yang diperlukan, jadi berhati-hatilah saat memberikan peran tersebut. Untuk informasi lebih lanjut tentang cara menambahkan anggota dan menetapkan peran, lihat Tambahkan anggota ruang kerja dan tetapkan peran kepada mereka.
Grup sumber daya serverless telah dikaitkan dengan ruang kerja Anda. Untuk informasi lebih lanjut, lihat topik-topik dalam direktori Gunakan grup sumber daya serverless.
Simpul do-while dibuat sebelum Anda mengembangkan tugas pada simpul tersebut. Untuk informasi lebih lanjut, lihat Buat simpul tugas.
Batasan
Hanya DataWorks Edisi Standar dan edisi yang lebih tinggi yang mendukung simpul do-while. Untuk informasi lebih lanjut, lihat Perbedaan antara edisi DataWorks.
Eksekusi paralel tidak didukung. Loop hanya dapat dimulai jika loop sebelumnya berakhir.
Peringatan
Dimensi | Item | Deskripsi |
Dukungan loop | Batas atas jumlah loop | Jumlah maksimum loop untuk simpul do-while adalah 128. Jika jumlah loop untuk simpul do-while melebihi 128, simpul end mengembalikan False untuk keluar dari looping. |
Simpul internal | Orkestrasi alur kerja |
|
Pengambilan nilai | variabel bawaan yang disediakan oleh simpul do-while dapat digunakan untuk memperoleh nilai output yang dilewatkan oleh simpul penugasan yang dikonfigurasi sebagai simpul leluhur dari simpul do-while. | |
Debugging | Debugging tugas | Jika Anda menggunakan ruang kerja dalam mode standar, Anda tidak dapat langsung melakukan tes untuk menjalankan simpul do-while di Data Studio. Jika Anda ingin melakukan tes untuk memverifikasi hasil jalannya simpul do-while, Anda harus mengirimkan dan menerapkan alur kerja yang berisi simpul do-while ke Pusat Operasi di lingkungan pengembangan dan menjalankan tugas pada simpul do-while. |
Melihat log | Untuk melihat log jalannya simpul do-while di Pusat Operasi, lakukan langkah-langkah berikut: Temukan simpul do-while dan buka grafik asiklik terarah (DAG) dari simpul tersebut. Di DAG, klik kanan nama simpul dan pilih View Internal Nodes. | |
Dependensi | Pengaturan dependensi | Anda dapat menggunakan simpul do-while secara mandiri, atau menggunakan simpul do-while bersama dengan simpul penugasan. Jika Anda ingin memeriksa apakah simpul penugasan melewati outputnya ke simpul do-while di Pusat Operasi, Anda dapat menggunakan fitur backfill data untuk membackfill data untuk simpul penugasan dan simpul do-while. Jika Anda hanya menjalankan simpul do-while, Anda tidak dapat memperoleh output dari simpul penugasan. |
Variabel Bawaan
Variabel bawaan yang disediakan oleh simpul do-while umumnya dikonfigurasi dalam format ${dag.Nama Variabel}. Simpul do-while di DataWorks menyediakan dua variabel bawaan: ${dag.loopTimes} dan ${dag.offset}. Anda juga dapat menggunakan simpul do-while bersama dengan simpul penugasan untuk memperoleh nilai parameter penugasan berdasarkan variabel bawaan yang dikonfigurasi dalam format ${dag.Nama Variabel}.
Variabel Bawaan
Anda dapat menggunakan variabel bawaan yang disediakan oleh simpul do-while di DataWorks untuk memperoleh jumlah loop yang telah selesai dan offset antara loop saat ini dan loop sebelumnya saat simpul do-while digunakan untuk looping.
Variabel bawaan
Deskripsi
Nilai
${dag.loopTimes}Jumlah loop yang telah selesai.
1 untuk loop pertama, 2 untuk loop kedua, 3 untuk loop ketiga, ..., dan n untuk loop ke-n.
${dag.offset}Offset antara loop saat ini dan loop sebelumnya.
0 untuk loop pertama, 1 untuk loop kedua, 2 untuk loop ketiga, ..., dan n-1 untuk loop ke-n.
Memperoleh set hasil yang dilewatkan oleh simpul penugasan
Jika Anda menggunakan simpul do-while bersama dengan simpul penugasan, Anda dapat memperoleh nilai parameter penugasan dan variabel loop dengan menggunakan variabel bawaan yang dijelaskan dalam tabel berikut.
CatatanJika sebuah simpul do-while bergantung pada simpul penugasan, Anda dapat menambahkan parameter output yang ditentukan dalam Output Parameters untuk simpul penugasan ke Parameter Input untuk simpul do-while. Kemudian, Anda dapat menggunakan simpul do-while untuk memperoleh set hasil yang dilewatkan oleh simpul penugasan atau data tertentu dalam set hasil. Parameter input dikonfigurasi dalam format ${dag.Nama Variabel}. Ganti nama variabel dengan nama parameter input yang ditentukan dalam Input Parameters untuk simpul do-while. Dalam variabel bawaan berikut,
inputmenentukan nama input parameter yang didefinisikan dalam simpul do-while dan digunakan untuk memperoleh set hasil yang dilewatkan oleh simpul penugasan. Anda harus mengganti input dengan nama sebenarnya dari parameter input yang Anda gunakan.Variabel bawaan
Deskripsi
${dag.input}Dataset yang dilewatkan oleh simpul penugasan leluhur.
${dag.input[${dag.offset}]}Entri data yang diperoleh oleh simpul do-while dalam loop saat ini.
${dag.input.length}Panjang dataset yang diperoleh di dalam simpul do-while.
Langkah 1: Gunakan simpul do-while untuk mengembangkan tugas
Deskripsi pengembangan simpul do-while
Secara default, simpul do-while terdiri dari simpul
start, simpul
end, dan tubuh loop do-while.
Simpul
start menandai awal loop dan tidak digunakan untuk memproses tugas loop. Simpul start tidak dapat dihapus.Tubuh loop do-while adalah simpul pemrosesan bisnis sampel yang disediakan oleh DataWorks.
Simpul
end menandai akhir loop dan menentukan apakah akan memulai loop berikutnya. Simpul end mendefinisikan kondisi untuk keluar dari looping untuk simpul do-while. Simpul end tidak dapat dihapus.
Anda dapat mengonfigurasi alur kerja internal dalam simpul do-while berdasarkan kebutuhan bisnis Anda. Secara rinci, Anda dapat menambahkan jenis simpul lain ke tubuh loop do-while.
Konfigurasikan simpul do-while
Pergi ke tab konfigurasi simpul do-while untuk mengonfigurasi simpul do-while. Secara default, simpul do-while terdiri dari simpul
start, simpul
end, dan tubuh loop do-while.
Klik Buat Simpul Internal di sebelah Tubuh Loop Do-while. Dalam popover yang muncul, pilih Shell dan tentukan nama untuk simpul Shell.
Konfigurasikan simpul Shell.
Geser pointer ke simpul Shell yang dibuat di tubuh loop, klik kanan nama simpul Shell, dan pilih Buka Simpul untuk pergi ke tab konfigurasi simpul Shell.
Tulis kode untuk simpul Shell.
echo ${dag.loopTimes} ---- Tampilkan jumlah loop saat ini.CatatanLogika simpul
start dan
end dari simpul do-while tetap dan tidak dapat diedit.Setelah Anda memodifikasi kode simpul Shell, simpan modifikasi tersebut. Saat Anda mengirimkan simpul, sistem tidak menampilkan pesan untuk mengingatkan Anda menyimpan modifikasi. Jika Anda tidak menyimpan modifikasi, kode tidak dapat diperbarui ke versi terbaru sesegera mungkin.
Variabel
${dag.loopTimes}adalah variabel cadangan sistem. Variabel ini menentukan jumlah loop saat ini, dan nilai variabel ini dimulai dari 1. Semua simpul internal dari simpul do-while dapat mereferensikan variabel ini. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel Bawaan.
Klik ikon
di bilah alat atas untuk menyimpan simpul.
Konfigurasikan simpul end dan definisikan kondisi untuk keluar dari looping di simpul end
Pergi ke tab konfigurasi simpul do-while untuk mengonfigurasi simpul
end dari simpul do-while dan definisikan kondisi untuk keluar dari looping di simpul end. Dalam contoh ini, simpul do-while didefinisikan untuk keluar dari looping setelah lima loop dijalankan.
Klik kanan simpul
end dan pilih Open Node. Masukkan kode berikut untuk mendefinisikan kondisi untuk keluar dari looping untuk simpul 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 simpul internal dari simpul do-while dapat mereferensikan variabel ini. Untuk informasi lebih lanjut tentang variabel bawaan, lihat Variabel Bawaan.
Dalam kode, nilai variabel
dag.loopTimesdibandingkan dengan 5 untuk membatasi jumlah loop yang dapat dijalankan. Misalnya, nilai variabeldag.loopTimesadalah 1 saat loop pertama dijalankan dan bertambah 1 setiap kali, 2 untuk kedua kalinya, dan 5 untuk kelima kalinya. Simpul do-while keluar dari looping saat hasil dari ${dag.loopTimes}<5 adalah False.
Klik ikon
di bilah alat atas untuk menyimpan simpul
end.
Simpan dan terapkan simpul do-while
Setelah Anda mengonfigurasi simpul Shell dan kondisi untuk keluar dari looping di simpul end, kembali ke alur kerja dan klik Terapkan untuk menerapkan simpul do-while dan simpul penugasan yang dikonfigurasi sebagai simpul leluhur dari simpul do-while. Untuk informasi lebih lanjut, lihat Penerapan simpul atau alur kerja.
Sebelum Anda mengirimkan simpul do-while, Anda harus mengonfigurasi properti rerun dan ancestor nodes untuk simpul do-while.
Uji simpul do-while dan lihat hasil uji
Setelah penerapan selesai, pergi ke halaman Auto Triggered Nodes di Operation Center untuk melihat simpul yang diterapkan dan melakukan operasi O&M pada simpul tersebut. Dengan cara ini, sistem secara berkala menjalankan simpul berdasarkan properti penjadwalan yang Anda konfigurasi.
Di halaman Simpul Pemicu Otomatis, temukan simpul penugasan, klik Backfill Data di kolom Tindakan, dan pilih Current and Descendant Nodes Retroactively untuk membackfill data untuk simpul penugasan dan simpul do-while. Untuk informasi lebih lanjut, lihat Backfill data dan lihat instance backfill data (versi baru).
Lampiran: Perbandingan dan deskripsi fitur do-while
Perbandingan antara simpul do-while dan pernyataan loop while, For Each, dan do-while:
Simpul do-while berjalan berdasarkan alur kerja yang memulai loop sebelum evaluasi. Simpul ini berfungsi sama seperti pernyataan do-while. Simpul do-while dapat menggunakan variabel bawaan ${dag.offset} dan parameter input dan output untuk mencapai fitur pernyataan For Each.
Simpul do-while tidak dapat mencapai fitur pernyataan while karena simpul do-while menjalankan loop sebelum evaluasi.
Prosedur Kerja Simpul do-while:
Sistem menjalankan loop dari simpul start dan menjalankan simpul lain berdasarkan dependensi yang dikonfigurasi untuk mereka.
Setelah sistem menjalankan kode yang didefinisikan untuk simpul end dalam loop, salah satu dari situasi berikut terjadi:
# Jalankan loop lagi jika simpul end mengembalikan True.
# Keluar dari loop jika simpul end mengembalikan False.
Parameter Input dan Output: Simpul internal dari simpul do-while menggunakan variabel ${dag.Nama Parameter Input dan Output} untuk mereferensikan parameter input dan output yang dikonfigurasi untuk simpul do-while.
Variabel Bawaan: DataWorks menyediakan variabel bawaan berikut untuk simpul internal dari simpul 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.