Aracılığıyla paylaş


İş akışlarını zamanlama ve düzenleme

Databricks İş Akışları, Azure Databricks'te veri işleme görevlerini zamanlamanıza ve düzenlemenize olanak sağlayan araçlara sahiptir. Databricks İş Akışlarını Databricks İşleri'ni yapılandırmak için kullanırsınız.

Bu makalede, Databricks İşleri kullanılarak üretim iş yüklerini yönetmeyle ilgili kavramlar ve seçenekler tanıtılıyor.

Databricks İşleri nedir?

İş, Azure Databricks'te üretim iş yüklerini zamanlamaya ve düzenlemeye yönelik birincil birimdir. İşler bir veya daha fazla görevden oluşur. Görevler ve işler birlikte aşağıdakileri yapılandırmanıza ve dağıtmanıza olanak tanır:

  • Spark, SQL, OSS Python, ML ve rastgele kod gibi özel mantık.
  • Özel ortamlar ve kitaplıklar ile işlem kaynakları.
  • İş yüklerini çalıştırmak için zamanlamalar ve tetikleyiciler.
  • Görevler arasındaki denetim akışı için koşullu mantık.

İşler, görevler arasındaki ilişkileri tanımlamaya yönelik yordamsal bir yaklaşım sağlar. Delta Live Tables işlem hatları, veri kümeleri ve dönüşümler arasındaki ilişkileri tanımlamaya yönelik bildirim temelli bir yaklaşım sağlar. Delta Live Tables işlem hatlarını bir işe görev olarak ekleyebilirsiniz. İşler için bkz. Delta Live Tables işlem hattı görevi.

İşler, Databricks not defteri çalıştıran tek bir görevden koşullu mantık ve bağımlılıklarla çalışan binlerce göreve kadar karmaşıklık açısından farklılık gösterebilir.

İşleri nasıl yapılandırabilir ve çalıştırabilirim?

İşler kullanıcı arabirimini, Databricks CLI'yı kullanarak veya İşler API'sini çağırarak iş oluşturabilir ve çalıştırabilirsiniz. Kullanıcı arabirimini veya API'yi kullanarak, başarısız veya iptal edilmiş bir işi onarabilir ve yeniden çalıştırabilirsiniz. kullanıcı arabirimi, CLI, API ve bildirimleri (örneğin, e-posta, web kancası hedefi veya Slack bildirimleri) kullanarak iş çalıştırma sonuçlarını izleyebilirsiniz.

İşlerinizi yapılandırmak ve düzenlemek için kod olarak altyapı (IaC) yaklaşımını tercih ediyorsanız Databricks Varlık Paketleri'ni (DAB) kullanın. Paketler, işlerin ve görevlerin YAML tanımlarını içerebilir, Databricks CLI kullanılarak yönetilir ve farklı hedef çalışma alanlarında (geliştirme, hazırlama ve üretim gibi) paylaşılabilir ve çalıştırılabilir. İşlerinizi yapılandırmak ve yönetmek için DAB'leri kullanma hakkında bilgi edinmek için bkz . Databricks Varlık Paketleri.

Databricks CLI'yı kullanma hakkında bilgi edinmek için bkz . Databricks CLI nedir?. İşler API'sini kullanma hakkında bilgi edinmek için bkz. İşler API'sini.

bir iş için gereken en düşük yapılandırma nedir?

Azure Databricks'te tüm işler aşağıdakileri gerektirir:

  • Çalıştırılacak mantığı içeren kaynak kodu (databricks not defteri gibi).
  • Mantığı çalıştırmak için bir işlem kaynağı. İşlem kaynağı sunucusuz işlem, klasik işler işlem veya çok amaçlı işlem olabilir. Bkz . İşler için işlem yapılandırma.
  • İşin ne zaman çalıştırılacağı için belirtilen bir zamanlama. İsteğe bağlı olarak, zamanlama ayarlamayı atlayabilir ve işi el ile tetikleyebilirsiniz.
  • Benzersiz bir ad.

Not

Kodunuzu Databricks not defterlerinde geliştirirseniz, bu not defterini iş olarak yapılandırmak için Zamanla düğmesini kullanabilirsiniz. Bkz. Zamanlanmış not defteri işlerini oluşturma ve yönetme.

Görev nedir?

Görev, bir işte adım olarak çalıştırılacak bir mantık birimini temsil eder. Görevler karmaşıklık içinde değişebilir ve aşağıdakileri içerebilir:

  • Bir not defteri
  • A JAR
  • SQL sorguları
  • DLT işlem hattı
  • Başka bir iş
  • Denetim akışı görevleri

Aralarında bağımlılıklar belirterek görevlerin yürütme sırasını denetleyebilirsiniz. Görevleri sıralı veya paralel çalışacak şekilde yapılandırabilirsiniz.

İşler, görevlerin durum bilgileri ve meta verileriyle etkileşim kurar, ancak görev kapsamı yalıtılır. Zamanlanmış görevler arasında bağlamı paylaşmak için görev değerlerini kullanabilirsiniz. Bkz . Görevler arasında bilgi geçirmek için görev değerlerini kullanma.

İşler için hangi denetim akışı seçenekleri kullanılabilir?

İşlerde işleri ve görevleri yapılandırırken, tüm işin ve tek tek görevlerin nasıl çalıştığını denetleyebilen ayarları özelleştirebilirsiniz. Bu seçenekler şunlardır:

Tetikleyici türleri

bir işi yapılandırırken bir tetikleyici türü belirtmeniz gerekir. Aşağıdaki tetikleyici türleri arasından seçim yapabilirsiniz:

Ayrıca işinizi el ile tetiklemeyi de seçebilirsiniz, ancak bu genellikle aşağıdaki gibi belirli kullanım örnekleri için ayrılmıştır:

  • REST API çağrılarını kullanarak işleri tetikleyen bir dış düzenleme aracı kullanırsınız.
  • Nadiren çalışan ve veri kalitesi sorunlarının doğrulanması veya çözülmesi için el ile müdahale gerektiren bir işiniz var.
  • Geçiş gibi yalnızca bir veya birkaç kez çalıştırılması gereken bir iş yükü çalıştırıyorsunuz.

Bkz . Databricks İşleri için tetikleyici türleri.

Yeniden deneme sayısı

Yeniden denemeler, görev bir hata iletisiyle başarısız olursa belirli bir görevin kaç kez yeniden çalıştırılması gerektiğini belirtir. Hatalar genellikle geçicidir ve yeniden başlatma yoluyla çözülür. Azure Databricks'te Yapılandırılmış Akış ile şema evrimi gibi bazı özellikler, ortamı sıfırlamak ve bir iş akışının devam etmelerine izin vermek için yeniden denemelerle iş çalıştırdığınızı varsayar.

Bir görev için yeniden denemeler belirtirseniz, bir hatayla karşılaşırsa görev belirtilen sayıda yeniden başlatılır. Tüm iş yapılandırmaları görev yeniden denemelerini desteklemez. Bkz. Yeniden deneme ilkesi ayarlama.

Sürekli tetikleyici modunda çalışırken Databricks, üstel geri alma ile otomatik olarak yeniden denenir. Bkz . Sürekli işler için hatalar nasıl işlenir?.

Koşullu görevler varsa çalıştır

Diğer görevlerin sonucuna göre sonraki görevler için koşullular belirtmek üzere Eğer çalıştır görev türünü kullanabilirsiniz. İşinize görevler ekler ve yukarı akışa bağımlı görevler belirtirsiniz. Bu görevlerin durumuna bağlı olarak, çalıştırılacak bir veya daha fazla aşağı akış görevi yapılandırabilirsiniz. İşler aşağıdaki bağımlılıkları destekler:

  • Tümü başarılı oldu
  • En az bir başarılı
  • Hiçbiri başarısız oldu
  • Hepsi bitti
  • En az bir başarısız
  • Tümü başarısız oldu

Bkz. Görev bağımlılıklarını yapılandırma

If/else koşullu görevleri

Bir değere göre koşullu değerler belirtmek için If/else görev türünü kullanabilirsiniz. Bkz. If/else göreviyle işe dallanma mantığı ekleme.

taskValues İşler, mantığınızda tanımladığınız ve bir görevden iş ortamına bazı hesaplamaların veya durumların sonuçlarını döndürmenizi sağlar. , iş parametreleri veya dinamik değerler için taskValuesIf/else koşulları tanımlayabilirsiniz.

Azure Databricks, koşullular için aşağıdaki işlenenleri destekler:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

Ayrıca bkz:

Her görev için

For each Görevin her yinelemesine farklı bir parametre kümesi geçirerek bir döngüde başka bir görev çalıştırmak için görevi kullanın.

For each Görevi bir işe eklemek için iki görev tanımlama gerekir: For each Görev ve iç içe görev. İç içe yerleştirilmiş görev, görevin her yinelemesi For each için çalıştırılacak görevdir ve standart Databricks İşleri görev türlerinden biridir. İç içe göreve parametre geçirmek için birden çok yöntem desteklenir.

Bkz. Döngüde parametreli Azure Databricks iş görevi çalıştırma.

Süre eşiği

Belirtilen süre aşılırsa uyarı göndermek veya bir görevi veya işi durdurmak için süre eşiği belirtebilirsiniz. Bu ayarı ne zaman yapılandırmak isteyebileceğinize ilişkin örnekler şunlardır:

  • Asılı durumda takılmaya eğilimli görevleriniz var.
  • İş akışı için SLA aşılırsa mühendisi uyarmalısınız.
  • Beklenmeyen maliyetleri önlemek için, büyük bir kümeyle yapılandırılmış bir işi başarısız yapmak istiyorsunuz.

Bkz . Bir iş için beklenen tamamlanma süresini veya zaman aşımını yapılandırma ve Bir görev için beklenen tamamlanma süresini veya zaman aşımını yapılandırma.

Eşzamanlılık

Çoğu iş, 1 eşzamanlı işin varsayılan eşzamanlılığıyla yapılandırılır. Bu, yeni bir işin tetiklenmesi gereken zamana kadar önceki bir iş çalıştırması tamamlanmazsa sonraki iş çalıştırmasının atlandığı anlamına gelir.

Eşzamanlılığın artması için bazı kullanım örnekleri vardır, ancak çoğu iş yükünün bu ayarı değiştirmesi gerekmez.

Eşzamanlılığı yapılandırma hakkında daha fazla bilgi için bkz . Databricks İşleri kuyruğa alma ve eşzamanlılık ayarları.

İşleri nasıl izleyebilirim?

İşler kullanıcı arabirimi, devam eden çalıştırmalar dahil olmak üzere iş çalıştırmalarını görmenizi sağlar. Bkz. Databricks İşleri için izleme ve gözlemlenebilirlik.

bir iş veya görev başlatıldığında, tamamlandığında veya başarısız olduğunda bildirim alabilirsiniz. Bir veya daha fazla e-posta adresine veya sistem hedefine bildirim gönderebilirsiniz. bkz. İş olayları için e-posta ve sistem bildirimleri ekleme.

Sistem tabloları, hesabınızdaki iş etkinliğiyle ilgili kayıtları görüntüleyebileceğiniz bir lakeflow şema içerir. Bkz. İşler sistem tablosu başvurusu.

Ayrıca, hesabınızdaki işlerin maliyetini izlemek için iş sistemi tablolarını faturalama tablolarıyla birleştirebilirsiniz. Bkz. Sistem tablolarıyla iş maliyetlerini izleme.

Sınırlamalar

Şu sınırlamalar geçerlidir:

  • Çalışma alanı 2000 eşzamanlı görev çalıştırması ile sınırlıdır. Hemen başlatılamayan bir çalıştırma istediğinizde 429 Too Many Requests yanıtı döndürülür.
  • Bir çalışma alanının bir saat içinde oluşturabileceği iş sayısı 10000 ile sınırlıdır ("çalıştırma göndermeyi içerir"). Bu sınır ayrıca REST API ve not defteri iş akışları tarafından oluşturulan işleri de etkiler.
  • Çalışma alanı en fazla 12000 kayıtlı iş içerebilir.
  • Bir iş en fazla 100 görev içerebilir.

İş akışlarını program aracılığıyla yönetebilir miyim?

Databricks,aşağıdakiler dahil olmak üzere iş akışlarınızı program aracılığıyla zamanlamanıza ve düzenlemenize olanak sağlayan araçlara ve API'lere sahiptir:

Geliştirici araçları hakkında daha fazla bilgi için bkz. Geliştirici araçları.

Apache AirFlow ile iş akışı düzenleme

Apache Airflow kullanarak veri iş akışlarınızı yönetebilir ve zamanlayabilirsiniz. Airflow ile iş akışınızı bir Python dosyasında tanımlarsınız ve Airflow iş akışını zamanlamayı ve çalıştırmayı yönetir. Bkz. Apache Airflow ile Azure Databricks işlerini düzenleme.

Azure Data Factory ile iş akışı düzenleme

Azure Data Factory (ADF), otomatik veri işlem hatlarında veri depolama, taşıma ve işleme hizmetleri oluşturmanıza olanak tanıyan bir bulut veri tümleştirme hizmetidir. ADF'yi kullanarak bir Azure Databricks işini ADF işlem hattının bir parçası olarak düzenleyebilirsiniz.

ADF'den Azure Databricks'e kimlik doğrulaması da dahil olmak üzere ADF Web etkinliğini kullanarak iş çalıştırmayı öğrenmek için bkz . Azure Data Factory'den Azure Databricks işleri düzenlemesinden yararlanma.

ADF ayrıca Databricks not defterlerini, Python betiklerini veya ADF işlem hattındaki JAR'lerde paketlenmiş kodu çalıştırmaya yönelik yerleşik desteğe sahiptir.

Databricks not defterini bir ADF işlem hattında çalıştırmayı öğrenmek için bkz . Azure Data Factory'de Databricks not defteri etkinliğiyle Databricks not defteri çalıştırma ve ardından Databricks not defteri çalıştırarak verileri dönüştürme.

ADF işlem hattında Python betiğini çalıştırmayı öğrenmek için bkz . Azure Databricks'te Python etkinliği çalıştırarak verileri dönüştürme.

ADF işlem hattında JAR içinde paketlenmiş kodu çalıştırmayı öğrenmek için bkz . Azure Databricks'te JAR etkinliği çalıştırarak verileri dönüştürme.