DataWorks memungkinkan Anda mengonfigurasi dependensi penjadwalan antara tugas yang dijadwalkan per menit, jam, hari, minggu, bulan, atau tahun. Jumlah siklus penjadwalan suatu tugas bervariasi berdasarkan frekuensinya. Setiap siklus penjadwalan menghasilkan satu instance. Topik ini menjelaskan dependensi antara instance tugas leluhur dan turunan dengan frekuensi penjadwalan yang berbeda.
Informasi latar belakang
Dalam DataWorks, tugas yang dipicu otomatis menghasilkan instance berdasarkan frekuensi dan jumlah siklus penjadwalannya. Misalnya, tugas yang dijadwalkan per jam menghasilkan jumlah instance sesuai dengan jumlah siklus penjadwalannya setiap hari. Pada dasarnya, dependensi antara tugas yang dipicu otomatis adalah dependensi antara instance yang dihasilkan untuk tugas-tugas tersebut. Jumlah instance yang dihasilkan serta dependensi antar instance bervariasi berdasarkan frekuensi penjadwalan tugas leluhur dan turunan.
DataWorks mendukung berbagai skenario dependensi penjadwalan. Anda dapat mengonfigurasi dependensi penjadwalan siklus yang sama atau siklus sebelumnya antara tugas dalam skenario tertentu. Untuk informasi lebih lanjut tentang dependensi penjadwalan siklus yang sama dan lintas siklus, lihat dan .
Sebelum mengonfigurasi dependensi penjadwalan, perhatikan item-item yang dijelaskan dalam tabel berikut.
No. | Deskripsi | Referensi |
1 | DataWorks mendukung frekuensi penjadwalan berikut: menit, jam, hari, minggu, bulan, dan tahun. Jika frekuensi penjadwalan tugas leluhur dan turunan berbeda, DataWorks memungkinkan Anda mengonfigurasi dependensi penjadwalan berdasarkan prinsip kedekatan waktu penjadwalan.
Catatan Jika tugas yang dijadwalkan per jam bergantung pada tugas lain yang juga dijadwalkan per jam, dan siklus penjadwalan tugas-tugas tersebut sama pada hari saat ini, dependensi antara tugas-tugas tersebut tidak sesuai dengan prinsip kedekatan waktu penjadwalan. Ini menunjukkan bahwa dependensi penjadwalan antara tugas-tugas tersebut tidak terkait dengan waktu penjadwalan mereka. Secara default, jika tugas yang dijadwalkan per hari bergantung pada tugas yang dijadwalkan per jam atau menit, instance yang dihasilkan untuk tugas yang dijadwalkan per hari bergantung pada semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit pada hari saat ini. Ini menunjukkan bahwa setelah data dari semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit pada hari saat ini dihasilkan, tugas yang dijadwalkan per hari mulai membersihkan data yang dihasilkan pada hari saat ini.
| Prinsip Kedekatan Waktu Penjadwalan untuk Dependensi Penjadwalan |
2 | Setelah mengonfigurasi dependensi penjadwalan antara tugas dalam DataWorks, dependensi antara data tugas-tugas tersebut dibuat. Terlepas dari waktu penjadwalan suatu tugas, tugas tersebut hanya memenuhi syarat untuk dijalankan setelah semua tugas leluhurnya selesai dijalankan. | Dampak Dependensi Antara Tugas pada Pelaksanaan Tugas |
3 | Anda dapat memahami prinsip kedekatan waktu penjadwalan untuk dependensi penjadwalan berdasarkan skenario sampel. | Lampiran 1: Skenario Dependensi Kompleks: |
Prinsip kedekatan waktu penjadwalan untuk dependensi penjadwalan
Dalam DataWorks, sebuah instance dihasilkan untuk tugas yang dipicu otomatis setiap kali tugas tersebut dijadwalkan untuk dijalankan. Oleh karena itu, beberapa instance dihasilkan. Instance turunan bergantung pada instance leluhur. Dalam kebanyakan kasus, jika Anda tidak menentukan instance tempat instance saat ini bergantung, dependensi untuk instance saat ini sesuai dengan prinsip kedekatan waktu penjadwalan. Ini menunjukkan bahwa instance saat ini bergantung pada instance yang waktu penjadwalannya paling dekat dengan waktu penjadwalan instance saat ini dan bukan merupakan instance leluhur dari instance lain. Tabel berikut menjelaskan prinsip dependensi dalam skenario yang berbeda.
Catatan Jika waktu penjadwalan suatu tugas lebih awal daripada tugas leluhurnya, tugas tersebut tidak dijalankan pada waktu penjadwalan. Tugas tersebut hanya dapat dijadwalkan untuk dijalankan setelah tugas leluhur selesai dijalankan.
Berdasarkan prinsip kedekatan waktu penjadwalan, jika tugas leluhur suatu tugas tidak memiliki instance yang waktu penjadwalannya lebih awal daripada instance pertama yang dihasilkan untuk tugas tersebut pada hari saat ini, instance pertama tugas tersebut bergantung pada instance pertama yang dihasilkan untuk tugas leluhur pada hari saat ini secara default.
Skenario | Deskripsi | Diagram |
Skenario Dependensi untuk Tugas yang Dijadwalkan Per Jam dan Tugas yang Dijadwalkan Per Menit | Dependensi antara tugas terkait dengan waktu penjadwalan instance yang dihasilkan untuk tugas-tugas tersebut. Skema Default: Dependensi untuk instance saat ini sesuai dengan prinsip kedekatan waktu penjadwalan. Ini menunjukkan bahwa DataWorks memungkinkan instance saat ini bergantung pada instance yang waktu penjadwalannya lebih awal dari atau konsisten dengan waktu penjadwalan instance saat ini dan bukan merupakan instance leluhur dari instance lain.
Catatan Jika jumlah instance yang dihasilkan untuk suatu tugas lebih besar daripada jumlah instance untuk tugas turunannya, instance turunan mungkin bergantung pada beberapa instance leluhur. Untuk informasi lebih lanjut, lihat diagram untuk dependensi antara tugas yang dijadwalkan per jam dan tugas yang dijadwalkan per menit untuk keduanya yang tidak dikonfigurasi self-dependency. Skema Khusus: Jika self-dependency dikonfigurasikan untuk tugas yang dijadwalkan per jam dan tugas yang dijadwalkan per menit, instance turunan saat ini bergantung pada instance leluhur yang waktu penjadwalannya lebih awal dari atau konsisten dengan waktu penjadwalan instance turunan saat ini. Untuk informasi lebih lanjut tentang cara mengonfigurasi self-dependency, lihat bagian Dependensi pada Instance yang Dihasilkan untuk Node Saat Ini dalam Siklus Sebelumnya dari topik "Konfigurasi Dependensi Penjadwalan Lintas Siklus".
Catatan Untuk informasi lebih lanjut, lihat diagram untuk dependensi antara tugas yang dijadwalkan per jam dan tugas yang dijadwalkan per menit untuk keduanya yang dikonfigurasi self-dependency.
Dependensi antara tugas tidak terkait dengan waktu penjadwalan instance yang dihasilkan untuk tugas-tugas tersebut. Dalam skenario di mana tugas yang dijadwalkan per jam bergantung pada tugas lain yang dijadwalkan per jam atau tugas yang dijadwalkan per menit bergantung pada tugas lain yang dijadwalkan per menit, pemetaan satu-satu dibuat antara instance leluhur dan turunan jika jumlah siklus penjadwalan (instance yang dihasilkan pada hari saat ini) untuk tugas leluhur dan turunan sama.
| Diagram berikut menunjukkan dependensi penjadwalan antara tugas yang dijadwalkan per jam dan tugas yang dijadwalkan per menit dalam berbagai skenario. Tugas yang Dijadwalkan Per Jam Bergantung pada Tugas Lain yang Dijadwalkan Per Jam Tugas yang Dijadwalkan Per Jam Bergantung pada Tugas yang Dijadwalkan Per Menit
Tugas yang Dijadwalkan Per Menit Bergantung pada Tugas yang Dijadwalkan Per Jam
Contoh: Tugas yang dijadwalkan per jam bergantung pada tugas lain yang dijadwalkan per jam. Skenario 1: Node B yang dijadwalkan per jam bergantung pada Node A yang dijadwalkan per jam. Informasi Konfigurasi: Periode penjadwalan harian adalah dari 00:00 hingga 23:59. Node A dan Node B dijadwalkan setiap lima jam. Jumlah instance yang dihasilkan untuk Node A sama dengan jumlah instance untuk Node B.
Dependensi: Jumlah instance yang dihasilkan untuk Node A sama dengan jumlah instance untuk Node B. Dalam hal ini, pemetaan satu-satu dibuat untuk dependensi penjadwalan instance. Skenario 2: Informasi Konfigurasi: Node A dijadwalkan setiap empat jam dari 06:10 hingga 21:59 setiap hari. Total empat instance dihasilkan untuk Node A. Node B dijadwalkan setiap empat jam dari 08:00 hingga 23:59 setiap hari. Total empat instance dihasilkan untuk Node B.
Dependensi: Jumlah instance yang dihasilkan untuk Node A sama dengan jumlah instance untuk Node B. Dalam hal ini, pemetaan satu-satu dibuat untuk dependensi penjadwalan instance.
|
Skenario di Mana Tugas yang Dijadwalkan Per Hari Bergantung pada Tugas yang Dijadwalkan Per Jam atau Menit | Skema Default: Secara default, jika tugas yang dijadwalkan per hari bergantung pada tugas yang dijadwalkan per jam atau menit, instance yang dihasilkan untuk tugas yang dijadwalkan per hari bergantung pada semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit pada hari saat ini. Ini menunjukkan bahwa setelah data dari semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit pada hari saat ini dihasilkan, tugas yang dijadwalkan per hari mulai membersihkan data yang dihasilkan pada hari saat ini. Skema Lain: Jika Anda ingin instance yang dihasilkan untuk tugas yang dijadwalkan per hari bergantung pada instance yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit dan waktu penjadwalannya paling dekat dengan waktu penjadwalan tugas yang dijadwalkan per hari, Anda dapat mengonfigurasi self-dependency untuk tugas yang dijadwalkan per jam atau menit. Setelah self-dependency dikonfigurasi, instance yang dihasilkan untuk tugas yang dijadwalkan per hari mulai dijalankan setelah instance yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit selesai dijalankan. | |
Untuk informasi lebih lanjut tentang dependensi dan situasi pelaksanaan tugas dalam berbagai skenario dependensi, lihat bagian Lampiran 1: Skenario Dependensi Kompleks dalam topik ini.
Dampak dependensi antara tugas pada pelaksanaan tugas
Setelah mengonfigurasi dependensi antara tugas, tugas turunan tidak dapat mulai dijalankan bahkan pada waktu penjadwalan tugas turunan jika tugas leluhur tidak dalam keadaan berhasil.
Sebagai contoh, Tugas B yang dijadwalkan per jam bergantung pada Tugas A yang dijadwalkan per hari, dan self-dependency tidak dikonfigurasikan untuk Tugas B.
Tugas A: Waktu penjadwalan adalah 07:00.
Tugas B: Waktu penjadwalan adalah 00:00, 08:00, dan 16:00.
Jika Tugas A belum selesai dijalankan, Tugas B tidak dijadwalkan untuk dijalankan ketika waktu penjadwalan 00:00 dari Tugas B tiba. Waktu paling dini Tugas B benar-benar dijalankan adalah 07:00.
Lampiran 1: Skenario dependensi kompleks
Jika waktu penjadwalan suatu tugas lebih awal daripada tugas leluhurnya, tugas tersebut tidak dijalankan pada waktu penjadwalan. Tugas tersebut hanya dapat dijadwalkan untuk dijalankan setelah tugas leluhur selesai dijalankan. Jika tugas leluhur suatu tugas tidak memiliki instance yang waktu penjadwalannya lebih awal daripada instance pertama yang dihasilkan untuk tugas tersebut pada hari saat ini, instance pertama tugas tersebut bergantung pada instance pertama yang dihasilkan untuk tugas leluhur pada hari saat ini secara default.
Dependensi untuk tugas yang dijadwalkan per jam
Skema dependensi | Deskripsi | Diagram |
Skenario di mana tugas yang dijadwalkan per jam bergantung pada tugas lain yang dijadwalkan per jam | Jumlah siklus penjadwalan (instance) tugas leluhur = Jumlah siklus penjadwalan (instance) tugas turunan Pemetaan satu-satu dibuat antara instance yang dihasilkan untuk tugas leluhur dan instance yang dihasilkan untuk tugas turunan pada hari saat ini. Ini menunjukkan bahwa instance turunan pertama bergantung pada instance leluhur pertama, instance turunan kedua bergantung pada instance leluhur kedua, dan instance turunan berikutnya bergantung pada instance leluhur berikutnya. Jumlah siklus penjadwalan (instance) tugas leluhur ≠ Jumlah siklus penjadwalan (instance) tugas turunan Dependensi antara instance yang dihasilkan untuk tugas leluhur dan instance yang dihasilkan untuk tugas turunan pada hari saat ini sesuai dengan prinsip kedekatan waktu penjadwalan. Instance turunan bergantung pada instance leluhur yang waktu penjadwalannya paling dekat tetapi tidak lebih dari waktu penjadwalan instance turunan.
Catatan Jika jumlah instance yang dihasilkan untuk suatu tugas lebih kecil daripada jumlah instance untuk tugas turunannya, beberapa instance turunan mungkin bergantung pada instance leluhur yang sama.
| |
Skenario di mana tugas yang dijadwalkan per jam bergantung pada tugas yang dijadwalkan per hari | Self-dependency tidak dikonfigurasikan untuk tugas yang dijadwalkan per jam. Semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam pada hari saat ini bergantung pada instance yang dihasilkan untuk tugas yang dijadwalkan per hari. Setelah tugas yang dijadwalkan per hari selesai dijalankan, semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam mulai dijalankan. Dalam hal ini, instance yang dihasilkan untuk tugas yang dijadwalkan per jam dan waktu penjadwalannya tiba dijalankan secara paralel.
Catatan Untuk mencegah instance dijalankan secara paralel, Anda dapat mengonfigurasi self-dependency untuk tugas yang dijadwalkan per jam. Pelaksanaan instance yang dihasilkan untuk tugas yang dijadwalkan per jam bersifat independen satu sama lain.
Self-dependency dikonfigurasikan untuk tugas yang dijadwalkan per jam. Hanya instance pertama yang dihasilkan untuk tugas yang dijadwalkan per jam yang bergantung pada tugas yang dijadwalkan per hari. Setiap instance lain yang dihasilkan untuk tugas yang dijadwalkan per jam dalam siklus saat ini bergantung pada instance tugas dalam siklus sebelumnya. Instance tugas yang dijadwalkan per jam dalam siklus saat ini mulai dijalankan hanya setelah tugas yang dijadwalkan per hari dan instance tugas yang dijadwalkan per jam dalam siklus sebelumnya selesai dijalankan. Dalam hal ini, meskipun waktu penjadwalan instance yang dihasilkan untuk tugas yang dijadwalkan per jam tiba, instance tersebut tidak dijalankan secara paralel.
Catatan Jika Anda mengonfigurasi self-dependency untuk tugas yang dijadwalkan per jam, instance pertama yang dihasilkan pada hari saat ini mungkin bergantung pada instance terakhir yang dihasilkan pada hari sebelumnya. Jika instance terakhir yang dihasilkan pada hari sebelumnya belum selesai dijalankan, tugas yang dijadwalkan per jam tidak dapat dijadwalkan pada hari saat ini.
| |
Skenario di mana tugas yang dijadwalkan per jam bergantung pada tugas yang dijadwalkan per menit | Self-dependency tidak dikonfigurasikan untuk tugas yang dijadwalkan per menit. Instance yang dihasilkan dalam jam tertentu untuk tugas yang dijadwalkan per jam bergantung pada semua instance yang dihasilkan untuk tugas yang dijadwalkan per menit dalam jam yang sama. Self-dependency dikonfigurasikan untuk tugas yang dijadwalkan per menit dan tugas yang dijadwalkan per jam. Instance yang dihasilkan dalam jam tertentu untuk tugas yang dijadwalkan per jam bergantung pada instance yang dihasilkan untuk tugas yang dijadwalkan per menit dan waktu penjadwalannya paling dekat tetapi tidak lebih dari waktu penjadwalan instance saat ini dalam jam yang sama.
| |
Dependensi untuk tugas yang dijadwalkan per hari
Skema Dependensi | Deskripsi | Diagram |
Skenario di Mana Tugas yang Dijadwalkan Per Hari Bergantung pada Tugas Lain yang Dijadwalkan Per Hari dalam Siklus Penjadwalan yang Sama | Self-dependency Tidak Dikonfigurasikan untuk Tugas Leluhur yang Dijadwalkan Per Hari. Secara default, instance yang dihasilkan untuk tugas yang dijadwalkan per hari bergantung pada instance yang dihasilkan untuk tugas lain yang dijadwalkan per hari dalam siklus penjadwalan yang sama. Self-dependency Dikonfigurasikan untuk Tugas Leluhur yang Dijadwalkan Per Hari. Jika tugas yang dijadwalkan per hari bergantung pada tugas lain yang dijadwalkan per hari untuk mana self-dependency dikonfigurasikan, dependensi lintas siklus ada.
Catatan Jika Anda mengonfigurasi self-dependency untuk tugas yang dijadwalkan per hari, instance pertama yang dihasilkan pada hari saat ini mungkin bergantung pada instance terakhir yang dihasilkan pada hari sebelumnya. Jika instance terakhir yang dihasilkan pada hari sebelumnya belum selesai dijalankan, tugas yang dijadwalkan per hari tidak dapat dijadwalkan pada hari saat ini.
| |
Skenario di Mana Tugas yang Dijadwalkan Per Hari Bergantung pada Tugas yang Dijadwalkan Per Jam pada Hari Saat Ini | Self-dependency Tidak Dikonfigurasikan untuk Tugas yang Dijadwalkan Per Jam. Instance yang dihasilkan untuk tugas yang dijadwalkan per hari bergantung pada semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam pada hari saat ini. Setelah data dari semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam pada hari saat ini dihasilkan, tugas yang dijadwalkan per hari mulai membersihkan data yang dihasilkan pada hari saat ini.
Catatan Jika Anda ingin instance yang dihasilkan untuk tugas yang dijadwalkan per hari bergantung pada instance tertentu yang dihasilkan untuk tugas yang dijadwalkan per jam, Anda dapat mengonfigurasi self-dependency untuk tugas yang dijadwalkan per jam. Setelah instance tertentu selesai dijalankan, instance yang dihasilkan untuk tugas yang dijadwalkan per hari secara otomatis dijadwalkan pada waktu penjadwalan. Self-dependency Dikonfigurasikan untuk Tugas yang Dijadwalkan Per Jam. Tugas yang dijadwalkan per hari bergantung pada instance yang dihasilkan untuk tugas yang dijadwalkan per jam dan waktu penjadwalannya paling dekat tetapi tidak lebih dari waktu penjadwalan tugas yang dijadwalkan per hari.
| |
Skenario di Mana Tugas yang Dijadwalkan Per Hari Bergantung pada Tugas yang Dijadwalkan Per Jam atau Menit pada Hari Sebelumnya | Self-dependency Tidak Dikonfigurasikan untuk Tugas yang Dijadwalkan Per Jam atau Menit. Tugas yang dijadwalkan per hari pada hari saat ini bergantung pada semua instance yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit pada hari sebelumnya. Self-dependency Dikonfigurasikan untuk Tugas yang Dijadwalkan Per Jam atau Menit. Tugas yang dijadwalkan per hari pada hari saat ini bergantung pada instance terakhir yang dihasilkan untuk tugas yang dijadwalkan per jam atau menit pada hari sebelumnya.
| Diagram berikut memberikan contoh bagaimana tugas yang dijadwalkan per hari bergantung pada tugas yang dijadwalkan per jam pada hari sebelumnya. |
Dependensi untuk tugas yang dijadwalkan per menit
Skema dependensi | Deskripsi | Diagram |
Skenario di mana tugas yang dijadwalkan per menit bergantung pada tugas yang dijadwalkan per jam | Self-dependency tidak dikonfigurasikan untuk tugas yang dijadwalkan per menit. Instance yang dihasilkan untuk tugas yang dijadwalkan per menit bergantung pada instance yang dihasilkan untuk tugas yang dijadwalkan per jam dan waktu penjadwalannya paling dekat tetapi tidak lebih dari waktu penjadwalan instance saat ini.
Catatan Dalam hal ini, beberapa instance yang dihasilkan untuk tugas yang dijadwalkan per menit mungkin bergantung pada instance yang sama yang dihasilkan untuk tugas yang dijadwalkan per jam. Self-dependency dikonfigurasikan untuk tugas yang dijadwalkan per menit dan tugas yang dijadwalkan per jam. Instance tugas yang dijadwalkan per menit dalam siklus saat ini bergantung pada instance tugas dalam siklus sebelumnya, dan juga bergantung pada instance yang dihasilkan untuk tugas yang dijadwalkan per jam dan waktu penjadwalannya paling dekat tetapi tidak lebih dari waktu penjadwalan instance saat ini berdasarkan prinsip kedekatan waktu penjadwalan.
| |
Skenario di mana tugas yang dijadwalkan per menit bergantung pada tugas yang dijadwalkan per hari | | |
Dependensi pada tugas yang dijadwalkan per minggu, bulan, atau tahun
Jika tugas yang dijadwalkan per hari, jam, atau menit bergantung pada tugas yang dijadwalkan per minggu, bulan, atau tahun, instance dry-run dihasilkan untuk tugas yang dijadwalkan per minggu, bulan, atau tahun dalam periode waktu yang berada di luar waktu penjadwalan. Instance dry-run tidak menghasilkan data, menggunakan sumber daya, atau memblokir tugas turunan dari pelaksanaan.
Contoh skenario di mana tugas yang dijadwalkan per hari bergantung pada tugas yang dijadwalkan per minggu dan self-dependency tidak dikonfigurasikan untuk tugas tersebut:
Tugas yang dijadwalkan per minggu dijadwalkan untuk dijalankan setiap Senin dan Jumat. Instance dry-run dihasilkan untuk tugas tersebut setiap Selasa, Rabu, Kamis, Sabtu, dan Minggu. Ketika waktu penjadwalan instance dry-run tiba, status instance langsung ditetapkan sebagai berhasil, tetapi kode instance tidak dijalankan. Instance dry-run tidak memengaruhi pelaksanaan normal instance turunan.
Instance dihasilkan untuk tugas yang dijadwalkan per hari setiap hari dan bergantung pada instance yang dihasilkan untuk tugas yang dijadwalkan per minggu setiap hari, termasuk instance dry-run. Instance yang dihasilkan untuk tugas yang dijadwalkan per hari dapat dijadwalkan untuk dijalankan setelah instance yang dihasilkan untuk tugas yang dijadwalkan per minggu berhasil dijalankan setiap hari.
Lampiran 2: Penjadwalan alur kerja
Dalam DataWorks, Anda dapat mengonfigurasi node leluhur dan turunan untuk alur kerja yang berfungsi sebagai keseluruhan. Untuk informasi lebih lanjut tentang penjadwalan alur kerja, lihat Alur Kerja yang Dipicu Otomatis.