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.
Uygun şekilde boyutlandırılmış dosyalar sorgu performansı, kaynak kullanımı ve meta veri yönetimi için önemlidir. Daha küçük dosyalar görev ek yükünü ve meta veri işlemlerini artırırken, büyük dosyalar paralelliği az kullanabilir ve G/Ç'yi çarpıtabilir. Delta Lake bölüm ayıklama ve veri atlama için dosya meta verilerini kullanır, bu nedenle doğru dosya boyutunu hedeflemek verimli okuma, yazma ve bakım sağlar.
İpucu
Tüketim senaryosuna (SQL analytics uç noktası, Power BI Direct Lake, Spark) dayalı en iyi dosya boyutu önerileri için bakınız Cross-workload table maintenance and optimization.
Aşağıdaki bölümde, Delta tablolarınızın performansını elde etmek için çeşitli farklı dosya boyutu ayarlama özelliklerinin nasıl kullanılacağı gösterilmektedir.
Ayarlanabilir veri düzeni işlemleri
Optimize
Komut, OPTIMIZE Delta tablolarındaki verilerin düzenini geliştirmek için küçük dosyaları daha büyük dosyalar olarak yeniden yazar. Dosya boyutu ayarlama bilgileri de dahil olmak üzere daha fazla ayrıntı için OPTIMIZE komutu belgelerini gözden geçirin.
Otomatik Sıkıştırma
Otomatik Sıkıştırma, her yazma işleminden sonra bölüm durumunu otomatik olarak değerlendirir. Bir bölüm içinde aşırı dosya parçalanması (çok fazla küçük dosya) algıladığında, yazma işlemi tamamlandıktan hemen sonra zaman uyumlu OPTIMIZE bir işlemi tetikler. Bu yazıcı temelli dosya bakımı yaklaşımı genellikle en uygun yöntemdir çünkü sıkıştırma yalnızca program aracılığıyla yararlı olduğu belirlendiğinde yürütülür. Ayrıntılı yapılandırma seçenekleri ve ek bilgi için otomatik sıkıştırma belgelerine bakın.
Yazma işlemini optimize et
Yazma işlemini optimize etme, daha az ve daha büyük dosya oluşturan yazma öncesi sıkıştırma (bölüm paketleme) gerçekleştirerek küçük dosya ek yükünü azaltır. Bu yaklaşım, Spark Parquet dosyalarını yazmadan önce bellek içi verileri en uygun şekilde boyutlandırılmış bölmelere karıştırır ve anında yazma sonrası temizleme işlemlerine gerek kalmadan uygun boyutta dosyalar oluşturma olasılığını en üst düzeye çıkarır.
Verileri karıştırmanın hesaplama maliyeti belirli yazma senaryolarına aşırı ve gereksiz işlem süresi ekleyebileceğinden, yazmayı optimize etme işlemi dikkatli bir şekilde kullanılmalıdır. Yazma işlemi, aksi takdirde daha sonra sıkıştırmaya aday olabilecek küçük dosyalar üretecekse, yazma optimizasyonu yararlı olur.
Yazma iyileştirme yaygın olarak aşağıdakiler için yararlıdır:
- Bölümlenmiş tablolar
- Küçük eklemelerin sık yapıldığı tablolar
- Birçok dosyaya (
MERGE,UPDATEveDELETE) dokunma olasılığı olan işlemler
Belirli tablolarda seçmeli uygulama için oturum yapılandırmasını kaldırın ve tablo özelliğini tek tek etkinleştirin. Oturum düzeyi yapılandırmasının sıfırlanması, Spark oturumlarının her tabloya, yazma iyileştirmesinin uygulanıp uygulanmayacağına göre ertelenmesini sağlar.
Optimize yazmayı devre dışı bırak
spark.conf.unset("spark.databricks.delta.optimizeWrite.enabled")Tek tek tabloda etkinleştir
ALTER TABLE dbo.table_name SET TBLPROPERTIES ('delta.autoOptimize.optimizeWrite' = 'true')
Spark oturumundaki tüm bölümlenmiş tablolarda yazmaları etkinleştirmek için oturum yapılandırmasının ayarlanmamış olduğundan emin olun ve ardından oturum yapılandırmasını spark.microsoft.delta.optimizeWrite.partitioned.enabled etkinleştirin:
Oluşturulan hedef dosya boyutu, optimize yazma işlemi sayesinde spark.databricks.delta.optimizeWrite.binSize ayarlama yapılandırması ile değiştirilebilir.
Uyarı
Kaynak profiline göre varsayılan en iyi duruma getirme yazma ayarları için kaynak profillerine bakın.
Hedef dosya boyutunu tutarlı bir şekilde ayarlama
En iyi duruma getirme, otomatik sıkıştırma ve yazmayı iyileştirme amacıyla en düşük ve en yüksek hedef dosya boyutu oturum yapılandırmasını ayarlama gereğini önlemek için Microsoft Fabric, tablo düzeyinde tüm ilgili veri düzeni yapılandırmalarını birleştirmenin bir aracı olarak tablo özelliğini sağlar delta.targetFileSize . Hedef dosya boyutu değeri bayt dizesi olarak girilir (örneğin, 1073741824b, 1048576k, 1024m, 1g). Belirtildiğinde, diğer tüm oturum yapılandırmalarından ve uyarlamalı hedef dosya boyutundan önceliklidir.
ALTER TABLE dbo.table_name
SET TBLPROPERTIES ('delta.targetFileSize' = '256m')
Uyarlamalı hedef dosya boyutu
Microsoft Fabric, delta.targetFileSize tablo özelliği aracılığıyla oturumdaki tüm tabloların veya bireysel tabloların hedef dosya boyutunu manuel olarak ayarlamayla ilgili karmaşıklığı ortadan kaldırmak için uyarlanabilir hedef dosya boyutu sağlar. Uyarlamalı hedef dosya boyutu, ideal hedef dosya boyutunu tahmin etmek için tablo boyutu gibi Delta tablo buluşsal yöntemlerini kullanır ve koşullar değiştikçe hedefi otomatik olarak güncelleştirir ve el ile müdahale veya bakım yükü olmadan en iyi performansı sağlar.
Uyarı
Microsoft, şu anda varsayılan olarak etkin olmasa da uyarlamalı hedef dosya boyutu oturum yapılandırmasını etkinleştirmenizi önerir.
Aşağıdaki Spark oturumu yapılandırmasını ayarlayarak Spark oturumunda oluşturulan veya değiştirilen tablolarda uyarlamalı hedef dosya boyutunu etkinleştirin:
Etkinleştirildiğinde uyarlamalı hedef dosya boyutu değerlendirilir ve aşağıdaki senaryolarda ayarlanır:
-
CREATE TABLE AS SELECTveCREATE OR REPLACE TABLE AS SELECTişlemleri - Yazmaların üzerine yazma (örneğin,
DataFrame.write.mode("overwrite")veyaINSERT OVERWRITE) -
ErrorIfExistsYeni tablo oluştururken ,AppendveyaIgnoremodunda yazar - Komutun
OPTIMIZEbaşında
İdeal boyut ayarlandıktan sonra, geçerli sezgisel yöntemlerin en son veri dağılımını ve tablo büyümesini yansıtmasını sağlamak için her OPTIMIZE işlemin başlangıcında yeniden değerlendirilir. Bu uyarlamalı yaklaşım zaman içinde hedef dosya boyutunu otomatik olarak güncelleştirir ve verileriniz büyüdükçe sorgu ve yazma performansını korurken el ile ayarlama gereksinimini ortadan kaldırır. Hiper ayarlama veya test kullanım örnekleri gibi belirli bir boyutta kilitlemeniz gerektiğinde, kullanıcı tanımlı delta.targetFileSize tablo özelliğini açıkça ayarlayarak uyarlamalı ayarı geçersiz kılabilirsiniz.
Değerlendirilen uyarlamalı hedef dosya boyutu değeri, çalıştırılarak DESCRIBE DETAIL veya DESCRIBE EXTENDED tabloda denetlenebilir. Uyarlamalı değerlendirilen boyut, table özelliğinde delta.targetFileSize.adaptivebayt dizesi olarak depolanır. Bu değer, en iyi duruma getirme, otomatik sıkıştırma ve en iyi duruma getirme yazma için maksimum veya hedef boyut yapılandırması olarak kullanılır. İlgili yapılandırmalar tarafından kullanılan en düşük değer, değerinin delta.targetFileSize.adaptiveyarısı olarak hesaplanır.
Uyarlamalı hedef dosya boyutu, aşağıdaki Spark oturum yapılandırmaları aracılığıyla daha fazla yapılandırılabilir:
| Mülkiyet | Description | Varsayılan Değer | Oturum Yapılandırması |
|---|---|---|---|
| minFileSize | Uyarlamalı Hedef Dosya Boyutunun değerlendirildiğinde kullandığı bayt dizesi olarak en düşük dosya boyutunu (alt sınır) belirtir. 128 MB ile 1 GB arasında olmalıdır. | 128m | spark.microsoft.delta.targetFileSize.adaptive.minFileSize |
| maxFileSize | Uyarlamalı Hedef Dosya Boyutunun değerlendirildiğinde kullandığı bayt dizesi olarak en büyük dosya boyutunu (üst sınır) belirtir. 128 MB ile 1 GB arasında olmalıdır. | 1024m | spark.microsoft.delta.targetFileSize.adaptive.maxFileSize |
| stopAtMaxSize | When true sonlandığında, hesaplanan hedef dosya boyutu maxFileSize ulaştığında daha fazla boyut değerlendirmesi durdurularak çok büyük tablolarda değerlendirme yükü azaltılır. |
true | spark.microsoft.delta.targetFileSize.adaptive.stopAtMaxSize |
Uyarı
Etkin stopAtMaxSize olduğunda (varsayılan), uyarlamalı hedef boyutu ulaşıldıktan sonra maksimum değerde sabit kalır ve ek hesaplamalardan kaçınabilirsiniz. Tablolarınız büyüdükten sonra küçülebilirse, yeniden hesaplamaya maksimum eşiğin altında izin vermek için false bu özelliği olarak ayarlayın.
Aşağıdaki grafikte tablo boyutu ile en uygun parquet dosya boyutu arasındaki ilişki gösterilmektedir. Doku Spark Çalışma Zamanı, 10 GB'ın altındaki tablolar için hedef dosya boyutunu 128 MB olarak değerlendirir. Tablo boyutu büyüdükçe hedef dosya boyutu doğrusal olarak ölçeklendirilir ve 10 TB'ı aşan tablolar için 1 GB'a kadar ulaşır.
128 MB'lık küçük bir değerle başlayıp tablo boyutu büyüdükçe parquet dosyalarının boyutunu ölçeklendirmenin basamaklı avantajları vardır:
Geliştirilmiş Delta dosyası atlama: Düzgün boyutlandırılmış dosyalar en iyi veri kümelemesine ve atlanmasına olanak tanıyarak Delta'nın dosya atlama protokollerinin sorgu yürütme sırasında daha ilgisiz dosyaları ortadan kaldırmasını sağlar. 1 GB dosya yerine 128 MB dosya içeren küçük bir tablo, 8 kat daha fazla olası dosya atlanması sağlar.
Daha düşük güncelleştirme maliyetleri:
MERGEveUPDATEişlemler yalnızca etkilenen dosyaları yeniden yazar. Doğru boyutlandırılmış dosyalar, işlem başına dokunulan dosya sayısını en aza indirerek yeniden yazılan veri miktarını azaltır. Silme Vektörleri etkinleştirildiğinde, uygun dosya boyutlandırma kritik hale gelir: büyük boyutlu dosyalardaki satır düzeyindeki silme taşları, sıkıştırma veya temizleme işlemleri sırasında önemli temizleme maliyetlerine neden olur.İyileştirilmiş paralellik: Doğru boyutlandırılmış dosyalar Spark'ın ideal görev paralelliği elde edebilmesini sağlar. Çok fazla küçük dosya zamanlayıcıyı bunaltıyor; Çok az büyük dosya Spark havuzunuzu az kullanır. En uygun boyutlandırma hem okuma hem de yazma aktarım hızını en üst düzeye çıkarır.
Uyarlamalı hedef dosya boyutu, sıkıştırma performansını 30-60% artırabilir ve varsayılandan daha uygun bir dosya boyutu seçtiğinde daha hızlı sorgular ve yazmalar sunabilir. Uyarlamalı değerlendirme varsayılan Spark oturumu yapılandırmasıyla aynı boyuttaysa beklenen performans iyileştirmesi yoktur.
Önemli
Yazma amplifikasyonundan kaçınmaya çalışın. Tablonuz büyüdükçe uyarlamalı hedef dosya boyutu arttıkça zaten sıkıştırılmış dosyalar yeniden yazıldığında yazma amplifikasyonu gerçekleşir. Yazma amplifikasyonu önlemek için dosya düzeyinde sıkıştırma hedeflerini etkinleştirin. Bu özellik, önceki uyarlamalı hedef boyutları altında sıkıştırılmış dosyaların gereksiz yere yeniden sıkıştırılmasını önler. Daha fazla bilgi için dosya düzeyinde sıkıştırma hedefleri belgelerine bakın.
En iyi yöntemlerin özeti
-
Otomatik Sıkıştırma'yı etkinleştirin için sık sık küçük boyutlu yazma işlemleri (akış veya mikro toplu iş) yapan alım işlem hatlarında, elle zamanlamadan kaçınmak ve dosyaların otomatik olarak sıkıştırılmış halde kalmasını sağlamak.
- Diğer yazma desenleri için, küçük dosyaların biriktirilmesine karşı bir sigorta olarak etkinleştirmek yararlı olabilir, ancak veri işleme hizmet düzeyi hedeflerinizin işleme süresindeki düzenli ani artışları tolere edip etmediğini tartmak yararlı olabilir.
- En uygun hedef dosya boyutlarıyla ilgili tahminleri kaldırmak için uyarlamalı hedef dosya boyutunu etkinleştirin.
- Küçük dosyaların oluşturulmasını ve aşağı akış bakım maliyetlerini azaltmak için, karıştırma, bölümleme senaryoları veya sık sık küçük yazma işlemlerini tolere eden toplu işleri içeren denetimli alma yollarında Optimize Yazma Özelliğini kullanın. Yazma öncesi sıkıştırma (yazmayı iyileştirme) yazma sonrası sıkıştırmadan (iyileştirme) daha az maliyetli olma eğilimindedir.
- Birçok bölümü yeniden yazmanız veya Z-Order çalıştırmanız gerektiğinde sessiz pencereler sırasında tam tablo
OPTIMIZEişlemlerini zamanlayın. - Yazma amplifikasyonu en aza indirmek ve daha etkili hale getirmek için
OPTIMIZEetkinleştirin (bkz. hızlı iyileştirme). - Hedef dosya boyutu değerlerinin veri düzeni özelliklerinde ve Spark oturumlarında tutarlı olmasını sağlamak için tercihen
delta.targetFileSizehedef dosya boyutu kullanın. - Tabloların boyutu büyüdükçe ve daha büyük hedef dosya boyutları kullandıkça yazma yükseltmesini önlemek için dosya düzeyinde sıkıştırma hedeflerini etkinleştirin.