All Products
Search
Document Center

DataWorks:Orkestrasi alur kerja periodik

Last Updated:Apr 05, 2026

Alur kerja adalah alat yang mengotomatisasi proses berdasarkan dependensi tugas. Alur kerja periodik dirancang untuk skenario pemrosesan data berulang, seperti pekerjaan harian atau bulanan, dan secara otomatis menghasilkan instans tugas berdasarkan jadwal yang telah ditentukan. Alur kerja ini mengikuti logika pemicu ganda: sebuah instans hanya dijalankan ketika waktu terjadwalnya tiba dan semua dependensi hulu telah terpenuhi. Hal ini memastikan bahwa pipa data kompleks berjalan secara stabil, teratur, dan mandiri. Kasus penggunaan khas untuk alur kerja periodik meliputi:

  • Otomatisasi tugas pemrosesan data sesuai jadwal tetap: Jalankan tugas sinkronisasi data, pembersihan data, atau agregasi data pada interval harian, per jam, atau mingguan.

  • Buat alur dependensi grafik asiklik terarah (DAG) yang kompleks: Gunakan kanvas visual seret-dan-lepas untuk mengintegrasikan berbagai jenis node, seperti MaxCompute SQL, Hologres, E-MapReduce (EMR), dan Python, serta menetapkan dependensi antar-tugas untuk penjadwalan otomatis.

  • Jadwalkan dan kelola beberapa sub-tugas secara terpusat: Kelompokkan serangkaian tugas yang saling terkait secara logis ke dalam satu alur kerja yang dapat dijadwalkan sebagai satu kesatuan, sehingga menyederhanakan pemeliharaan dan pemantauan.

Mulai cepat

Penting

Fitur ini tersedia di Data Studio versi baru. Untuk mempelajari cara membedakan antara versi lama dan baru, lihat FAQ.

Bagian ini menyediakan contoh dasar alur kerja periodik yang dapat dijalankan. Anda akan membuat pipa sederhana yang terdiri dari node virtual (titik awal kontrol) yang memicu node SQL (pemrosesan data) dan mengonfigurasinya untuk penjadwalan periodik. Skenario: Setiap hari pukul 00:05, hitung secara otomatis jumlah total pesanan dari hari sebelumnya dan tulis hasilnya ke dalam tabel.

Langkah 1: Siapkan mesin komputasi dan data

  1. Di ruang kerja target, ikat MaxCompute sebagai mesin komputasi.

  2. Di MaxCompute, buat tabel berikut untuk menyimpan hasilnya.

    -- Buat tabel hasil sederhana
    CREATE TABLE IF NOT EXISTS dw_order_count_test (
        order_date STRING,
        total_count BIGINT
    ) 
    PARTITIONED BY (ds STRING); -- Dipartisi berdasarkan ds untuk menyimpan statistik harian

Langkah 2: Buat alur kerja periodik

  1. Buka halaman Workspaces di Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Temukan ruang kerja yang diinginkan dan pilih Shortcuts > Data Studio di kolom Actions.

    Jika tombol menampilkan "Data Development", itu membuka versi lama. Jangan klik.
  2. Di panel navigasi kiri, klik image Di sebelah kanan Workspace Directories, klik image > New Workflow untuk membuka halaman New Workflow.

  3. Di kotak dialog New Workflow, atur Scheduling Type menjadi Periodic Scheduling, masukkan informasi yang diperlukan (misalnya, masukkan minimal_daily_demo untuk Name), lalu buat alur kerja tersebut.

Langkah 3: Orkestrasikan alur kerja

  1. Pada kanvas alur kerja yang terbuka, seret virtual node dari panel komponen kiri dan beri nama start_node.

    Virtual node menentukan titik awal proses bisnis dan tidak menjalankan eksekusi aktual apa pun.
  2. Seret node MaxCompute SQL, dan beri nama count_orders.

  3. Klik titik di bagian bawah start_node dan seret garis ke bagian atas count_orders untuk membangun tautan pemrosesan sederhana.

Langkah 4: Kembangkan kode node

Penting

Kami menyarankan mengaktifkan DataWorks Copilot untuk mendapatkan saran penyelesaian kode cerdas dan meningkatkan efisiensi pengembangan.

  1. Klik dua kali node count_orders untuk membuka editor kode node.

  2. Masukkan logika bisnis untuk node tersebut. Contoh ini menggunakan data simulasi.

    -- bizdate adalah variabel penjadwalan yang harus didefinisikan dalam konfigurasi penjadwalan.
    INSERT OVERWRITE TABLE dw_order_count_test PARTITION (ds='${bizdate}')
    SELECT 
        '${bizdate}' as order_date,
        COUNT(*) as total_count
    FROM (SELECT 1 as id UNION ALL SELECT 2 as id) t; -- Data simulasi
    Untuk informasi lebih lanjut tentang pengembangan node, lihat Node MaxCompute SQL.
  3. Klik tombol Save di bagian atas editor node.

Langkah 5: Konfigurasi penjadwalan dan parameter

  1. Kembali ke kanvas alur kerja. Di panel kanan, klik tab Scheduling Configuration > Scheduling Time:

    1. Atur Scheduling Cycle menjadi Daily.

    2. Atur Scheduling Time menjadi 00:05 (berjalan setiap hari pukul 00:05).

  2. Di sisi kanan editor untuk node count_orders, pada bagian Scheduling Configuration > Scheduling Parameters, atur Parameter Name menjadi bizdate dan Parameter Value yang sesuai menjadi $[yyyymmdd-1] (artinya tanggal saat ini dikurangi satu hari, yaitu kemarin).

Langkah 6: Debug node dan alur kerja

  1. count_orders debugging node:

    1. Konfigurasi parameter debugging: Di sisi kanan halaman pengeditan node, klik Run Configurations.

      1. Pada bagian Compute engine, pilih mesin komputasi MaxCompute yang telah Anda siapkan di Langkah 1.

      2. Di bawah Script Parameters, masukkan Value for this run. Secara default, ini adalah hari sebelum tanggal saat ini.

    2. Jalankan tugas debug: Di bilah alat, klik Run. Node dijalankan dengan parameter yang telah Anda konfigurasi di Run Configurations.

    3. Saat eksekusi berhasil dan hasilnya sesuai harapan, klik Sync to Scheduling Config di pojok kanan atas untuk menerapkan konfigurasi eksekusi ke konfigurasi penjadwalan.

  2. Debug seluruh alur kerja:

    1. Kembali ke kanvas alur kerja dan klik ikon image di bilah alat atas.

    2. Di kotak dialog yang muncul, masukkan Value for This Run untuk alur kerja (misalnya, jika tanggal saat ini adalah 20260120, ganti bizdate dengan 20260119).

Langkah 7: Publikasikan ke lingkungan produksi

  1. Kembali ke kanvas alur kerja dan klik tombol image di bilah alat atas.

  2. Di panel penerapan, sistem menjalankan pemeriksaan dependensi dan konfigurasi. Setelah pemeriksaan berhasil, klik Deploy to production dan pilih Full Deployment sebagai metode penerapan.

  3. Setelah penerapan berhasil, buka Operation Center untuk memeriksa apakah alur kerja muncul dalam daftar tugas periodik.

Anda kini telah mengembangkan alur kerja periodik sederhana yang berjalan setiap hari di pagi buta.

Desain inti dan konfigurasi

Logika inti orkestrasi alur kerja adalah menggunakan kanvas DAG visual untuk mengatur struktur tugas dengan node kontrol (seperti node merge dan branch) dan node integrasi (seperti pemicu HTTP). Ini juga melibatkan penerusan konteks melalui parameter penjadwalan dan penentuan urutan eksekusi melalui dependensi penjadwalan, yang memungkinkan penjadwalan otomatis dan teratur untuk alur pemrosesan data kompleks.

Orkestrasi node dan alur kerja

Orkestrasi proses sederhana

Pengembangan data sering melibatkan pipa kompleks, mulai dari integrasi multi-sumber hingga pemodelan berlapis, seperti membangun lapisan ODS dan DWD. DataWorks menyediakan kemampuan orkestrasi visual untuk memecah logika kompleks menjadi sub-node dengan fungsi berbeda, menciptakan alur pemrosesan terstandarisasi. Model orkestrasi ini, berbasis grafik asiklik terarah (DAG), memungkinkan eksekusi otomatis berbasis status: ketika node hulu berhasil dijalankan, ia langsung memicu tugas hilir, memastikan seluruh pipa pemrosesan bersifat linear, stabil, dan mandiri. Pada tahap ini, orkestrasi proses bersifat sederhana, statis, linear, dan searah.

Orkestrasi kompleks: Kontrol alur

Catatan

Node branch, merge, for-each, dan do-while hanya tersedia di DataWorks Edisi Standar dan yang lebih tinggi.

Node kontrol alur meningkatkan pengembangan data dari integrasi tugas ke orkestrasi bisnis. Node ini mengatasi keterbatasan grafik asiklik terarah (DAG) tradisional yang hanya dapat mengekspresikan dependensi linear sederhana. Dengan menyediakan serangkaian node kontrol logika canggih, node ini meningkatkan kemampuan ekspresi logika alur kerja data.

Nama node

Deskripsi

Virtual node

Node dummy tidak melakukan komputasi aktual. Node ini mengorkestrasikan beberapa sub-tugas dan bertindak sebagai node awal alur kerja. Misalnya, dalam alur kerja analisis pesanan produk, virtual node bernama workshop digunakan sebagai titik awal seluruh alur kerja. Node ini menghubungkan dua tugas sinkronisasi offline untuk memperjelas jalur aliran data.

Catatan

Untuk pengembangan node tunggal, node root ruang kerja harus digunakan sebagai node dependensi awal.

Branch node

Mengarahkan eksekusi ke cabang berbeda berdasarkan hasil hulu. Misalnya, memeriksa total jumlah pesanan harian. Jika totalnya 0, memicu node peringatan dan menghentikan komputasi selanjutnya. Jika totalnya lebih besar dari 0, melanjutkan ke eksekusi node pembuatan laporan.

Merge node

Menggabungkan hasil eksekusi beberapa cabang untuk menyelesaikan masalah dependensi hilir. Misalnya, jika tugas penyelesaian keuangan bergantung pada cabang "penyelesaian normal" dan cabang "logika tagihan mundur", node merge memastikan arsip laporan akhir dipicu setelah logika cabang selesai, terlepas dari cabang mana yang diambil.

For-each node

Menjelajahi set hasil yang diteruskan oleh assignment node dan mengeksekusi operasi hilir untuk setiap elemen. Misalnya, untuk 31 nama provinsi yang diperoleh dari assignment node, menjalankan tugas pembersihan data sebanyak 31 kali, memproses partisi data untuk satu provinsi dalam satu waktu.

Do-while node

Mengontrol loop yang berlanjut hingga suatu kondisi terpenuhi, lalu melanjutkan ke langkah berikutnya. Misalnya, memanggil API eksternal setiap 10 menit untuk memeriksa status sinkronisasi data. Jika nilai yang dikembalikan adalah "processing", loop dilanjutkan. Jika mengembalikan "completed", loop dihentikan dan pemrosesan selanjutnya dimulai.

Untuk informasi lebih lanjut, lihat Node umum di Data Studio versi baru.

Orkestrasi kompleks: Kesadaran status dan integrasi eksternal

Catatan

Node check hanya tersedia di DataWorks Edisi Profesional dan yang lebih tinggi. Node lain di bagian ini hanya tersedia di DataWorks Edisi Perusahaan.

Node ini merupakan komponen inti untuk kesadaran status dan pemeriksaan kondisional. Node ini tidak hanya secara akurat menentukan apakah sumber daya fisik atau tugas prasyarat yang menjadi dependensi alur kerja telah siap, tetapi juga menghilangkan hambatan komunikasi antara platform data dan sistem bisnis melalui interaksi dengan sistem pihak ketiga.

Nama node

Deskripsi

HTTP trigger

Menerima permintaan HTTP dari sistem eksternal untuk memicu tugas DataWorks. Misalnya, setelah sistem bisnis hulu menyelesaikan penyelesaian harian, sistem tersebut dapat memanggil API HTTP untuk memicu alur pemrosesan data T+1 di DataWorks.

Check node

Memantau apakah sumber daya eksternal, seperti file OSS atau partisi MaxCompute, telah siap, lalu memicu tugas hilir. Misalnya, menunggu file log harian diunggah ke OSS. Setelah node check mendeteksi keberadaan file, tugas penguraian log dimulai.

Dependency check node

Memeriksa apakah dependensi lintas siklus atau lintas ruang kerja telah terpenuhi melalui polling aktif dan kombinasi logika, lalu memicu tugas hilir. Hal ini memungkinkan kontrol presisi atas kondisi pemicu penjadwalan kompleks. Misalnya, node penjadwalan harian dapat menunggu hingga ke-24 tugas per jam dari hari sebelumnya selesai.

Untuk informasi lebih lanjut, lihat Node umum di Data Studio versi baru.

Penggunaan ulang logika dengan sub-alur kerja

Alur kerja periodik memungkinkan Anda mengenkapsulasi pipa sub-tugas stabil dan umum ke dalam sub-alur kerja yang dapat digunakan kembali dengan menggunakan node SUB_PROCESS. Alur kerja lain kemudian dapat mereferensikan sub-alur kerja ini. Misalnya, lini bisnis e-commerce, iklan, dan IoT dapat berbagi alur pemrosesan terstandarisasi yang mencakup pembersihan data, statistik ringkasan, dan pemeriksaan kualitas data. Alur ini dapat dienkapsulasi sebagai sub-alur kerja yang dapat direferensikan untuk meningkatkan efisiensi pengembangan.

Prosedur:

  1. Di alur kerja child_workflow, atur Properties alur kerja menjadi Referable. Alur kerja tersebut kemudian menjadi sub-alur kerja.

  2. Di alur kerja utama, seret node SUB_PROCESS dan pilih child_workflow sebagai alur kerja yang direferensikan.

Sub-alur kerja memiliki batasan berikut:

  • Dependensi internal saja: Sub-alur kerja dan semua node internalnya tidak boleh memiliki dependensi pada tugas eksternal apa pun.

  • Isolasi: Sub-alur kerja tidak boleh menjadi dependensi langsung untuk tugas eksternal apa pun.

  • Pemicu pasif: Setelah dipublikasikan, tidak ada instans penjadwalan yang dihasilkan secara otomatis. Sub-alur kerja hanya dieksekusi ketika dipanggil oleh node SUB_PROCESS dari alur kerja lain.

    Untuk informasi lebih lanjut, lihat Node SUB_PROCESS.

Pemisahan dan modularisasi alur kerja

Untuk menjaga kemudahan pemeliharaan dan kinerja alur kerja, kami menyarankan memisahkan alur kerja besar yang memiliki lebih dari 100 node:

  • Pisahkan berdasarkan domain bisnis: Pisahkan pipa pemrosesan untuk subjek bisnis berbeda, seperti transaksi, pengguna, dan produk, ke dalam alur kerja independen.

  • Enkapsulasi logika umum dengan menggunakan node SUB_PROCESS: Enkapsulasi langkah pemrosesan umum dan dapat digunakan kembali, seperti pembersihan dan pemformatan data, ke dalam alur kerja yang dapat direferensikan.

Dependensi penjadwalan

Dependensi penjadwalan adalah mekanisme inti untuk memastikan urutan, konsistensi, dan akurasi pemrosesan data. Dependensi ini menghubungkan tugas-tugas terisolasi menjadi garis produksi data yang teratur melalui logika ganda: mencapai waktu terjadwal dan dipicu oleh keberhasilan tugas hulu. Saat Anda mengorkestrasikan node dalam alur kerja, dependensi penjadwalan secara otomatis dibuat di antara mereka. Selain dependensi hulu-hilir antar-node dalam alur kerja, Anda dapat menetapkan dependensi yang lebih kompleks.

Untuk informasi lebih lanjut, lihat Dependensi penjadwalan.

Dependensi tingkat alur kerja

Gunakan dependensi tingkat alur kerja ketika seluruh alur kerja harus menunggu tugas lain (alur kerja lain atau node mandiri) selesai sebelum dapat dimulai. Ini cocok ketika alur kerja diperlakukan sebagai modul bisnis independen, seperti alur kerja bisnis penjualan yang baru dimulai setelah alur kerja data dasar menghasilkan outputnya.

Dependensi tingkat node

Gunakan dependensi tingkat node ketika node tertentu dalam alur kerja perlu menunggu tugas eksternal (yang tidak berada dalam alur kerja yang sama) selesai. Hal ini memungkinkan orkestrasi lintas-proses yang lebih granular. Misalnya, node ringkasan dalam alur kerja pelaporan mungkin perlu menunggu node tertentu dalam sistem keuangan eksternal menghasilkan outputnya. Kami menyarankan mengonfigurasi dependency check node di hulu untuk memastikan tugas dependensi selesai tepat waktu.

Dependensi lintas siklus

Dependensi lintas siklus berarti bahwa instans siklus saat ini dari suatu tugas bergantung pada instans dari siklus berbeda. Hal ini mendukung dependensi pada node yang sama atau node berbeda. Contohnya termasuk tugas yang menggunakan operasi INSERT OVERWRITE untuk menimpa tabel partisi atau skenario yang melibatkan perhitungan kumulatif. Dengan dependensi lintas siklus diaktifkan, instans hari ini harus menunggu instans hari sebelumnya berhasil sebelum dapat dijalankan.

Dependensi lintas ruang kerja

Ketika suatu tugas perlu bergantung pada tugas dari ruang kerja DataWorks lain, Anda dapat mengaitkan node tersebut secara unik berdasarkan nama ruang kerja dan Output Name, Name, atau ID node tersebut. Hal ini cocok untuk kolaborasi data lintas-departemen dan lintas-proyek, seperti ketika tugas di ruang kerja pemasaran perlu mereferensikan data kunci dari ruang kerja akuntansi.

Desain dan aliran parameter

Catatan

Parameter ruang kerja hanya tersedia di DataWorks Edisi Profesional dan yang lebih tinggi.

Data Studio versi baru mendukung empat tingkat mekanisme penerusan parameter dan memungkinkan penerusan data fleksibel dan dinamis antar-node melalui parameter konteks. Tingkat-tingkat tersebut, dari cakupan sempit ke luas, adalah sebagai berikut:

Parameter node

Dalam tugas pemrosesan batch, ketika kode SQL yang sama perlu memproses data partisi berbeda setiap hari, Anda dapat menggunakan parameter node untuk mendefinisikan tanggal secara dinamis dalam kode. Parameter ini mendukung konstanta, variabel bawaan, dan ekspresi waktu kustom.

Untuk informasi lebih lanjut, lihat Sumber dan ekspresi untuk parameter penjadwalan.

Parameter konteks

Parameter ini diteruskan ke node hilir melalui parameter output dari node hulu untuk memungkinkan penerusan nilai dinamis. Parameter ini mendukung konstanta, variabel, dan hasil eksekusi hulu.

Untuk informasi lebih lanjut, lihat Konfigurasi dan penggunaan parameter konteks node.

Parameter alur kerja

Sebuah alur kerja dapat memiliki puluhan node yang perlu berbagi pengenal bisnis tertentu. Memodifikasi parameter node satu per satu secara manual rentan terhadap kesalahan. Parameter alur kerja dapat digunakan untuk mendefinisikan nilai-nilai bersama ini sekali saja dan menerapkannya ke semua node dalam alur kerja.

Untuk informasi lebih lanjut, lihat Parameter alur kerja.
Catatan

Sub-alur kerja dalam alur kerja dapat langsung mereferensikan parameter alur kerja tersebut.

Parameter ruang kerja

Ketika Anda melakukan debugging kode di lingkungan pengembangan dan menjalankannya di lingkungan produksi, nama database dan jalur sumber daya biasanya berbeda. Anda dapat mendefinisikan konfigurasi ini di tingkat ruang kerja sehingga berlaku untuk semua node dalam ruang kerja tersebut. Misalnya, Anda dapat mendefinisikan parameter ruang kerja db_name yang diatur ke db_dev untuk lingkungan pengembangan dan db_prod untuk lingkungan produksi.

Untuk informasi lebih lanjut, lihat Penggunaan parameter ruang kerja.

Siklus penjadwalan

Penting

Perbedaan utama antara alur kerja periodik dan proses bisnis versi lama adalah bahwa siklus penjadwalan alur kerja dikonfigurasi sebagai satu kesatuan, sedangkan proses bisnis hanyalah kumpulan fisik tugas dan tidak dapat dijadwalkan secara keseluruhan.

Siklus penjadwalan hanya dapat diatur di tingkat alur kerja. Node dalam alur kerja hanya dapat memiliki Waktu Eksekusi Tertunda, yaitu offset dari waktu terjadwal alur kerja.

Dimensi

Konfigurasi tingkat alur kerja

Perilaku node internal

Properti waktu

Waktu absolut (misalnya, 02:00)

Waktu relatif (penundaan dari waktu terjadwal alur kerja)

Properti siklus

Tentukan siklus harian, per jam, per menit, mingguan, bulanan, atau tahunan

Mewarisi siklus alur kerja; tidak dapat dimodifikasi

Logika pemicu

Waktu fisik tercapai + tugas hulu berhasil

Waktu fisik + waktu penundaan + tugas hulu berhasil

Debug dan jalankan

Setelah Anda mengembangkan node dan alur kerja, lakukan debugging node tunggal dan debugging alur kerja secara keseluruhan untuk memverifikasi bahwa hasilnya sesuai harapan.

Debugging node tunggal

Debugging node tunggal berfokus pada verifikasi logika kode internal satu node, seperti memvalidasi pernyataan SQL, skrip Python, atau tugas integrasi data secara cepat. Mode ini hanya menjalankan node saat ini dan tidak memicu dependensi hulu atau hilir apa pun.

  1. Di panel Run Configurations di sisi kanan node, konfigurasikan parameter berikut:

    Parameter

    Deskripsi

    Compute Engine

    Pilih mesin komputasi yang telah diikat. Jika tidak tersedia, pilih Create Compute Engine dari daftar drop-down.

    Penting

    Pastikan mesin komputasi dan Resource Group terhubung. Untuk informasi lebih lanjut, lihat Solusi konektivitas jaringan.

    Resource Group

    Pilih Resource Group yang lulus uji konektivitas saat mesin komputasi diikat. Beberapa node mendukung konfigurasi custom image pada Resource Group untuk memperluas lingkungan runtime.

    (Opsional) Dataset

    Beberapa node, seperti Shell dan Python, mendukung penggunaan dataset untuk mengakses data tidak terstruktur yang disimpan di OSS atau NAS.

    (Opsional) Parameter Skrip

    Saat Anda mengonfigurasi konten node, Anda dapat mendefinisikan variabel dalam format ${parameter_name}. Anda harus mengonfigurasi Parameter Name dan Parameter Value di bagian Script Parameters. Saat tugas dijalankan, variabel tersebut secara dinamis diganti dengan nilai aktualnya. Untuk informasi lebih lanjut, lihat Sumber parameter penjadwalan dan ekspresinya.

    (Opsional) Peran terkait

    Beberapa node, seperti Shell dan Python, mendukung konfigurasi peran terkait untuk mengakses sumber daya dari produk cloud lain.

  2. Di bilah alat atas node, klik Save lalu Run.

  3. Lihat log dan hasil eksekusi di bagian bawah node.

Debugging alur kerja

Debugging alur kerja berfokus pada verifikasi dependensi data, penerusan parameter, dan urutan eksekusi di antara beberapa node dalam seluruh pipa bisnis. Setelah menyelesaikan debugging node tunggal, Anda dapat melakukan debugging sebagian atau seluruh alur kerja.

  1. Di halaman kanvas DAG alur kerja, klik tombol Run di bilah alat atas. Anda juga dapat memilih node, klik kanan, lalu pilih Run to This Node atau Run from This Node untuk validasi parsial.

  2. Di kotak dialog yang muncul, tetapkan nilai sementara untuk eksekusi debug ini ke semua variabel node dalam alur kerja (seperti ${bizdate}).

  3. Sistem mengeksekusi node secara berurutan dari atas ke bawah sesuai dengan dependensi yang ditentukan dalam DAG. Anda dapat memantau status node secara real time di kanvas dan mengklik node apa pun untuk melihat log eksekusinya.

  4. Pada titik ini, Anda dapat mengklik tombol Back di sisi kiri kanvas untuk kembali ke status pengembangan alur kerja.

    Riwayat eksekusi di sisi kanan menampilkan semua catatan eksekusi debugging untuk alur kerja tersebut.
Penting

Semua node umum yang melibatkan kontrol alur (loop, cabang, dan merge) harus ditempatkan dalam alur kerja dan di-debug bersama dengan node hulu dan hilirnya agar efektif.

Manajemen dan operasi

Manajemen node alur kerja

Untuk meningkatkan fleksibilitas dan efisiensi pengembangan data, DataWorks memungkinkan Anda mengimpor node mandiri yang sudah ada ke dalam alur kerja untuk orkestrasi, memindahkan node keluar dari alur kerja, atau mentransfernya antar-alur kerja berbeda. Hal ini membuat penggunaan ulang node, refaktorisasi alur kerja, dan manajemen modular menjadi lebih sederhana dan efisien.

Impor node yang sudah ada ke dalam alur kerja

Anda dapat menambahkan node mandiri yang sudah ada di proyek Anda dan tidak termasuk dalam alur kerja apa pun ke kanvas alur kerja saat ini dengan menggunakan fitur Import Node, sehingga memungkinkan penggunaan ulang node secara cepat.

  1. Klik dua kali alur kerja target untuk membuka editor kanvasnya.

  2. Di panel komponen kiri, alihkan ke tab Import Node.

  3. Panel ini mencantumkan semua node mandiri yang tersedia untuk ditambahkan. Anda dapat memfilter dan mencari berdasarkan Node Type, Path, atau Node Name untuk menemukan node target dengan cepat.

  4. Setelah menemukan node tersebut, seret ke kanvas untuk menyelesaikan impor.

Pindahkan node keluar dari alur kerja

Anda dapat memindahkan node keluar dari alur kerja untuk menjadikannya node mandiri atau memindahkannya langsung ke alur kerja lain.

  • Konversi menjadi node mandiri

    Gunakan fitur ini ketika Anda perlu memisahkan node dari alur kerja sehingga tidak lagi menjadi bagian dari alur kerja tersebut.

    1. Di pohon direktori ruang kerja atau di kanvas alur kerja, klik kanan node target.

    2. Di menu konteks yang muncul, pilih Move out of Workflow.

    3. Di kotak dialog konfirmasi, pilih jalur target untuk node tersebut, lalu konfirmasi.

  • Pindah ke alur kerja lain

    Gunakan fitur ini ketika Anda perlu merefaktorisasi proses bisnis dengan memigrasikan node dari alur kerja saat ini ke alur kerja lain.

    1. Di pohon direktori ruang kerja atau di kanvas alur kerja, klik kanan node target.

    2. Di menu konteks yang muncul, pilih Move to another workflow.

    3. Di daftar yang muncul, pilih alur kerja target dan konfirmasi.

      Anda juga dapat memindahkan node dengan memilih dan menyeretnya ke alur kerja target.
Penting

Sebelum melakukan operasi ini, evaluasi secara hati-hati dampak potensial terhadap proses bisnis yang ada dan segera konfigurasi ulang dependensi di lokasi baru.

  • Ketika node dihapus atau dipindahkan dari alur kerja, dependensi hulu dan hilir yang ditetapkan untuk node tersebut dalam alur kerja asli akan terputus.

  • Parameter alur kerja yang dikonfigurasi pada node akan menjadi tidak valid.

Kloning alur kerja

Kloning alur kerja memungkinkan Anda menyalin alur kerja yang sudah ada secara cepat dan lengkap, termasuk semua node internal, kode, dan dependensinya, untuk membuat alur kerja baru dan independen. Untuk melakukannya, buka Workspace Directories, klik kanan alur kerja target, lalu pilih Clone.

Kloning dapat menimbulkan risiko potensial karena menduplikasi hampir semua konfigurasi. Sebelum meng-commit dan mempublikasikan alur kerja yang dikloning, pastikan untuk melakukan pemeriksaan "isolasi lingkungan" dengan memverifikasi konfigurasi berikut:

  1. Tabel output dan sumber data target: Alur kerja yang dikloning menulis ke tabel target yang sama dengan alur kerja aslinya. Anda harus mengubah nama tabel target dalam kode (misalnya, mengganti ods_user_table menjadi dev_ods_user_table) atau mengubah konfigurasi output node untuk mencegah beberapa tugas menulis ke tabel yang sama dan menyebabkan konflik data.

  2. Dependensi hulu: Periksa konfigurasi dependensi hulu alur kerja. Secara default, alur kerja yang dikloning masih bergantung pada tugas hulu aslinya. Pastikan apakah ini sesuai dengan tujuan Anda, karena dapat menyebabkan pipa data yang membingungkan atau tugas yang berjalan tanpa tujuan.

  3. Konfigurasi parameter: Periksa parameter kustom alur kerja dan node internalnya, terutama yang terkait dengan partisi tanggal (seperti ${bizdate}) dan jalur input/output, serta pastikan parameter tersebut benar di lingkungan baru.

Selain mengkloning alur kerja, Anda juga dapat mengkloning node dalam alur kerja, tetapi tidak dapat menyalin node lintas alur kerja berbeda.

Manajemen versi

Penting

Publikasi node internal secara terpisah juga membuat versi baru alur kerja.

Manajemen versi secara otomatis mencatat setiap perubahan pada alur kerja, memungkinkan Anda melihat dan membandingkan versi historis dan, jika perlu, dengan cepat mengembalikan ke status sebelumnya. Ini adalah fitur kunci untuk memastikan stabilitas tugas dan mendukung kolaborasi tim.

Di sisi kanan kanvas alur kerja, Anda dapat menemukan panel Version. Di panel Versi, Anda akan melihat dua jenis catatan, dan penting untuk memahami perbedaan di antara keduanya:

  • Catatan pengembangan: Catatan ini dihasilkan setiap kali Anda mengklik Save di kanvas. Catatan ini hanyalah snapshot proses pengembangan, yang bertujuan mencegah kehilangan kode secara tidak sengaja. Catatan ini tidak memengaruhi tugas yang sedang berjalan di lingkungan produksi.

  • Catatan penerapan: Catatan ini dihasilkan ketika alur kerja berhasil dipublikasikan ke lingkungan produksi. Ini adalah versi yang dieksekusi oleh sistem penjadwalan online. Ketika tugas produksi mengalami masalah, Anda harus fokus pada catatan penerapan saat melakukan pengembalian.

Kasus penggunaan khas

  • Pemulihan kesalahan cepat: Ketika tugas produksi gagal karena perubahan kode, Anda dapat menggunakan fitur Revert untuk mengembalikan alur kerja ke versi penerapan stabil terakhir dengan satu klik, sehingga meminimalkan downtime.

  • Audit dan ketertelusuran perubahan: Ketika Anda perlu menyelidiki kapan dan oleh siapa suatu logika dimodifikasi, Anda dapat menggunakan fitur Version List dan Compare untuk melacak setiap perubahan kode secara jelas.

  • Pemulihan kode: Jika Anda secara tidak sengaja menghapus sebagian logika kode dan belum menyimpannya, Anda dapat memulihkannya dengan mengembalikan ke catatan pengembangan terbaru.

Catatan penting

  • Pengembalian menimpa ruang kerja pengembangan saat ini: Operasi revert secara langsung menimpa semua kode dan konfigurasi di kanvas saat ini dengan konten dari versi historis yang dipilih. Jika Anda memiliki perubahan valid yang belum dikomit di kanvas saat ini, kami sangat menyarankan Anda menyalinnya secara manual ke editor teks lokal untuk pencadangan sebelum melakukan revert.

  • Anda harus menerbitkan ulang setelah pengembalian: Operasi revert hanya mengembalikan kode ke status pengembangan. Versi yang dipulihkan ini tidak secara otomatis disinkronkan ke lingkungan produksi. Anda harus menerbitkan ulang alur kerja agar perubahan berlaku di produksi.

Penerapan dan operasi

  • Penerapan node/alur kerja: Setelah Anda mengembangkan alur kerja, Anda memublikasikan node atau alur kerja ke lingkungan produksi. Pada titik ini, node di lingkungan pengembangan menghasilkan tugas periodik yang sesuai di lingkungan produksi. Untuk informasi lebih lanjut, lihat Publikasikan node atau alur kerja.

  • Operasi node/alur kerja: Alur kerja di lingkungan produksi dijadwalkan secara periodik berdasarkan konfigurasinya. Buka Operation Center untuk melihat status penjadwalan alur kerja periodik dan melakukan tugas operasional terkait. Untuk informasi lebih lanjut, lihat Tugas operasional dasar untuk tugas periodik dan Tugas operasional untuk instans Pengisian Ulang Data.

Mekanisme eksekusi tugas

Dalam skenario penjadwalan, apakah alur kerja mengembalikan status sukses bergantung pada status eksekusi tugas internalnya.

Keberhasilan keseluruhan alur kerja ditentukan oleh status akhir node internalnya, sesuai aturan berikut:

  • Gagal: Jika satu node kritis gagal, seluruh instans alur kerja biasanya diatur ke status Gagal.

  • Dibekukan/Ditangguhkan: Jika node dalam alur kerja secara manual dibekukan atau ditangguhkan, dan node tersebut merupakan dependensi hulu untuk node berikutnya, pipa terputus, dan seluruh alur kerja juga diatur ke status Gagal.

  • Merge node: Jika alur kerja menggunakan merge node, seluruh alur kerja mungkin tetap mengembalikan status "Berhasil" meskipun beberapa node cabang hulu gagal, selama logika merge node memungkinkannya berhasil. Oleh karena itu, Anda harus merancang pemeriksaan hulu untuk merge node dengan hati-hati untuk mencegah "berjalan dengan kesalahan."

Skenario khusus:

  • Ketika Anda membekukan instans Pengisian Ulang Data dari tugas alur kerja, instans alur kerja diatur ke status Berhasil.

  • Dalam skenario Pengisian Ulang Data, jika sistem menentukan bahwa tugas tidak dapat dieksekusi, alur kerja diatur ke status Gagal.

Penting

Ada penundaan antara saat status instans diperbarui dan saat kejadian kegagalan aktual terjadi.

Kuota dan batasan

  • Batas jumlah node: Satu alur kerja dapat berisi hingga 400 node internal. Namun, untuk memastikan kinerja pemuatan kanvas dan kemudahan pemeliharaan, kami menyarankan menjaga jumlah node di bawah 100. Untuk skenario yang lebih kompleks, disarankan untuk melakukan modularisasi dan memisahkan alur kerja.

  • Batasan sub-alur kerja:

    • Alur kerja dengan sakelar "Referable" diaktifkan, beserta node internalnya, tidak boleh bergantung pada tugas eksternal apa pun, dan juga tidak boleh menjadi dependensi langsung untuk tugas eksternal apa pun. Jika tidak, akan terjadi kesalahan selama penerapan.

    • Setelah alur kerja semacam itu dipublikasikan ke lingkungan produksi, alur kerja tersebut tidak menghasilkan instans penjadwalan secara otomatis secara default. Alur kerja tersebut hanya berjalan sebagai sub-tugas ketika direferensikan oleh node SUB_PROCESS di alur kerja lain.

  • Instans paralel maksimum: Alur kerja periodik tidak mendukung pengaturan jumlah maksimum instans paralel di tingkat alur kerja. Anda hanya dapat mengatur ini untuk tugas individual dalam alur kerja. Untuk membatasi eksekusi konkuren tugas, konfigurasikan Maximum Parallel Instances dalam kebijakan penjadwalan node tertentu dalam alur kerja. Untuk informasi lebih lanjut, lihat Konfigurasi penjadwalan node.

  • Jenis node yang tidak didukung: E-MapReduce (EMR) Spark Streaming, Flink SQL Streaming, Flink JAR Streaming, dan Flink Python Streaming tidak didukung dalam alur kerja. Jenis-jenis ini hanya dapat dikembangkan dan dijalankan sebagai node mandiri.

FAQ

  • T: Apa perbedaan antara alur kerja dan proses bisnis?

    J: Alur kerja adalah unit yang dapat dijadwalkan, sedangkan proses bisnis hanyalah folder untuk mengorganisasi tugas.

  • T: Mengapa tugas saya berhasil dijalankan dalam mode debug tetapi gagal dalam eksekusi terjadwal?

    A: Penyebab paling umum adalah ketidaksesuaian lingkungan. Periksa hal-hal berikut:

    • Perbedaan Resource Group: Anda mungkin menggunakan Resource Group pribadi atau debugging untuk debugging, sedangkan penjadwalan produksi dikonfigurasi dengan Resource Group produksi. Pastikan Resource Group produksi valid, memiliki kapasitas yang cukup, dan memiliki izin yang benar.

    • Perbedaan izin: Akun yang digunakan untuk eksekusi produksi mungkin tidak memiliki akses ke tabel, fungsi, atau sumber daya tertentu.

    • Perbedaan dependensi: Hubungan dependensi di lingkungan produksi tidak konsisten dengan lingkungan pengembangan, atau output dependensi hulu tidak ada di lingkungan produksi.

  • T: Mengapa instance saya selalu dalam status menunggu dan tidak berjalan?

    J: Instans hanya dapat dijalankan ketika semua kondisi, seperti waktu terjadwal, sumber daya penjadwalan, dan node dependensi hulu, terpenuhi.

    • Dependensi hulu belum terpenuhi: Di Operation Center, periksa tampilan "Dependency" instans untuk melihat tugas hulu mana yang belum berhasil.

    • Menunggu sumber daya: Antrian untuk Resource Group komputasi penuh, dan tugas sedang menunggu sumber daya yang tersedia.

    • Alur kerja/node dibekukan: Periksa apakah alur kerja atau node hulunya telah secara manual "dibekukan" atau "ditangguhkan".

    • Instans belum dihasilkan: Pastikan apakah waktu saat ini telah mencapai waktu terjadwal untuk alur kerja. Jika tugas baru saja dipublikasikan, Anda perlu menunggu hingga siklus penjadwalan berikutnya untuk menghasilkan instans. Untuk informasi lebih lanjut, lihat Metode pembuatan instans: Pembuatan segera setelah penerapan.

  • T: Mengapa seluruh alur kerja ditampilkan sebagai gagal meskipun beberapa node berhasil?

    A: Hal ini ditentukan oleh aturan penentuan status alur kerja:

    • Kegagalan jalur kritis: Jika node pada jalur kritis gagal, seluruh alur kerja ditandai sebagai gagal, meskipun cabang paralel lainnya berhasil.

    • Node dibekukan: Jika node internal dibekukan, hal ini menyebabkan seluruh alur kerja gagal.