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.
Tüm veri tüketicileri, optimal boyutlu dosyalara sahip olmaktan faydalanır (SQL analitik uç noktası, Power BI Direct Lake, Spark), tüketici motorlar için performansın nasıl optimize edileceğine dair rehberlik için Çapraz iş yükü tablosu bakımı ve optimizasyonuna bakınız.
Aşağıdaki bölümlerde, Delta tablolarında dosya boyutunu ayarlamak için kullanabileceğiniz ana özellikler açıklanmaktadır.
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.
Yazmayı seçmeli olarak en iyi duruma getirme özelliğini kullanın. Karıştırma, bazı yazma yollarına gereksiz işlem süresi ekleyebilir. Yazma optimizasyonu, aksi takdirde daha sonra sıkıştırma gerektiren birçok küçük dosya oluşturan yazmalarda en faydalıdır.
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. Bu, her tablonun optimize etme yazmasının uygulanıp uygulanmadığını denetlemesine olanak tanır.
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')
Yazma işlemlerini tüm bölümlenmiş tablolara en iyi duruma getirmek için Spark oturumunda, oturum yapılandırmasının ayarlanmamış olduğundan emin olun ve ardından spark.microsoft.delta.optimizeWrite.partitioned.enabled öğesini ayarlayın.
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ı olarak ayarlama
En iyi duruma getirme, otomatik sıkıştırma ve yazmayı iyileştirme amacıyla ayrı en düşük ve en yüksek dosya boyutu oturum yapılandırmalarını ayarlamaktan kaçınmak için tablo özelliğini kullanın delta.targetFileSize . Bu özellik, dosya boyutu davranışını tablo düzeyinde birlandırır. Değeri bayt dizesi (örneğin, 1073741824b, , 1048576k1024m) 1golarak belirtin. Ayarlandığında, oturum yapılandırmalarından ve uyarlamalı hedef dosya boyutundan önceliklidir.
ALTER TABLE dbo.table_name
SET TBLPROPERTIES ('delta.targetFileSize' = '256m')
Uyarı
Kullanıcı tanımlı delta.targetFileSize yapılandırma, eski uyumluluk amaçları için mevcuttur. Microsoft, kullanıcı tanımlı bir hedef belirtmek yerine uyarlanabilir hedef dosya boyutunu önerir.
Uyarlamalı hedef dosya boyutu
Fabric, bir oturumdaki tüm tabloların veya tek tek tabloların hedef dosya boyutunu delta.targetFileSize tablo özelliği aracılığıyla 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.
Uyarlamalı hedef dosya boyutunu etkinleştirme
Uyarı
Adaptif hedef dosya boyutu , Runtime 2.0 ve sonrasında varsayılan olarak etkinleştirilmiştir. Microsoft, Runtime 1.3 kullanıyorsa özelliğin manuel olarak etkinleştirilmesini öneriyor.
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:
Değerlendirme davranışını anlama
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.
Uyarlamalı hedef dosya boyutu sınırlarını ayarlama
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.
Değerlendirilen hedef boyutunu inceleyin
veya DESCRIBE DETAILiçindeki tablo ayrıntılarını ve özelliklerini DESCRIBE EXTENDED inceleyerek değerlendirilen uyarlamalı hedef dosya boyutunu denetleyebilirsiniz. Değerlendirilen değer, table özelliğinde delta.targetFileSize.adaptive bayt dizesi olarak yazılır.
Bu değer, en iyi duruma getirme, otomatik sıkıştırma ve en iyi duruma getirme yazma için hedef (veya maksimum) boyut olarak kullanılır. İlgili minimum değer, değerinin delta.targetFileSize.adaptiveyarısı olarak hesaplanır.
Performans etkisini anlama
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, varsayılan yapılandırmadan daha iyi bir boyut seçtiğinde sıkıştırma performansını ve sorgu/yazma gecikme süresini iyileştirebilir. Uyarlamalı değerlendirme varsayılan Spark oturumu yapılandırmasıyla aynı boyutu üretirse ölçülebilir bir iyileştirme beklenemez.
Önemli
Yazma amplifikasyonu, hedef dosya boyutu zaman içinde arttıkça daha önce sıkıştırılmış dosyalar yeniden yazıldığında oluşur. Bu riski azaltmak için, Runtime 2.0'dan itibaren varsayılan olarak etkinleştirilen dosya düzeyinde sıkıştırma hedeflerini (spark.microsoft.delta.optimize.fileLevelTarget.enabled=true) etkinleştirin. Bu ayar, önceki hedef boyutları altında zaten sıkıştırılmış dosyaların gereksiz yeniden derlemesini atlayarak önceki sıkıştırma çalışmalarının korunmasına yardımcı olur. Daha fazla bilgi için bkz. Dosya düzeyinde sıkıştırma hedefleri.
En iyi yöntemlerin özeti
Tablolar büyüdükçe yazma maliyeti, okuma performansı ve bakım yükünü dengelemek için bu önerileri kullanın.
- Alım hatları için sık sık küçük yazma işlemleriyle (akış veya mikro toplu iş) Otomatik sıkıştırmayı etkinleştirin, böylece dosyanın sağlığı manuel zamanlamaya gerek kalmadan korunur.
- Hizmet düzeyi hedefleriniz zaman zaman yazma gecikmesi artışlarını tolere edebilirken diğer yazma desenleri için otomatik sıkıştırmayı seçmeli olarak kullanın.
- El ile ayarlamayı azaltmak ve hedef boyutları tablo büyümesiyle uyumlu tutmak için uyarlamalı hedef dosya boyutunu etkinleştirin.
- Aşağı akış sıkıştırma baskısını azaltmak için Denetimli alma yollarında (karıştırmayı, bölümlenmiş yazmaları veya sık sık küçük yazmaları tolere eden toplu işler) yazma işlemini en iyi duruma getir seçeneğini kullanın.
- Birçok bölümü yeniden yazmanız veya Z-Order uygulamanız gerektiğinde durgun zaman dilimlerinde tam tabloyu
OPTIMIZEzamanlayın. - Yazma yükseltmesini azaltmak ve daha etkili hale getirmek için
OPTIMIZE. Bkz. hızlı iyileştirme. -
Uyumlu dosya boyutu hedeflerine ulaşmak için optimizasyon, otomatik sıkıştırma ve yazma optimizasyonunu birleştirin, bu sırada hedef dosya boyutunu tutarlı veya uyarlanabilir bir şekilde kullanın
delta.targetFileSize. - Hedef dosya boyutları zaman içinde arttıkça gereksiz yeniden derlemeyi azaltmak için dosya düzeyinde sıkıştırma hedeflerini etkinleştirin.