Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Databricks'te Yapılandırılmış Akış için tetikleyici aralıklarının nasıl yapılandırıldığı açıklanmaktadır.
Apache Spark Yapılandırılmış Akış verileri artımlı olarak işler. Tetikleyici aralıkları, Yapılandırılmış Akış'ın yeni verileri ne sıklıkta denetlediğini kontrol eder. Neredeyse gerçek zamanlı işleme, zamanlanmış veritabanı yenilemeleri için tetikleyici aralıkları yapılandırabilir veya bir gün veya hafta boyunca tüm yeni verileri toplu işleyebilirsiniz.
Otomatik Yükleyici nedir? veri yüklemek için Yapılandırılmış Akış'ı kullandığından, tetikleyicilerin nasıl çalıştığını anlamak, istenen sıklıkta veri alırken maliyetleri denetleme konusunda size en büyük esnekliği sağlar.
Tetikleyici modlara genel bakış
Aşağıdaki tabloda, Yapılandırılmış Akış'ta kullanılabilen tetikleyici modları özetlemektedir:
| Tetikleyici Modu | Sözdizimi Örneği (Python) | En Uygun |
|---|---|---|
| Belirtilmemiş (Varsayılan) | Geçerli Değil | 3-5 saniyelik gecikme süresiyle genel amaçlı akış. 0 ms aralıklarla processingTime tetikleyicisine eşdeğerdir. Akış işleme, yeni veriler geldiği sürece sürekli olarak çalışır. |
| İşleme Süresi | .trigger(processingTime='10 seconds') |
Maliyet ve performansı dengeleme. Sistemin verileri çok sık denetlemesini engelleyerek ek yükü azaltır. |
| Şimdi Kullanılabilir | .trigger(availableNow=True) |
Zamanlanmış artımlı toplu işlem. Akış işinin tetiklenmesi sırasında mümkün olan en fazla veriyi işler. |
| Gerçek zamanlı mod | .trigger(realTime='5 minutes') |
Sahtekarlık algılama veya gerçek zamanlı kişiselleştirme gibi saniyenin altında işlem gerektiren son derece düşük gecikme süresine neden olan operasyonel iş yükleri. Genel Önizleme. '5 dakika', mikro toplu işlemin uzunluğunu gösterir. Sorgu derlemesi gibi toplu iş başına ek yükü en aza indirmek için 5 dakika kullanın. |
| Devamlı | .trigger(continuous='1 second') |
Desteklenmiyor. Bu, Spark OSS'de bulunan deneysel bir özelliktir. Bunun yerine gerçek zamanlı modu kullanın. |
processingTime: Zamana bağlı tetikleyici aralıkları
Yapılandırılmış Akış, zaman tabanlı tetikleyici aralıklarını "sabit aralıklı mikro toplu işler" olarak ifade eder. anahtar sözcüğünü processingTime kullanarak dize olarak bir zaman süresi belirtin, örneğin .trigger(processingTime='10 seconds').
Bu aralığın yapılandırması, sistemin yeni verilerin ulaşılıp ulaşmadığını görmek için ne sıklıkta denetim gerçekleştirdiğini belirler. Gecikme süresi gereksinimlerini ve verilerin kaynağa ulaşma hızını dengelemek için işleme sürenizi yapılandırın.
AvailableNow: Artımlı toplu işlem
Önemli
Databricks Runtime 11.3 LTS ve sonraki Trigger.Once sürümlerinde kullanım dışıdır. Tüm artımlı toplu işleme iş yükleri için kullanın Trigger.AvailableNow .
AvailableNow tetikleyici seçeneği, maxBytesPerTrigger gibi seçeneklerle toplu iş boyutunu yapılandırma olanağıyla, kullanılabilir tüm kayıtları artımlı bir toplu iş olarak tüketir. Boyutlandırma seçenekleri veri kaynağına göre farklılık gösterir.
Desteklenen veri kaynakları
Azure Databricks, birçok Yapılandırılmış Akış kaynağından artımlı toplu işlem için Trigger.AvailableNow’ın kullanılmasını destekler. Aşağıdaki tablo, her veri kaynağı için gereken desteklenen en düşük Databricks Runtime sürümünü içerir:
| Kaynak | En Düşük Databricks Runtime sürümü |
|---|---|
| Dosya kaynakları (JSON, Parquet vb.) | 9.1 LTS |
| Delta Gölü | 10,4 LTS |
| Otomatik Yükleyici | 10,4 LTS |
| Apache Kafka | 10,4 LTS |
| Kinezi | 13.1 |
realTime: Ultra düşük gecikme süreli operasyonel iş yükleri
Önemli
Bu özellik Genel Önizleme aşamasındadır.
Yapılandırılmış Akış için gerçek zamanlı mod, kuyrukta 1 saniyenin altında ve yaygın durumlarda 300 ms civarında uçtan uca gecikme süresine ulaşır. Gerçek zamanlı modu etkili bir şekilde yapılandırma ve kullanma hakkında daha fazla bilgi için bkz. Yapılandırılmış Akış'ta gerçek zamanlı mod.
Apache Spark'ın Sürekli İşlem olarak bilinen ek bir tetikleyici aralığı vardır. Bu mod Spark 2.3'ten bu yana deneysel olarak sınıflandırılmıştır. Azure Databricks bu modu desteklemez veya önermez. Düşük gecikme süreli kullanım örnekleri için bunun yerine gerçek zamanlı modu kullanın.
Not
Bu sayfadaki sürekli işleme modu , Lakeflow Spark Bildirimli İşlem Hatlarında sürekli işleme ile ilişkili değildir.
Çalıştırmalar arasındaki tetikleyici aralıklarını değiştirme
Aynı denetim noktasını kullanırken çalıştırmalar arasındaki tetikleyici aralığını değiştirebilirsiniz.
Aralıkları değiştirirken davranış
Eğer bir mikro toplu iş işlenirken Structured Streaming işlemi durursa, yeni tetikleyici aralığı devreye girmeden önce bu mikro toplu işin tamamlanması gerekir. Sonuç olarak, tetikleyici aralığını değiştirdikten sonra önceden belirtilen ayarlarla bir mikro toplu işlem gözlemleyebilirsiniz. Geçiş sırasında beklenen davranış aşağıda açıklanmaktadır:
Zamana bağlı bir aralıktan geçiş: Mikro toplu işlem, tüm kullanılabilir kayıtları artımlı toplu işlem olarak işlemekten önce işleyebilir.
Zaman tabanlı aralığa
AvailableNow'den geçiş: SonAvailableNowişi tetiklendiğinde mevcut olan tüm kayıtlar üzerinde işleme devam edebilir. Bu beklenen bir davranıştır.
Sorgu hatalarından geri kazanma
Not
Artımlı toplu işlemle ilişkili sorgu hatasından kurtulmaya çalışıyorsanız, toplu iş yine de tamamlanması gerektiğinden tetikleyici aralığının değiştirilmesi bu sorunu çözmez. Sorunu çözmeye çalışmak için toplu işlemi işlemek için kullanılan işlem kapasitesinin ölçeğini artırın. Nadir durumlarda, akışı yeni bir denetim noktasıyla yeniden başlatmanız gerekebilir.