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:
- Alma toplu işlemi ilkesi komut başvurusu
- Veri alımı en iyi yöntemleri - aktarım hızı için iyileştirme
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ınSingleBlob_IngestIfNotExists
: 'IngestIfNotExists' ayarlandığından tek bir blob alınSingleBlob_IngestByTag
: 'alma ölçütü' ayarlandığından tek bir blob alınSingleBlob_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:
- Alma kaynağı seçeneklerinde sıkıştırılmamış boyut sağlanırsa, bu değer kullanılır.
- SDK'ları kullanarak yerel dosyaları alırken zip arşivleri ve gzip akışları ham boyutlarını değerlendirmek için incelenir.
- Ö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. |
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin