Azure Databricks işinde görevleri koşullu olarak çalıştırma
Varsayılan olarak, bir iş görevi bağımlılıkları çalıştırıldığında ve tümü başarılı olduğunda çalışır, ancak Azure Databricks işinde görevleri yalnızca belirli koşullar karşılandığında çalışacak şekilde yapılandırabilirsiniz. Azure Databricks İşleri, görevleri koşullu olarak çalıştırmak için aşağıdaki yöntemleri destekler:
- Görevin bağımlılıklarının çalışma durumuna göre bir görevi çalıştırmak için Bağımlılıkları çalıştır seçeneğini belirtebilirsiniz. Örneğin, bağımlılıklarından bazıları veya tümü başarısız olsa bile bir görevi çalıştırarak işinizin hatalardan kurtulmasına ve çalışmaya devam etmesine olanak tanıyabilirsiniz
Run if
. - If/else koşulu görevi, boole ifadesinin sonuçlarına göre iş DAG'sinin bir bölümünü çalıştırmak için kullanılır. Bu
If/else condition
görev, işinize dallanma mantığı eklemenize olanak tanır. Örneğin, dönüştürme görevlerini yalnızca yukarı akış alma görevi yeni veri ekliyorsa çalıştırın. Aksi takdirde, veri işleme görevlerini çalıştırın.
Run if
Görevin koşulunu ekleme
Bir veya daha fazla bağımlılık içeren bir Run if
görevi düzenlerken bir koşul yapılandırabilirsiniz. Koşulu göreve eklemek için, görev yapılandırmasındaki Bağımlılıkları çalıştır açılan menüsünden koşulu seçin. Koşul Run if
, tüm görev bağımlılıkları tamamlandıktan sonra değerlendirilir. Ayrıca, bir Run if
veya daha fazla bağımlılık içeren yeni bir görev eklerken de koşul ekleyebilirsiniz.
Run if
koşul seçenekleri
Göreve aşağıdaki Run if
koşulları ekleyebilirsiniz:
- Tümü başarılı: Tüm bağımlılıklar çalıştırıldı ve başarılı oldu. Bu, bir görevi çalıştırmak için varsayılan koşuldur. Görev, koşul karşılanmamış gibi
Upstream failed
işaretlenir. - En az bir bağımlılık başarılı oldu: En az bir bağımlılık başarılı oldu. Görev, koşul karşılanmamış gibi
Upstream failed
işaretlenir. - Hiçbiri başarısız olmadı: Bağımlılıkların hiçbiri başarısız olmadı ve en az bir bağımlılık çalıştırıldı. Görev, koşul karşılanmamış gibi
Upstream failed
işaretlenir. - Tümü tamamlandı: Görev, bağımlı çalıştırmaların durumundan bağımsız olarak tüm bağımlılıkları çalıştırıldıktan sonra çalıştırılır. Bu koşul, bağımlı görevlerinin sonucuna bağlı olmadan çalıştırılacak bir görev tanımlamanızı sağlar.
- En az biri başarısız oldu: En az bir bağımlılık başarısız oldu. Görev, koşul karşılanmamış gibi
Excluded
işaretlenir. - Tümü başarısız oldu: Tüm bağımlılıklar başarısız oldu. Görev, koşul karşılanmamış gibi
Excluded
işaretlenir.
Dekont
- Hataları işlemek için yapılandırılan görevler, koşulları karşılanmamış gibi
Excluded
Run if
işaretlenir. Dışlanan görevler atlanır ve başarılı olarak kabul edilir. - Tüm görev bağımlılıkları dışlanırsa, koşulu ne olursa olsun
Run if
görev de dışlanır. - Bir görev çalıştırmasını iptal ederseniz, iptal aşağı akış görevlerine yayılır ve hataları işleyen bir
Run if
koşula sahip görevler çalıştırılır. Örneğin, bir görev çalıştırması iptal edildiğinde temizleme görevinin çalıştığını doğrulayın.
Azure Databricks İşleri iş çalıştırma durumunu nasıl belirler?
Azure Databricks İşleri, işin yaprak görevlerinin sonucuna bağlı olarak bir iş çalıştırmasının başarılı olup olmadığını belirler. Yaprak görev, aşağı akış bağımlılıkları olmayan bir görevdir. bir iş çalıştırması üç sonuçtan birine sahip olabilir:
- Başarılı: Tüm görevler başarılı oldu.
- Hatalarla başarılı oldu: Bazı görevler başarısız oldu, ancak tüm yaprak görevler başarılı oldu.
- Başarısız: Bir veya daha fazla yaprak görev başarısız oldu.
Görevle If/else condition
işinize dallanma mantığı ekleme
Boole If/else condition
ifadesini temel alan bir iş DAG'sinin bir bölümünü çalıştırmak için görevi kullanın. İfade bir boole işlecinden ve işlenenlerden oluşur. Burada işlenenler, iş ve görev parametresi değişkenlerini kullanarak işe veya görev durumuna başvurabilir veya görev değerlerini kullanabilir.
Dekont
- Sayısal ve sayısal olmayan değerler boole işlecine bağlı olarak farklı şekilde işlenir:
==
ve!=
işleçleri işlenenlerinin dize karşılaştırmasını gerçekleştirir. Örneğin,12.0 == 12
false olarak değerlendirilir.>
,>=
ve<=
işleçleri işlenenlerinin sayısal karşılaştırmalarını gerçekleştirir. Örneğin,12.0 >= 12
true olarak değerlendirilir ve10.0 >= 12
false olarak değerlendirilir.- bir işlenendeki görev değerlerine başvururken yalnızca sayısal, dize ve boole değerlerine izin verilir. Diğer türler koşul ifadesinin başarısız olmasına neden olur. Sayısal olmayan değer türleri dizeler olarak serileştirilir ve ifadelerde
If/else condition
dize olarak değerlendirilir. Örneğin, bir görev değeri boole değerine ayarlanırsa veya"false"
olarak"true"
serileştirilir.
Bir iş oluşturduğunuzda veya var olan bir işte bir görevi düzenlerken görev ekleyebilirsinizIf/else condition
. Bir If/else condition
görevi yapılandırmak için:
- Tür açılan menüsünde öğesini seçin
If/else condition
. - İlk Koşul metin kutusuna değerlendirilecek işleneni girin. İşlenen bir işe veya görev parametresi değişkenine ya da görev değerine başvurabilir.
- Açılan menüden bir boole işleci seçin.
- İkinci Koşul metin kutusuna koşulu değerlendirmek için değeri girin.
Bir If/else condition
görevde bağımlılıkları yapılandırmak için:
If/else condition
DAG görünümünde görevi seçin ve + Görev ekle'ye tıklayın.- Görevin ayrıntılarını girdikten sonra Bağlı'ya tıklayın ve görevin adının
If/else condition
nerede<task-name>
olduğunu seçin<task-name> (true)
. - olarak değerlendirilen
false
koşul için yineleyin.
Örneğin, adlı bir değerde bad_records
geçerli olmayan kayıtların sayısını koruyan adlı process_records
bir göreviniz olduğunu ve geçerli olmayan kayıtların bulunup bulunmadığına bağlı olarak işlemeyi dallamak istediğinizi varsayalım. Bu mantığı iş akışınıza eklemek için gibi {{tasks.process_records.values.bad_records}} > 0
bir If/else condition
ifadeyle bir görev oluşturabilirsiniz. Ardından koşulun sonuçlarına göre bağımlı görevler ekleyebilirsiniz.
Görev içeren If/else condition
bir işin çalıştırılması tamamlandıktan sonra, kullanıcı arabiriminde iş çalıştırma ayrıntılarını görüntülerken ifadenin sonucunu ve ifade değerlendirmesinin ayrıntılarını görüntüleyebilirsiniz.