Düğüm bağlam parametreleri, DataWorks'te görev düğümleri arasında dinamik veri aktarımı sağlayan temel bir mekanizmadır. Bir kaynak (upstream) düğüm, çıktı değerini bir veya daha fazla hedef (downstream) düğüme iletebilir. Hedef düğümler bu değerleri kodlarında referans alarak kaynak çıktısına göre davranışlarını dinamik olarak ayarlayabilir. Bu yaklaşım iş akışlarınızın esnekliğini ve otomasyonunu önemli ölçüde artırır.
Çalışma mantığı
Düğüm bağlam parametreleri, bir kaynak düğümde (üretici) bir çıktı parametresi tanımlanması ve bu parametrenin hedef düğümde (tüketici) referans alınması yoluyla değer aktarır.
-
Kaynak düğüm (üretici): Bir değer oluşturur ve bunu çıktı parametresi olarak sunar. Değer sunmanın iki yolu vardır:
Sabit veya değişken aktarma: Kaynak düğümün Node Output Parameters bölümünde bir parametre tanımlayın ve buna bir değer atayın. Değer,
'abc'gibi bir sabit veya${status}gibi bir sistem bağlam değişkeni olabilir.Atama sonucunu aktarma: Sistem, düğüm kodunun son sorgu sonucunu (örneğin
SELECT 'table_A';) yakalar, bunu outputs adlı yerleşik bir çıktı parametresine atar ve ardından bu parametrenin değerini hedef düğümlere iletir. Parametre değeri kodun çalışma zamanı sonucuna bağlıdır. Assignment nodes ve bazı SQL nodes bu yöntemi destekler.
-
Hedef düğüm (tüketici): Kaynak düğüm tarafından sağlanan değeri alır ve kullanır.
Giriş parametrelerini yapılandırma: Hedef düğümün Node Input Parameters bölümünde bir giriş parametresi ekleyin ve değer kaynağı olarak kaynak düğümün çıktı parametresini seçin.
Zamanlama bağımlılığı oluşturma: Giriş parametresini yapılandırdığınızda sistem, hedef düğümden kaynak düğüme otomatik olarak aynı döngü içinde bir zamanlama bağımlılığı oluşturur.
Kodda referans alma: Hedef düğümün kodunda değeri
${InputParameterName}biçimini kullanarak referans alın. Örneğin, kaynak düğümtable_Adeğerini iletirse, hedef koddakiSELECT * FROM ${input};ifadesi çalışma zamanındaSELECT * FROM table_A;haline gelir.
Sınırlamalar
Sürüm: Sorgu sonuçlarını aktarmak için kullanılan Add Assignment Parameter özelliğini bazı düğümler destekler. Bu özellik DataWorks Standard Edition veya sonraki bir sürümü gerektirir.
Düğüm Türü: Add Assignment Parameter özelliğini destekleyen düğüm türleri şunlardır: EMR Hive, EMR Spark SQL, ODPS Script, Hologres SQL, ADB for PostgreSQL, ADB for MySQL, ADB Spark SQL node, ClickHouse SQL, Lindorm Spark SQL node, Lindorm OLAP, Serverless Spark SQL node, Serverless Kyuubi node ve database nodes.
Yordam
Adım 1: Kaynak düğümü parametreleri dışarı aktaracak şekilde yapılandırma
DataWorks konsolu üzerinde oturum açın. Hedef bölgeye geçin. Sol gezinme bölmesinde seçeneklerine tıklayın. Açılan listeden istediğiniz çalışma alanını seçin ve Go to DataStudio seçeneğine tıklayın.
Data Development bölmesinde hedef kaynak düğüme çift tıklayarak düzenleyici sayfasını açın.
Tuvalin sağ tarafında Scheduling Settings seçeneğine tıklayın. Node Context Parameters bölümünde ihtiyacınıza göre Node Output Parameters yapılandırmak için bir yöntem seçin.
Yöntem 1: Sabit veya değişken aktarma
Output Parameters of This Node bölümünde Add Parameter seçeneğine tıklayın.
-
Parametre bilgilerini yapılandırın.
Parameter
Description
Parameter Name
Örneğin
my_paramgibi çıktı parametresi için özel bir ad.Parameter Value
Parametrenin değeri. Aşağıdaki türler desteklenir:
Sabit: Örneğin
hello.System context variables: Örneğin
${status}.Scheduling parameters: Örneğin
$bizdateveya${...}ve$[...]gibi özel zamanlama parametreleri.
Yöntem 2: Atama sonucunu aktarma
-
Atama düğümü kullanma
Bir atama düğümü (kaynak düğüm) MaxCompute SQL, Python 2 ve Shell dillerini destekler. Son sorgu veya çıktı sonucunu otomatik olarak düğümün çıktı parametresine (outputs) atar. Hedef düğümler bu parametreyi referans alarak atama düğümünün çıktı sonucunu alabilir. Daha fazla bilgi için bkz. Assignment node.
-
Atama parametresi kullanma
Atama parametrelerini destekleyen bir düğümde aşağıdaki adımları uygulayın:
Node Output Parameters bölümünde Add Assignment Parameter seçeneğine tıklayın.
Sistem otomatik olarak
outputsadlı bir çıktı parametresi ekler. Bu parametreyi yapılandırmanız gerekmez. Değeri, düğüm kodunun son sorgu sonucudur.-
Save seçeneğine tıklayın.
NotAdd Assignment Parameter seçeneğine tıkladıktan sonra atama parametresi, bu düğümün sorgu sonucunu onu referans alan tüm hedef düğümlere iletir. Sonuç boşsa bu düğümün çalıştırılması engellenmez ancak parametreyi referans alan hedef düğümler başarısız olabilir.
Belirli bir örnek için bkz. Assignment node konusundaki MaxCompute dil örneği.
Çıktı parametreleri silinebilir. Bir çıktı parametresini silmeden önce hiçbir hedef düğümün bu parametreyi kullanmadığından emin olun. Aksi takdirde hedef görevlerin yürütülmesi etkilenir.
Adım 2: Hedef düğümü parametreyi kullanacak şekilde yapılandırma
-
Giriş parametrelerini yapılandırma
Hedef düğümün düzenleyici sayfasını açın. yapılandırma sayfasına gidin. Node Input Parameters bölümünde Add Parameter seçeneğine tıklayın.
Giriş parametresini yapılandırın. Bu parametrenin Value Source değeri olarak bir kaynak düğümün çıktı parametresini seçin ve bu düğüm için bir Parameter Name tanımlayın.
Araç çubuğunda parametreyi kaydetmek için Save seçeneğine tıklayın.
-
Bağımlılıkları oluşturma
Kaynak düğümün çıktı parametresini ekledikten sonra sistem o düğüm üzerinde otomatik olarak aynı döngü içinde bir bağımlılık ekler. Manuel olarak yapılandırmanız gerekmez.
-
Parametreleri referans alma
Hedef düğümün kodunda parametreyi
${InputParameterName}biçimini kullanarak referans alın.Aşağıdaki örnekte bir Shell düğümünde
paramgiriş parametresinin nasıl referans alındığı gösterilmektedir:echo "The value from upnode is ${param}"Kaynak düğüm bir atama sonucunu hedef düğüme iletiyorsa parametre değeri genellikle iki boyutlu bir dizi veya virgülle ayrılmış tek boyutlu bir dizidir. Dizi içindeki değerlere aşağıdaki şekilde erişebilirsiniz:
-
Kaynak düğüm bir SQL düğümü ise (iki boyutlu dizi):
Satır: ${param}.
Hücre: ${param[j]}.
Kaynak düğüm bir Python/Shell düğümü ise (tek boyutlu dizi): Satır: ${param}.
Tüm dizinler 0'dan başlar.
-
Adım 3: Hata ayıklama ve çalıştırma
Bağlam parametreleri yalnızca bir iş akışı tarafından tetiklenen yinelenen örneklerde zamanlama sırasına göre aktarılır. Bir hedef düğümü bağımsız olarak çalıştırmak kaynak parametrelerinin alınamamasına ve görevin başarısız olmasına neden olur. Hata ayıklama sırasında kaynak düğümden başlayarak düğümleri iş akışı sırasına göre çalıştırmanız gerekir.
İş akışına dönün. İş akışının üzerindeki araç çubuğunda Run seçeneğine tıklayın veya hedef düğüme sağ tıklayıp Run to this node seçeneğini belirleyin.
Oluşturulan yönlendirilmiş döngüsüz graf (DAG) örneğinde sonucu beklediğiniz gibi olup olmadığını kontrol etmek ve operasyon günlüklerini görüntülemek için bir düğüme tıklayın.
Sistem bağlam değişkenleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|