Share via


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 ExcludedRun 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 ve 10.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:

  1. Tür açılan menüsünde öğesini seçinIf/else condition.
  2. İ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.
  3. Açılan menüden bir boole işleci seçin.
  4. İ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:

  1. If/else condition DAG görünümünde görevi seçin ve + Görev ekle'ye tıklayın.
  2. 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).
  3. olarak değerlendirilen falsekoşul için yineleyin.

Örneğin, adlı bir değerde bad_recordsgeç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}} > 0bir 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.