Tüm Ürünler
Search
Belge Merkezi

DataWorks:Düğüm zamanlamasını yapılandırın

Son Güncelleme:Oct 05, 2026

Görevlerin (düğüm) DataWorks içindeki zamanlama özelliklerini; zamanlama, bağımlılıklar, çalışma ilkeleri ve parametreler dahil olmak üzere yapılandırarak görevlerin otomatik ve güvenilir şekilde çalışmasını sağlayın.

Temel kavramlar

Zamanlama özelliklerini yapılandırmadan önce aşağıdaki temel kavramları anlayın:

  • Görevler ve örnekler: Görev (veya düğüm), DataWorks'te geliştirilen iş mantığı kodudur. Bir görev, Scheduling Settings ayarlarına göre çalıştığında bir veya daha fazla çalışan örnek oluşturulur. Operation and Maintenance Center bölümünde günlükleri görüntüleme ve örnekleri yeniden çalıştırma gibi işlemlerle görevlerin çalışan örneklerini yönetip izleyebilirsiniz.

  • Periyodik örnekler: Periyodik olarak zamanlanan görevler için zamanlama sistemi, ilgili Scheduling Frequency (günlük veya saatlik gibi) değerlerine göre karşılık gelen periyodik örnekleri oluşturur. Örneğin, saatlik bir görev her gün 24 adet bekleyen saatlik örnek üretir.

  • İş tarihi: Bir örneğin veri işleme zamanıdır ve genellikle T-1 (dün) olarak ifade edilir. Örneğin, 2023-01-02'nin erken saatlerinde çalışan bir örneğin iş tarihi 2023-01-01'dir; bu da örneğin 1 Ocak verilerini işlediği anlamına gelir. Zamanlama parametresi değiştirmesi genellikle iş tarihine göre yapılır.

Ön koşullar

  • Bir düğüm oluşturulmuş olmalıdır. DataWorks, görev geliştirmek için düğümleri kullanır. Farklı altyapı görevleri farklı düğüm türleri olarak kapsüllenir. İhtiyaçlarınıza uygun düğümü seçin. Ayrıntılar için bkz. Düğüm Geliştirme Genel Bakış.

  • Scheduling Settings sayfasında Enable Periodic Scheduling anahtarı açık konumda olmalıdır. Etkinleştirildiğinde, workspace içindeki tüm görevler yapılandırmalarına göre otomatik olarak çalışabilir. Ayrıntılar için bkz. Workspace zamanlama özelliklerini yapılandırma.

Zamanlama özelliklerini yapılandırın

Düğüm düzenleyici sayfasının sağ tarafındaki Scheduling Settings panelinde, görevin otomatik davranışını tanımlamak için çeşitli özellikleri ayarlayın.

1. Zamanlama yapılandırma sayfasına gidin

  1. DataWorks konsolundaki şuraya gidin: Workspaces. Üst gezinme çubuğundan istediğiniz bölgeyi seçin. İstediğiniz workspace'i bulun ve Actions sütununda Shortcuts > Data Studio seçeneğini belirleyin.

  2. Data Studio'da hedef düğümü çift tıklayarak düzenleyici sayfasını açın.

  3. Düğüm düzenleyici sayfasının sağ tarafında Scheduling Settings seçeneğine tıklayarak yapılandırma panelini açın.

2. Zamanlama özelliklerini yapılandırın

Zamanlama yapılandırma paneli; Scheduling time, Scheduling Dependency, Scheduling Policy, Scheduling Parameters, Node output parameters ve Associated Role sekmelerini içerir. Bunları ihtiyaca göre yapılandırın.

Zamanlama zamanı: Görevin ne zaman çalışacağını tanımlayın

Bir görevin ne zaman ve ne sıklıkla otomatik olarak çalışacağını tanımlayın.

Not

Bir iş akışı içindeki düğümler için Scheduling time iş akışı tarafından tek tip olarak yapılandırılır ve burada değiştirilemez. Bağımsız düğümler için bunu burada yapılandırın.

Parametre

Açıklama

Scheduling Frequency

Bir görevin üretimde ne sıklıkta otomatik olarak çalışacağını tanımlar. Dakikalık, saatlik, günlük, haftalık, aylık ve yıllık dönemleri destekler.

  • Dakikalık zamanlama: Belirtilen günlük zaman aralığında ayarlanmış bir Time interval (N dakika) değerinde çalışır. Minimum granülerlik 1 dakikadır.

  • Saatlik zamanlama: Belirtilen günlük zaman aralığında ayarlanmış bir zaman aralığında (N saat) çalışır.

  • Günlük zamanlama: Her gün belirtilen saatte bir kez çalışır.

  • Haftalık zamanlama: Her haftanın belirtilen günlerinde belirli bir saatte bir kez çalışır.

  • Aylık zamanlama: Her ayın belirtilen günlerinde belirli bir saatte bir kez çalışır.

  • Yıllık zamanlama: Her yılın belirtilen günlerinde belirli bir saatte bir kez çalışır.

Effective Date

Otomatik görev zamanlaması için başlangıç ve bitiş tarihlerini ayarlayın. Geçerlilik süresi dolduğunda görev yeni periyodik örnekler oluşturmaz.

Cron expression

Bu ifade, kullanıcı arayüzünde yapılandırılan zaman özelliklerine göre otomatik olarak oluşturulur. Manuel yapılandırma gerekmez.

Not
  • Zamanlama zamanı ile gerçek çalışma zamanı: Burada yapılandırılan Scheduling time görevin beklenen başlangıç zamanıdır. Gerçek başlangıç zamanı ayrıca üst akış görevlerinin tamamlanması, kaynak grubu kullanılabilirliği ve diğer faktörlerden de etkilenir.

  • Zamanlanmayan günlerde kuru çalıştırma mekanizması: Haftalık, aylık veya yıllık görevler için, zamanlama için belirlenmeyen günlerde sistem bir kuru çalıştırma örneği oluşturur. Bu örnek hemen başarılı olur ve alt akış görevlerini tetikler ancak herhangi bir kod yürütmez veya hesaplama kaynağı tüketmez.

  • Zamanlama sıklığı bağımsızlığı: Bir görevin zamanlama sıklığı yalnızca kendi Scheduling Frequency değeri tarafından belirlenir ve üst akış görevlerinden bağımsızdır. DataWorks, farklı zamanlama dönemlerine sahip görevler arasında bağımlılıkları destekler (örneğin, saatlik bir görevin günlük bir göreve bağımlı olması).

Zamanlama bağımlılıkları: Görev yürütmesi için ön koşulları tanımlayın

Geçerli görev başlamadan önce hangi üst akış görevlerinin başarıyla tamamlanması gerektiğini tanımlayın. Bağımlılıkları doğru şekilde yapılandırmak, veri işleme sırasını ve çıktı doğruluğunu sağlamak açısından kritiktir.

DataWorks, veri bütünlüğünü sağlamak amacıyla kod içindeki tablo soy ağacına dayanarak üst akış bağımlılıklarını otomatik olarak ayrıştırır ve önerir. Ayrıca ihtiyaç duyduğunuzda bağımlılıkları manuel olarak ekleyebilir veya değiştirebilirsiniz.

image
Üst akış bağımlılıklarını yapılandırın
  1. Scheduling Dependency sekmesinde, sistem tarafından koddan ayrıştırılan üst akış bağımlılık düğümlerinin listesini görüntüleyin.

  2. Her üst akış düğümü için bağımlılık modunu seçin:

    • Aynı döngü bağımlılığı: Bugünkü (T) alt akış örneği, bugünkü (T) üst akış örneğine bağımlıdır. Bu en yaygın bağımlılıktır. Örneğin, günlük B Görevi günlük A Görevi tarafından üretilen bir tabloyu okuyorsa B Görevi, A Görevinin aynı döngüsüne bağımlı olmalıdır.

    • Önceki döngü bağımlılığı: Bugünkü (T) alt akış örneği, dünkü (T-1) üst akış örneğine bağımlıdır. Örneğin, bugünkü görev dünün agregasyon verilerini okumalıdır. Ayrıntılar için bkz. Çapraz döngü bağımlılıkları.

  3. (İsteğe bağlı) Sistem bağımlılıkları otomatik olarak ayrıştırmadıysa veya veri üretmeyen bir düğüme (Zero load node gibi) bağımlı olmanız gerekiyorsa manuel olarak yapılandırmak için Add upstream node seçeneğine tıklayın.

Not
  • İş akışı bağımlılıkları: Bir iş akışı içindeki düğüm bağımlılıkları iş akışı tarafından tek tip olarak yönetilir. Bu bölüm yalnızca bağımsız düğüm bağımlılığı yapılandırmasını kapsar. İş akışı zamanlama yapılandırması için bkz. İş akışı zamanlama özelliklerini yapılandırma.

  • Karmaşık bağımlılık senaryoları: DataWorks çeşitli karmaşık bağımlılık senaryolarını destekler. Yapılandırmadan önce ön ayarlı bağımlılık kurallarını anlamak için karmaşık bağımlılık yapılandırması belgesini inceleyin.

  • Desteklenmeyen bağımlılık senaryoları: DataWorks periyodik zamanlaması tarafından üretilmeyen veriler için (gerçek zamanlı eşitlenmiş tablolar, manuel olarak yüklenen tablolar veya boyut tabloları gibi) sistem veri güncelleme durumunu algılayamaz, bu nedenle zamanlama bağımlılıkları yapılandırılamaz. Bu tür senaryolarda, tek tip zamanlama orkestrasyonu için workspace kök düğümüne veya Zero load node öğesine bağımlı olun.

Zamanlama ilkesi: Görev çalışma davranışını ve kaynaklarını tanımlayın

Örneklerin nasıl oluşturulacağını, çalışma davranışını (zaman aşımı ve yeniden çalıştırma gibi) ve gereken kaynakları tanımlayın.

Parametre

Açıklama

Instance generation method

Bir görev dağıtıldıktan sonra periyodik örneklerin ne zaman oluşturulmaya başlayacağını tanımlayın.

  • T +1 generated next day: (Önerilen) Otomatik zamanlama, dağıtımdan sonraki gün başlar. Aynı gün yürütme için manuel olarak geri doldurma çalıştırın.

  • Instant generation after publishing: Otomatik zamanlama, dağıtım ile aynı gün başlar. Ayrıntılar için bkz. Dağıtımdan hemen sonra örnek oluşturma.

Scheduling Type

  • Normal scheduling: Görev normal şekilde çalışır, kodu yürütür ve kaynak tüketir.

  • Pause scheduling: Bir örnek oluşturulduktan sonra durumu “Donmuş” olarak ayarlanır. Yürütülmez ve tüm alt akış görevlerini engeller.

  • Empty Run Scheduling: Bir örnek oluşturulduktan sonra kod yürütmeden veya kaynak tüketmeden hemen başarılı olur ancak alt akış görevlerini normal şekilde tetikler.

Timeout Definition

Görev yürütmesi için maksimum süreyi ayarlayın. Bu sürenin ardından görev otomatik olarak sonlandırılır ve başarısız olarak işaretlenir. Varsayılan 3–7 gündür, maksimum manuel ayar 168 saattir (7 gün).

RUN Attribute

Görevin hangi koşullar altında manuel olarak yeniden çalıştırılabileceğini tanımlayın.

  • Allow Rerun After Success or Failure: Sonuçları etkilemeden tekrar tekrar yürütülebilen görevler (idempotent görevler) için.

  • Deny Rerun After Success, Allow Rerun After Failure: Başarılı olduktan sonra yeniden çalıştırmanın yan etkilere neden olacağı görevler için (yinelenen veri eklemesi gibi).

  • Deny Rerun After Success or Failure: Herhangi bir yeniden çalıştırmanın sonuçları etkileyeceği hassas görevler için (belirli veri eşitleme görevleri gibi).

    Not

    Bu seçeneği belirledikten sonra sistem, bir sistem hatası kurtarıldıktan sonra bile görevi otomatik olarak yeniden çalıştırmaz ve Auto Rerun upon Failure seçeneği etkinleştirilemez.

Auto Rerun upon Failure

Etkinleştirildiğinde, bir görev geçici sorunlar (ağ dalgalanmaları gibi) nedeniyle başarısız olursa sistem otomatik olarak yeniden dener ve zamanlama kararlılığını artırır.

  • Number of Reruns: 1 ile 10 kez arasında yapılandırılabilir.

  • Rerun interval: Yeniden çalıştırmalar arasındaki aralık, 1 ile 30 dakika arasında yapılandırılabilir.

Not

Zaman aşımı nedeniyle başarısız olan görevler otomatik yeniden çalıştırmaları tetiklemez.

Max Parallel Instances

Eşzamanlılık kontrolü için aynı görevin eşzamanlı çalışan örneklerinin maksimum sayısını sınırlar. Değer aralığı 1–10000'dir. Etkinleştirildiğinde, mevcut örnekler tamamlanana kadar fazla örnekler kuyruğa alınır.

Resource Group

Görev için zamanlama kaynak grubunu yapılandırın.

Compute Resource/Compute quota

Görev için hesaplama altyapısı kaynaklarını (MaxCompute Quota gibi) yapılandırın.

Datasets

Belirli düğüm türlerinin (Shell gibi) kodda yerel dosyalar gibi erişebilmesi için bir veri kümesini (Object Storage Service (OSS) veya Apsara File Storage (NAS) gibi) bağlayın. Mount Path, Advanced Settings (read method gibi) ve Read Only izinlerini yapılandırabilirsiniz.

Parametre yapılandırması: Görevler arasında dinamik değer aktarımını etkinleştirin

Parametreli yapılandırma, görev kodunu daha esnek hale getirerek görevler arasında dinamik değer aktarımını ve bağlam transferini sağlar.

Zamanlama parametreleri (giriş parametreleri)

Düğüm kodunda değişkenler kullanılıyorsa (${pt_time} gibi) buradan değer atayın. Değerler sabit sabitler veya DataWorks yerleşik parametrelerini kullanan dinamik ifadeler ($bizdate gibi) olabilir.

Manuel olarak tanımlamak için Add parameters seçeneğini kullanın veya otomatik tanımlama için Loading parameters in code seçeneğini kullanın. Ayrıca, parametre değerlerini üst akış düğümü çıkış parametreleriyle bağlamak için image simgesini kullanabilirsiniz.

Not

Zamanlama parametrelerinin nihai değeri, örneğin iş tarihi ve yapılandırılan zamanlama parametresi ifadeleri tarafından belirlenir.

En iyi uygulama: Bir görevi dağıttıktan sonra, yapılandırmanın beklentileri karşıladığından emin olmak için üretim ortamındaki Operation and Maintenance Center > Auto Triggered Task sayfasında zamanlama parametresi yapılandırmasını doğrulayın.

Düğüm çıkış parametreleri (çıkış parametreleri)

Geçerli düğümün çıktısını, alt akış düğümlerinin başvurabilmesi için anahtar-değer çiftleri olarak tanımlayın. Alt akış düğümleri, bu değerleri Scheduling Parameters yapılandırması aracılığıyla Associate Output Parameter of Ancestor Node yoluyla tüketebilir.

Parameter Value Constant (sabit dizeler) veya Variable (sistem veya özel giriş parametrelerine başvuran) olabilir.

Not
  • Desteklenen düğüm türleri: EMR Hive, EMR Spark SQL, ODPS Script, Hologres SQL, AnalyticDB for PostgreSQL ve MySQL.

  • Sorgu sonuçlarını iletme: Node output parameters yalnızca dize değerleri iletebilir. Üst akış SQL sorgusu sonuç kümelerini alt akışa iletmek için Atama düğümü kullanın.

İlişkili rol: Diğer cloud kaynaklarına güvenli erişim

Bir görev için bir RAM rolü belirtin; böylece görev çalışma zamanında Alibaba Cloud STS (Security Token Service) aracılığıyla dinamik olarak geçici erişim kimlik bilgileri elde ederek AccessKey çiftlerini kodda sabit olarak yazmadan diğer cloud kaynaklarına (OSS gibi) erişim sağlar ve güvenliği artırır.

Önemli

Sınırlamalar

  • Kaynak grubu kısıtlaması: Yalnızca serverless kaynak gruplarında çalışan düğümler desteklenir.

  • Düğüm türü kısıtlaması: Yalnızca Python, Shell, Notebook, PyODPS 2, PyODPS 3 ve PAI DLC düğümleri desteklenir.

1. Bir düğüm için ilişkili rolü yapılandırın
  1. Düğüm düzenleyici sayfasının sağ tarafında Run Configuration seçeneğini bulup tıklayın.

  2. Zamanlama yapılandırma panelinde Associated Role sekmesine geçin.

  3. RAM Role açılır listesinde hazırladığınız RAM rolünü seçin.

    Önemli

    Açılır liste boşsa veya istediğiniz rolü bulamıyorsanız RAM rolü yapılandırmasını tamamlamak için bkz. STS kullanarak ilişkili rol yapılandırma.

  4. Yapılandırma tamamlandıktan sonra düğümü gönderin. Bu yapılandırma yalnızca hata ayıklama çalıştırmaları için geçerlidir.

2. Çalıştırın ve doğrulayın
Önemli

PyODPS: Diğer cloud ürünlerine (OSS gibi) erişirken yapılandırılan RAM rolü kimliği kullanılır. Ancak MaxCompute verilerine erişirken yine de otomatik olarak hesaplama kaynakları için yapılandırılan erişim kimliği (proje düzeyi) kullanılır.

Zamanlama özelliklerini yapılandırın

Düğümde hata ayıklama yaptıktan sonra, Run Configuration ayarlarını Associated Role bölümünden Scheduling Settings bölümündeki Associated Role > RAM Role yoluna eşitleyin. Dağıtımdan sonra görev, belirtilen rolün kimliğiyle çalışır.

Run Configuration içinde özel bir görüntü yapılandırdıysanız ayarları zamanlama yapılandırmasına da eşitlemeniz gerekir.

Operation Center'da yürütme rolünü görüntüleyin

Görev tamamlandıktan sonra Operation and Maintenance Center içinde görev örneği ayrıntılarını görüntüleyerek belirtilen rolün başarıyla kullanıldığını doğrulayın.

  1. Şuraya gidin: Operation and Maintenance Center > Auto Triggered Task O&M > Cycle Examples.

  2. Çalıştırdığınız düğüm örneğini bulun ve ayrıntılar sayfasını açmak için tıklayın.

  3. Ayrıntılar sayfasında, görevin belirtilen RAM rolünü başarıyla kullandığını doğrulamak için Execution Identity alanını kontrol edin.

3. (İsteğe bağlı) Kodda geçici kimlik bilgilerini görüntüleyin veya kullanın

İlişkili bir rol yapılandırdıktan sonra görev, çalışma zamanında diğer cloud kaynaklarına erişmek için otomatik olarak RAM rolünün kimliğini kullanır. Çoğu durumda, kodunuzda açıkça kimlik bilgisi almadan görevi çalıştırabilirsiniz.

Geçici kimlik bilgilerini kodunuzda açıkça kullanmanız gerekiyorsa veya sistemin enjekte ettiği geçici kimlik bilgilerini görüntülemek istiyorsanız bunları aşağıdaki yöntemlerle elde edebilirsiniz. DataWorks, çalışma zamanında geçici kimlik bilgilerini otomatik olarak alır ve bunları ortam değişkenleri olarak çalışma zamanı ortamına enjekte eder.

Önemli

PAI DLC düğümleri, bu bölümde açıklanan şekillerde geçici kimlik bilgisi almayı desteklemez.

Yöntem 1: Ortam değişkenlerini okuma (Shell ve Python için önerilir)

Sistem aşağıdaki üç ortam değişkenini otomatik olarak ayarlar; bunları kodunuzda doğrudan okuyabilirsiniz.

  • LINKED_ROLE_ACCESS_KEY_ID: Geçici AccessKey ID.

  • LINKED_ROLE_ACCESS_KEY_SECRET: Geçici AccessKey gizli anahtarı.

  • LINKED_ROLE_SECURITY_TOKEN: Geçici güvenlik belirteci.

Kod örneği (Python):

Önemli

Bu örnek, oss2 yüklü özel bir Python görüntüsü gerektirir. Ayrıntılar için bkz. Özel görüntü.

import os
import oss2

# 1. Obtain temporary credentials from environment variables
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')

# Verify credentials obtained
if not all([access_key_id, access_key_secret, security_token]):
    raise Exception("Failed to get linked role credentials from environment variables.")

# 2. Initialize the OSS client with temporary credentials
# Assume the role has been granted access to '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. Access OSS resources using the client
try:
# List objects in the bucket
    for obj in oss2.ObjectIterator(bucket):
        print('object name: ' + obj.key)
    print("Successfully accessed OSS with linked role.")
except oss2.exceptions.OssError as e:
    print(f"Error accessing OSS: {e}")

Kod örneği (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}

# Access OSS. Replace regionID, bucket_name, and file_name with actual values
echo "ID:"$access_key_id
echo "token:"$security_token
ls -al /home/admin/usertools/tools/

# Example: Download a file from OSS to local test_dw.py using ossutil and print its content.
/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 "************************ Success ************************, printing"
cat test_dw.py

Yöntem 2: Credentials Client kullanma (Python için önerilir)

Kod örneği (Python):

Önemli

Bu örnek, oss2 ve alibabacloud_credentials yüklü özel bir Python görüntüsü gerektirir. Ayrıntılar için bkz. Özel görüntü.

from alibabacloud_credentials.client import Client as CredentialClient
import oss2

# 1. Use the SDK to automatically obtain credentials
# It automatically reads LINKED_ROLE_* credential info from environment variables
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("Failed to get linked role credentials via SDK.")

# 2. Initialize the OSS client with credentials
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. Access OSS
print("Listing objects in bucket...")
for obj in oss2.ObjectIterator(bucket):
    print(' - ' + obj.key)
print("Successfully accessed OSS with linked role via SDK.")

Sonraki adımlar: Gönderin ve dağıtın

Zamanlama yapılandırmaları, geliştirme ortamında ayarlandıktan hemen sonra etkili olmaz. Düğümün üretim ortamına gönderilmesi ve dağıtılması gerekir; böylece zamanlama sistemi periyodik örnekler oluşturur ve görevleri en son yapılandırmaya göre otomatik olarak çalıştırır.

İlgili belgeler