Yapılandırılmış Akış tetikleyici aralıklarını yapılandırma
Apache Spark Yapılandırılmış Akış verileri artımlı olarak işler; Toplu işleme için tetikleyici aralığını denetlemek, neredeyse gerçek zamanlı işleme, veritabanlarını saatte 5 dakikada bir yenileme veya bir gün veya hafta boyunca tüm yeni verileri toplu işleme gibi iş yükleri için Yapılandırılmış Akış'ı kullanmanıza olanak tanır.
Databricks Otomatik Yükleyicisi verileri 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.
Zamana bağlı tetikleyici aralıklarını belirtme
Yapılandırılmış Akış, zaman tabanlı tetikleyici aralıklarını "sabit aralıklı küçük işlem paketleri" olarak ifade eder. anahtar sözcüğünü processingTime
kullanarak dize olarak bir zaman süresi belirtin, örneğin .trigger(processingTime='10 seconds')
.
Çok küçük (on saniyeden kısa) bir trigger
aralık belirttiğinizde, sistem yeni verilerin gelip gelmediğini görmek için gereksiz denetimler gerçekleştirebilir. Gecikme süresi gereksinimlerini ve verilerin kaynağa ulaşma hızını dengelemek için işleme sürenizi yapılandırın.
Artımlı toplu işlem yapılandırma
Önemli
Databricks Runtime 11.3 LTS ve üzerinde Trigger.Once
bu ayar kullanım dışıdır. Databricks, tüm artımlı toplu işlem iş yükleri için kullanmanızı Trigger.AvailableNow
önerir.
Şu anda kullanılabilir tetikleyici seçeneği, tüm kullanılabilir kayıtları artımlı olarak işleyen bir toplu iş şeklinde kullanır ve toplu iş boyutunu maxBytesPerTrigger
gibi seçeneklerle yapılandırma yeteneğine sahiptir (boyutlandırma seçenekleri veri kaynağına göre değişir).
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 Lake | 10.4 LTS |
Otomatik Yükleyici | 10.4 LTS |
Apache Kafka | 10.4 LTS |
Kinesis | 13.1 |
Varsayılan tetikleyici aralığı nedir?
Yapılandırılmış Akış, varsayılan olarak 500 ms sabit aralıklı mikro toplu işlemleri kullanır. Databricks, yeni verilerin gelip gelmediğini denetleme ve küçük toplu işlemleri işleme ile ilişkili maliyetleri en aza indirmek için her zaman uyarlanmış trigger
bir değer belirtmenizi önerir.
Ç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.
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. Bu nedenle, tetikleyici aralığını değiştirdikten sonra önceden belirtilen ayarlarla bir mikro toplu işlem gözlemleyebilirsiniz.
Zaman tabanlı aralıklardan AvailableNow
kullanımına geçerken, bu, tüm mevcut kayıtları artımlı bir şekilde işlemeye başlamadan önce mikro toplu işlem yapma ile sonuçlanabilir.
Zaman AvailableNow
tabanlı bir zaman aralığına geçerken, bu durum son AvailableNow
iş tetiklendiğinde kullanılabilir olan tüm kayıtları işlemeye devam etmeyle sonuçlanabilir. Bu beklenen bir davranıştır.
Not
Artımlı bir toplu işlemle ilişkili sorgu hatasını kurtarmaya çalışıyorsanız, toplu iş yine de tamamlanması gerektiğinden tetikleyici aralığının değiştirilmesi bu sorunu çözmez. Databricks, sorunu çözmeye çalışmak için toplu işlemi işlemek için kullanılan işlem kapasitesini artırmanızı önerir. Nadir durumlarda, akışı yeni bir denetim noktasıyla yeniden başlatmanız gerekebilir.
Sürekli işleme modu nedir?
Apache Spark, Sürekli İşleme olarak bilinen ek bir tetikleyici aralığını destekler. Bu mod Spark 2.3'ten bu yana deneysel olarak sınıflandırılmıştır; bu işleme modelinin avantajlarını anladığınızdan emin olmak için Azure Databricks hesap ekibinize başvurun.
Bu sürekli işleme modunun DLT'de uygulandığı gibi sürekli işlemeyle hiç ilgili olmadığını unutmayın.