All Products
Search
Document Center

DataWorks:Mengonfigurasi penjadwalan node

Last Updated:Sep 10, 2026

Konfigurasikan properti penjadwalan untuk task (node) di DataWorks, termasuk jadwal, dependensi, kebijakan eksekusi, dan parameter agar task dapat berjalan secara otomatis dan andal.

Konsep inti

Sebelum mengonfigurasi properti penjadwalan, pahami konsep inti berikut:

  • Task dan instans: Task (atau node) adalah kode logika bisnis yang dikembangkan di DataWorks. Saat sebuah task dijalankan berdasarkan pengaturan Scheduling Settings-nya, satu atau beberapa instans berjalan akan dihasilkan. Di Operation and Maintenance Center, Anda dapat mengelola dan memantau instans task yang sedang berjalan, seperti melihat log dan menjalankan ulang instans.

  • Instans berkala: Untuk task yang dijadwalkan secara berkala, sistem penjadwalan akan menghasilkan frekuensi penjadwalan Scheduling Frequency yang sesuai (misalnya harian atau per jam), sehingga menghasilkan instans berkala yang bersesuaian. Misalnya, task per jam akan menghasilkan 24 instans tertunda setiap hari.

  • Tanggal bisnis: Waktu pemrosesan data suatu instans, biasanya T-1 (kemarin). Misalnya, instans yang berjalan pada dini hari tanggal 2023-01-02 memiliki tanggal bisnis 2023-01-01, artinya instans tersebut memproses data dari 1 Januari. Penggantian parameter penjadwalan umumnya didasarkan pada tanggal bisnis.

Prasyarat

  • Node telah dibuat. DataWorks menggunakan node untuk pengembangan task. Task engine yang berbeda dikemas sebagai jenis node yang berbeda. Pilih node yang sesuai dengan kebutuhan Anda. Untuk detailnya, lihat Ikhtisar Pengembangan Node.

  • Sakelar Enable Periodic Scheduling pada halaman Scheduling Settings telah diaktifkan. Setelah diaktifkan, semua task di ruang kerja dapat berjalan secara otomatis berdasarkan konfigurasinya. Untuk detailnya, lihat Mengonfigurasi properti penjadwalan ruang kerja.

Mengonfigurasi properti penjadwalan

Di panel Scheduling Settings di sisi kanan halaman editor node, atur berbagai properti untuk menentukan perilaku otomatis task.

1. Buka halaman konfigurasi penjadwalan

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

  2. Di Data Studio, klik ganda node target untuk membuka halaman editornya.

  3. Klik Scheduling Settings di sisi kanan halaman editor node untuk membuka panel konfigurasi.

2. Mengonfigurasi properti penjadwalan

Panel konfigurasi penjadwalan mencakup tab-tab berikut: Scheduling time, Scheduling Dependency, Scheduling Policy, Scheduling Parameters, Node output parameters, dan Associated Role. Konfigurasikan sesuai kebutuhan.

Scheduling time: Menentukan kapan task dijalankan

Tentukan kapan dan seberapa sering task dijalankan secara otomatis.

Catatan

Untuk node dalam alur kerja, Scheduling time dikonfigurasi secara seragam oleh alur kerja dan tidak dapat diubah di sini. Untuk node mandiri, konfigurasikan di sini.

Parameter

Deskripsi

Scheduling Frequency

Menentukan seberapa sering task dijalankan secara otomatis di lingkungan produksi. Mendukung periode per menit, per jam, harian, mingguan, bulanan, dan tahunan.

  • Penjadwalan per menit: Berjalan pada Time interval tertentu (N menit) dalam rentang waktu harian yang ditentukan. Granularitas minimum adalah 1 menit.

  • Penjadwalan per jam: Berjalan pada interval waktu tertentu (N jam) dalam rentang waktu harian yang ditentukan.

  • Penjadwalan harian: Berjalan sekali setiap hari pada waktu yang ditentukan.

  • Penjadwalan mingguan: Berjalan sekali pada hari-hari tertentu setiap minggu pada waktu tertentu.

  • Penjadwalan bulanan: Berjalan sekali pada hari-hari tertentu setiap bulan pada waktu tertentu.

  • Penjadwalan tahunan: Berjalan sekali pada hari-hari tertentu setiap tahun pada waktu tertentu.

Effective Date

Tentukan tanggal mulai dan akhir untuk penjadwalan task otomatis. Setelah periode validitas berakhir, task tidak lagi menghasilkan instans berkala baru.

Cron expression

Ekspresi ini dihasilkan secara otomatis berdasarkan properti waktu yang dikonfigurasi di UI. Tidak perlu dikonfigurasi secara manual.

Catatan
  • Waktu penjadwalan vs. waktu eksekusi aktual: Scheduling time yang dikonfigurasi di sini adalah waktu mulai yang diharapkan dari task. Waktu mulai aktual juga dipengaruhi oleh penyelesaian task hulu, ketersediaan kelompok sumber daya, dan faktor lainnya.

  • Mekanisme dry run pada hari non-jadwal: Untuk task mingguan, bulanan, atau tahunan, pada hari yang tidak ditentukan untuk penjadwalan, sistem akan menghasilkan instans dry run. Instans ini langsung berhasil dan memicu task hilir, tetapi tidak mengeksekusi kode apa pun atau mengonsumsi sumber daya komputasi.

  • Kemandirian frekuensi penjadwalan: Frekuensi penjadwalan task ditentukan semata-mata oleh Scheduling Frequency-nya sendiri, terlepas dari task hulu. DataWorks mendukung dependensi antara task dengan periode penjadwalan berbeda (misalnya, task per jam yang bergantung pada task harian).

Scheduling dependencies: Menentukan prasyarat eksekusi task

Tentukan task hulu mana yang harus berhasil diselesaikan sebelum task saat ini dapat dimulai. Mengonfigurasi dependensi dengan benar merupakan kunci untuk memastikan urutan pemrosesan data dan akurasi output.

DataWorks secara otomatis mengurai dan merekomendasikan dependensi hulu berdasarkan lineage tabel dalam kode untuk memastikan integritas data. Anda juga dapat menambahkan atau mengubah dependensi secara manual sesuai kebutuhan.

Mengonfigurasi dependensi hulu
  1. Di tab Scheduling Dependency, lihat daftar node dependensi hulu yang diurai oleh sistem dari kode.

  2. Pilih mode dependensi untuk setiap node hulu:

    • Dependensi siklus yang sama: Instans hilir hari ini (T) bergantung pada instans hulu hari ini (T). Ini adalah dependensi paling umum. Misalnya, jika Task B harian membaca tabel yang dihasilkan oleh Task A harian, Task B harus bergantung pada siklus yang sama dari Task A.

    • Dependensi siklus sebelumnya: Instans hilir hari ini (T) bergantung pada instans hulu kemarin (T-1). Misalnya, task hari ini perlu membaca data agregat kemarin. Untuk detailnya, lihat Dependensi lintas siklus.

  3. (Opsional) Jika sistem tidak secara otomatis mengurai dependensi, atau Anda perlu bergantung pada node yang tidak menghasilkan data (seperti Zero load node), klik Add upstream node untuk mengonfigurasi secara manual.

Catatan
  • Dependensi alur kerja: Dependensi node dalam alur kerja dikelola secara seragam oleh alur kerja. Bagian ini hanya mencakup konfigurasi dependensi node mandiri. Untuk konfigurasi penjadwalan alur kerja, lihat Mengonfigurasi properti penjadwalan alur kerja.

  • Skenario dependensi kompleks: DataWorks mendukung berbagai skenario dependensi kompleks. Sebelum mengonfigurasi, tinjau dokumentasi konfigurasi dependensi kompleks untuk memahami aturan dependensi yang telah ditentukan.

  • Skenario dependensi yang tidak didukung: Untuk data yang tidak dihasilkan oleh penjadwalan berkala DataWorks (seperti tabel yang disinkronkan secara real-time, tabel yang diunggah secara manual, atau tabel dimensi), sistem tidak dapat mendeteksi status pembaruan data, sehingga dependensi penjadwalan tidak dapat dikonfigurasi. Dalam skenario tersebut, bergantunglah pada node root ruang kerja atau Zero load node untuk orkestrasi penjadwalan terpadu.

Scheduling policy: Menentukan perilaku eksekusi dan sumber daya task

Tentukan cara instans dihasilkan, perilaku eksekusi (seperti timeout dan rerun), serta sumber daya yang diperlukan.

Parameter

Deskripsi

Instance generation method

Tentukan kapan instans berkala mulai dihasilkan setelah task diterapkan.

  • T +1 generated next day: (Direkomendasikan) Penjadwalan otomatis dimulai sehari setelah penerapan. Untuk eksekusi hari yang sama, jalankan secara manual backfill.

  • Instant generation after publishing: Penjadwalan otomatis dimulai pada hari yang sama dengan penerapan. Untuk detail selengkapnya, lihat Hasilkan instans segera setelah penerapan.

Scheduling Type

  • Normal scheduling: Task berjalan normal, mengeksekusi kode dan mengonsumsi sumber daya.

  • Pause scheduling: Setelah instans dihasilkan, statusnya diatur menjadi “Frozen”. Instans tidak dieksekusi dan memblokir semua task hilir.

  • Empty Run Scheduling: Setelah instans dihasilkan, instans langsung berhasil tanpa mengeksekusi kode atau mengonsumsi sumber daya, tetapi tetap memicu task hilir secara normal.

Timeout Definition

Tentukan durasi maksimum untuk eksekusi task. Setelah waktu ini habis, task akan dihentikan secara otomatis dan ditandai sebagai gagal. Nilai default adalah 3–7 hari, dengan pengaturan manual maksimum 168 jam (7 hari).

RUN Attribute

Tentukan kondisi di mana task dapat dijalankan ulang secara manual.

  • Allow Rerun After Success or Failure: Untuk task yang dapat dieksekusi berulang kali tanpa memengaruhi hasil (task idempoten).

  • Deny Rerun After Success, Allow Rerun After Failure: Untuk task yang jika dijalankan ulang setelah berhasil akan menyebabkan efek samping (seperti penyisipan data duplikat).

  • Deny Rerun After Success or Failure: Untuk task sensitif di mana rerun apa pun akan memengaruhi hasil (seperti task sinkronisasi data tertentu).

    Catatan

    Setelah memilih opsi ini, sistem tidak akan menjalankan ulang task secara otomatis bahkan setelah kegagalan sistem pulih, dan opsi Auto Rerun upon Failure tidak dapat diaktifkan.

Auto Rerun upon Failure

Jika diaktifkan, jika task gagal karena masalah sementara (seperti fluktuasi jaringan), sistem akan mencoba ulang secara otomatis untuk meningkatkan stabilitas penjadwalan.

  • Number of Reruns: Dapat dikonfigurasi dari 1 hingga 10 kali.

  • Rerun interval: Interval antar rerun, dapat dikonfigurasi dari 1 hingga 30 menit.

Catatan

Task yang gagal karena timeout tidak memicu rerun otomatis.

Max Parallel Instances

Membatasi jumlah maksimum instans konkuren dari task yang sama untuk kontrol konkurensi. Rentang nilai adalah 1–10000. Saat diaktifkan, instans berlebih akan mengantri hingga instans yang ada selesai.

Resource Group

Konfigurasikan kelompok sumber daya penjadwalan untuk task.

Compute Resource/Compute quota

Konfigurasikan sumber daya mesin komputasi (seperti Kuota MaxCompute) untuk task.

Datasets

Memasang dataset (seperti Object Storage Service (OSS) atau Apsara File Storage (NAS)) ke jenis node tertentu (seperti Shell) sehingga dapat diakses seperti file lokal dalam kode. Anda dapat mengonfigurasi Mount Path, Advanced Settings (seperti read method), dan izin Read Only.

Konfigurasi parameter: Mengaktifkan pengiriman nilai dinamis antar task

Konfigurasi berparameter membuat kode task lebih fleksibel, memungkinkan pengiriman nilai dinamis dan transfer konteks antar task.

Scheduling parameters (parameter input)

Jika variabel digunakan dalam kode node (seperti ${pt_time}), tetapkan nilainya di sini. Nilai dapat berupa konstanta tetap atau ekspresi dinamis menggunakan parameter bawaan DataWorks (seperti $bizdate).

Gunakan Add parameters untuk menentukan secara manual, atau gunakan Loading parameters in code untuk identifikasi otomatis. Selain itu, Anda dapat menggunakan ikon image untuk mengikat nilai parameter dengan parameter output node hulu.

Catatan

Nilai akhir parameter penjadwalan ditentukan oleh tanggal bisnis instans dan ekspresi parameter penjadwalan yang dikonfigurasi.

Praktik terbaik: Setelah menerapkan task, verifikasi konfigurasi parameter penjadwalan di halaman Operation and Maintenance Center > Auto Triggered Task di lingkungan produksi untuk memastikan konfigurasi sesuai harapan.

Node output parameters (parameter output)

Tentukan output node saat ini sebagai pasangan kunci-nilai untuk dirujuk oleh node hilir. Node hilir dapat mengonsumsi nilai-nilai ini melalui konfigurasi Scheduling Parameters dengan Associate Output Parameter of Ancestor Node.

Parameter Value dapat berupa Constant (string tetap) atau Variable (merujuk pada parameter input sistem atau kustom).

Catatan
  • Jenis node yang didukung: EMR Hive, EMR Spark SQL, ODPS Script, Hologres SQL, AnalyticDB for PostgreSQL, dan MySQL.

  • Mengirimkan hasil kueri: Node output parameters hanya dapat mengirimkan nilai string. Untuk mengirimkan set hasil kueri SQL hulu ke hilir, gunakan Assignment node.

Associated role: Mengakses sumber daya cloud lain secara aman

Tentukan peran RAM untuk task agar secara dinamis mendapatkan kredensial akses temporary melalui Alibaba Cloud STS (Security Token Service) saat runtime, memungkinkan akses ke sumber daya cloud lain (seperti OSS) tanpa hardcoding Pasangan Kunci Akses, sehingga meningkatkan keamanan.

Penting

Batasan

  • Batasan kelompok sumber daya: Hanya didukung untuk node yang berjalan di kelompok sumber daya arsitektur tanpa server.

  • Batasan jenis node: Hanya didukung untuk node Python, Shell, Notebook, PyODPS 2, PyODPS 3, dan PAI DLC.

1. Mengonfigurasi peran terkait untuk node
  1. Di sisi kanan halaman editor node, temukan dan klik Run Configuration.

  2. Di panel konfigurasi penjadwalan, beralih ke tab Associated Role.

  3. Di daftar drop-down RAM Role, pilih peran RAM yang telah Anda siapkan.

    Penting

    Jika daftar drop-down kosong atau Anda tidak menemukan peran yang diinginkan, lihat Mengonfigurasi peran terkait menggunakan STS untuk menyelesaikan konfigurasi peran RAM.

  4. Setelah konfigurasi selesai, kirimkan node. Konfigurasi ini hanya berlaku untuk debug runs.

2. Jalankan dan verifikasi
Penting

PyODPS: Saat mengakses produk cloud lain (seperti OSS), identitas peran RAM yang dikonfigurasi akan digunakan. Namun, saat mengakses data MaxCompute, identitas akses yang dikonfigurasi untuk sumber daya komputasi (tingkat proyek) tetap digunakan secara otomatis.

Mengonfigurasi properti penjadwalan

Setelah men-debug node, sinkronkan Run Configuration dari Associated Role ke Scheduling Settings di Associated Role > RAM Role. Setelah penerapan, task akan berjalan dengan identitas peran yang ditentukan.

Jika Anda mengonfigurasi custom image di Run Configuration, Anda juga harus menyinkronkan pengaturannya ke konfigurasi penjadwalan.

Melihat peran eksekusi di Pusat Operasi

Setelah task selesai, di Operation and Maintenance Center, tampilkan detail instans task untuk memastikan peran yang ditentukan berhasil digunakan.

  1. Buka Operation and Maintenance Center > Auto Triggered Task O&M > Cycle Examples.

  2. Temukan instans node yang Anda jalankan dan klik untuk membuka halaman detailnya.

  3. Di halaman detail, periksa bidang Execution Identity untuk memastikan task berhasil menggunakan peran RAM yang ditentukan.

3. (Opsional) Menampilkan atau menggunakan kredensial temporary dalam kode

Setelah Anda mengonfigurasi peran terkait, task secara otomatis menggunakan identitas peran RAM untuk mengakses sumber daya cloud lain saat runtime. Dalam kebanyakan kasus, Anda dapat menjalankan task tanpa secara eksplisit mendapatkan kredensial dalam kode Anda.

Jika Anda perlu secara eksplisit menggunakan kredensial temporary dalam kode atau ingin melihat kredensial temporary yang disuntikkan oleh sistem, Anda dapat memperolehnya dengan metode berikut. DataWorks secara otomatis memperoleh kredensial temporary saat runtime dan menyuntikkannya ke lingkungan runtime sebagai Variabel lingkungan.

Penting

Node PAI DLC tidak mendukung memperoleh kredensial temporary dengan cara yang dijelaskan dalam bagian ini.

Metode 1: Membaca variabel lingkungan (direkomendasikan untuk Shell dan Python)

Sistem secara otomatis menetapkan tiga variabel lingkungan berikut, yang dapat Anda baca langsung dalam kode Anda.

  • LINKED_ROLE_ACCESS_KEY_ID: ID AccessKey temporary.

  • LINKED_ROLE_ACCESS_KEY_SECRET: Rahasia AccessKey temporary.

  • LINKED_ROLE_SECURITY_TOKEN: Token keamanan temporary.

Contoh kode (Python):

Penting

Contoh ini memerlukan custom image Python dengan oss2 yang terinstal. Untuk detailnya, lihat Custom image.

import os
import oss2

# 1. Dapatkan kredensial temporary dari variabel lingkungan
access_key_id = os.environ.get('LINKED_ROLE_ACCESS_KEY_ID')
access_key_secret = os.environ.get('LINKED_ROLE_ACCESS_KEY_SECRET')
security_token = os.environ.get('LINKED_ROLE_SECURITY_TOKEN')

# Verifikasi kredensial yang diperoleh
if not all([access_key_id, access_key_secret, security_token]):
    raise Exception("Gagal mendapatkan kredensial peran terkait dari variabel lingkungan.")

# 2. Inisialisasi klien OSS dengan kredensial temporary
# Asumsikan peran telah diberikan akses ke 'your-bucket-name'
auth = oss2.StsAuth(access_key_id, access_key_secret, security_token)
bucket = oss2.Bucket(auth, 'http://oss-<regionID>-internal.aliyuncs.com', 'your-bucket-name')

# 3. Akses sumber daya OSS menggunakan klien
try:
# Daftar objek dalam bucket
    for obj in oss2.ObjectIterator(bucket):
        print('nama objek: ' + obj.key)
    print("Berhasil mengakses OSS dengan peran terkait.")
except oss2.exceptions.OssError as e:
    print(f"Kesalahan mengakses OSS: {e}")

Contoh kode (Shell):

#!/bin/bash
access_key_id=${LINKED_ROLE_ACCESS_KEY_ID}
access_key_secret=${LINKED_ROLE_ACCESS_KEY_SECRET}
security_token=${LINKED_ROLE_SECURITY_TOKEN}

# Akses OSS. Ganti regionID, bucket_name, dan file_name dengan nilai aktual
echo "ID:"$access_key_id
echo "token:"$security_token
ls -al /home/admin/usertools/tools/

# Contoh: Unduh file dari OSS ke test_dw.py lokal menggunakan ossutil dan cetak isinya.
/home/admin/usertools/tools/ossutil64 cp --access-key-id $access_key_id --access-key-secret $access_key_secret --sts-token $security_token --endpoint http://oss-<regionID>-internal.aliyuncs.com oss://<bucket_name>/<file_name> test_dw.py
echo "************************ Berhasil ************************, mencetak"
cat test_dw.py
Metode 2: Gunakan Credentials Client (direkomendasikan untuk Python)

Contoh kode (Python):

Penting

Contoh ini memerlukan custom image Python dengan oss2 dan alibabacloud_credentials yang terinstal. Untuk detailnya, lihat Custom image.

from alibabacloud_credentials.client import Client as CredentialClient
import oss2

# 1. Gunakan SDK untuk secara otomatis mendapatkan kredensial
# Secara otomatis membaca info kredensial LINKED_ROLE_* dari variabel lingkungan
cred_client = CredentialClient()
credential = cred_client.get_credential()

access_key_id = credential.get_access_key_id()
access_key_secret = credential.get_access_key_secret()
security_token = credential.get_security_token()

if not all([access_key_id, access_key_secret, security_token]):
    raise Exception("Gagal mendapatkan kredensial peran terkait melalui SDK.")

# 2. Inisialisasi klien OSS dengan kredensial
auth = oss2.StsAuth(access_key_id, access_key_secret, security_token)
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'your-bucket-name')

# 3. Akses OSS
print("Mendaftar objek dalam bucket...")
for obj in oss2.ObjectIterator(bucket):
    print(' - ' + obj.key)
print("Berhasil mengakses OSS dengan peran terkait melalui SDK.")

Langkah selanjutnya: Kirim dan terapkan

Konfigurasi penjadwalan tidak langsung berlaku setelah diatur di lingkungan pengembangan. Node harus dikirimkan dan diterapkan ke lingkungan produksi agar sistem penjadwalan dapat menghasilkan instans berkala dan menjalankan task secara otomatis berdasarkan konfigurasi terbaru.

Dokumentasi terkait