Alma toplu işlemi ilkesi

Genel Bakış

Kuyruğa alınan alma işlemi sırasında hizmet, alımdan önce küçük giriş veri öbeklerini birlikte toplu hale getirerek aktarım hızını iyileştirir. Toplu işlem, kuyruğa alınan alma işlemi tarafından tüketilen kaynakları azaltır ve toplu işlenmemiş alım tarafından üretilen küçük veri parçalarını iyileştirmek için alım sonrası kaynakları gerektirmez.

Almadan önce toplu işlem yapmanın dezavantajı zorlamalı gecikmedir. Bu nedenle, sorgu için hazır olan veriler daha büyük olana kadar uçtan uca veri alımı isteme süresi.

İlkeyi IngestionBatching tanımlarken aktarım hızını iyileştirme ile gecikme süresi arasında bir denge bulmanız gerekir. Bu ilke kuyruğa alınan alım için geçerlidir. Küçük blobları bir araya toplarken izin verilen maksimum zorlamalı gecikmeyi tanımlar. İlke komutlarını toplu olarak kullanma ve aktarım hızını iyileştirme hakkında daha fazla bilgi edinmek için bkz:

Toplu iş mühürleme

Toplu alım için yaklaşık 1 GB sıkıştırılmamış verinin en uygun boyutu vardır. Çok daha az veriye sahip blobların alınması en iyi durumda değildir, bu nedenle kuyruğa alınmış alımda hizmet küçük blobları toplu olarak bir araya getirir.

Aşağıdaki listede, toplu işlemi mühürleyen temel toplu iş ilkesi tetikleyicileri gösterilmektedir. İlk koşul karşılandığında toplu iş kapatılır ve alınıp gönderilir:

  • Size: Toplu iş boyutu sınırına ulaşıldı veya aşıldı
  • Count: Toplu dosya numarası sınırına ulaşıldı
  • Time: Toplu işlem süresi doldu

İlke IngestionBatching veritabanlarında veya tablolarda ayarlanabilir. Varsayılan değerler şunlardır: en fazla 5 dakika gecikme süresi, 1000 öğe, toplam boyut 1 GB.

Önemli

Bu ilkeyi çok küçük değerlere ayarlamanın etkisi, kümenin SGS'lerinde (satılan malların maliyeti) bir artış ve düşük performanstır. Buna ek olarak, birden çok alım işlemini paralel olarak yönetme yükü nedeniyle toplu işlem ilkesi değerlerinin azaltılması aslında etkin uçtan uca alım gecikmesinin artmasına neden olabilir.

Aşağıdaki listede, tek blob alımıyla ilgili toplu işleri mühürleme koşulları gösterilmektedir. Koşullar karşılandığında toplu iş mühürlenir ve alınıyor:

  • SingleBlob_FlushImmediately: 'FlushImmediately' ayarlandığından tek bir blob alın
  • SingleBlob_IngestIfNotExists: 'IngestIfNotExists' ayarlandığından tek bir blob alın
  • SingleBlob_IngestByTag: 'alma ölçütü' ayarlandığından tek bir blob alın
  • SingleBlob_SizeUnknown: Blob boyutu bilinmediğinden tek bir blob alma

SystemFlush Koşul ayarlanırsa, sistem temizleme tetiklendiğinde toplu iş kapatılır. SystemFlush Parametre kümesiyle, örneğin küme ölçeklendirmesi veya sistem bileşenlerinin iç sıfırlaması nedeniyle sistem verileri temizler.

Varsayılanlar ve sınırlar

Tür Özellik Varsayılan Düşük gecikme süresi ayarı En küçük değer En büyük değer
Öğe sayısı MaximumNumberOfItems 500 500 1 25,000
Veri boyutu (MB) MaximumRawDataSizeMB 1024 1024 100 4096
Saat (sn) MaximumBatchingTimeSpan 300 20 - 30 10 1800

Alma toplu işlemi ilkesini kullanarak uçtan uca gecikme süresini denetlemenin en etkili yolu, gecikme süresi gereksinimlerinin daha yüksek sınırına göre tablo veya veritabanı düzeyinde zaman sınırını değiştirmektir. Veritabanı düzeyi ilkesi, bu veritabanında tanımlı tablo düzeyi ilkesi olmayan tüm tabloları ve yeni oluşturulan tabloları etkiler.

Önemli

Düşük giriş tablolarında Alma Toplu İşlem ilkesinin zaman sınırını çok düşük ayarlarsanız, küme yeni oluşturulan veri parçalarını iyileştirmeye çalıştığından ek işlem ve depolama çalışması oluşturabilirsiniz. Veri parçaları hakkında daha fazla bilgi için bkz. kapsamlar.

Batch veri boyutu

Toplu işlem ilkesi veri boyutu sıkıştırılmamış veriler için ayarlanır. Parquet, AVRO ve ORC dosyaları için, dosya boyutuna göre bir tahmin hesaplanır. Sıkıştırılmış veriler için sıkıştırılmamış veri boyutu, azalan doğruluk sırasına göre aşağıdaki gibi değerlendirilir:

  1. Alma kaynağı seçeneklerinde sıkıştırılmamış boyut sağlanırsa, bu değer kullanılır.
  2. SDK'ları kullanarak yerel dosyaları alırken zip arşivleri ve gzip akışları ham boyutlarını değerlendirmek için incelenir.
  3. Önceki seçenekler veri boyutu sağlamıyorsa sıkıştırılmamış veri boyutunu tahmin etmek için sıkıştırılmış veri boyutuna bir faktör uygulanır.

Toplu işlem gecikme süreleri

Gecikme süreleri, toplu işlem ilkesi ayarları kullanılarak giderilebilen birçok nedenden kaynaklanabilir.

Nedeni Çözüm
Veri gecikme süresi, veya count sınırına time ulaşamayacak kadar az veriyle ayarla size eşleşir time Sınırı azaltma
Çok sayıda çok küçük dosya nedeniyle verimsiz toplu işleme Kaynak dosyaların boyutunu artırın. Kafka Sink kullanıyorsanız, verileri yaklaşık 100 KB veya daha yüksek öbekler halinde gönderecek şekilde yapılandırın. Çok sayıda küçük dosyanız varsa, veritabanında veya tablo alma ilkesinde (2000'e kadar) artırın count .
Büyük miktarda sıkıştırılmamış verileri toplu olarak oluşturma Bu, Parquet dosyalarını alırken sık karşılaşılan bir durumdur. Tablo veya veritabanı toplu işlem ilkesi için artımlı olarak 250 MB'a kadar azaltın size ve iyileştirme olup olmadığını denetleyin.
Küme ölçeklendirildiği için kapsam Kümenizin ölçeğini genişletmek veya ölçeği genişletmek için azure danışmanı önerilerini kabul edin. Alternatif olarak, kapsamın kapalı olup olmadığını görmek için kümenizi el ile ölçeklendirin. Bu seçenekler işe yaramazsa yardım için desteğe başvurun.