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.
Bulut nesne depolamasından veri okumak, yerel diskten okumaya göre daha yavaştır. Önbellekleme olmadan, aynı Parquet veri dosyalarını okuyan sorgular ve defterler, bunları her seferinde bulut nesne depolamadan tekrar tekrar alır.
Azure Databricks, veri okumalarını hızlandırmak için disk önbellekleme kullanır. Bir düğüm, uzak depolamadan bir Parquet veri dosyası çektiğinde, otomatik olarak bir kopyayı yerel depolamasında hızlı bir ara formatta saklar. Aynı verinin sonraki okumaları yerel olarak yürütülür ve önemli ölçüde daha hızlıdır. Önbellek, Delta Lake tabloları dahil olmak üzere tüm Parquet veri dosyaları için çalışır.
Not
SQL ambarlarında ve Databricks Runtime 14.2 ve üstünde CACHE SELECT komut yoksayılır. Bunun yerine gelişmiş bir disk önbelleğe alma algoritması kullanılır.
Önerilen yöntemler
Disk önbelleği, aynı verileri defalarca okuyan iş yüklerinde, örneğin aynı tablolarda tekrarlayan veya yinelemeli sorgularda en çok yardımcı olur. Azure Databricks, bunu destekleyen worker instance tiplerinde bunu otomatik olarak etkinleştirir. Disk önbelleğinin okumaları hızlandırmasına yardımcı olmak için şu uygulamaları takip edin:
- Disk önbelleklemeyi destekleyen bir işçi örnek türü seçin. Bkz . Disk önbelleğini kullanmak için örnek türlerini seçme.
- Parquet ve Delta Lake verilerinin tekrar tekrar okuması için Apache Spark önbelleği yerine disk önbelleğini kullanın. Disk önbelleği ile Spark önbelleğini karşılaştırın.
Delta önbelleği disk önbelleği olarak yeniden adlandırıldı
Azure Databricks'te disk önbelleği, daha önce Delta önbelleği ve DBIO önbelleği olarak adlandırılırdı. Disk önbelleğe alma davranışı, özel bir Azure Databricks özelliğidir. Bu ad değişikliği, Delta Lake protokolünün bir parçası olduğu yönündeki karışıklığı gidermeyi amaçlar.
Disk önbelleği ile Spark önbelleğini karşılaştırın
Azure Databricks disk önbelleği Apache Spark önbelleğinden farklıdır. Databricks otomatik disk önbelleklemenin kullanılmasını önerir.
Aşağıdaki tabloda, iş akışınız için en iyi aracı seçebilmeniz için disk ile Apache Spark önbelleğe alma arasındaki temel farklar özetlenir:
| Özellik | disk önbelleği | Apache Spark önbelleği |
|---|---|---|
| Şöyle depolanır | İşçi düğümündeki yerel dosyalar. | Bellek içi bloklar, ancak bu depolama düzeyine bağlıdır. |
| Uygulandığı yer | ABFS ve diğer dosya sistemlerinde depolanan herhangi bir Parquet tablosu. | Herhangi bir DataFrame veya RDD. |
| Tetiklenmiş | otomatik olarak, ilk okumada (önbellek etkinse). | Manuel olarak, kod değişiklikleri gerektirir. |
| Değerlendirildi | Lazily. | Lazily. |
| Kullanılabilirlik | Bazı düğüm tiplerinde varsayılan olarak etkinleştirilmiştir. Bunu yapılandırma bayraklarıyla etkinleştirebilir veya devre dışı bırakabilirsiniz. | Her zaman kullanılabilir. |
| Çıkarıldı | LRU düzeninde veya herhangi bir dosya değişikliğinde otomatik olarak, küme yeniden başlatılırken ise el ile. | Otomatik olarak LRU biçiminde, manuel olarak unpersist ile. |
Sunucusuz hesaplamada, df.cache() bu tablodaki Apache Spark önbelleğinden farklı çalışır.
Bkz. Sunucusuz hesaplamada Cache DataFrames.
Disk önbelleği tutarlılığı
Disk önbelleği veri dosyalarının ne zaman oluşturulduğunu, silindiğini, değiştirildiğini veya üzerine yazıldığını otomatik olarak algılar ve içeriğini buna göre güncelleştirir. Önbelleğe alınan verileri açıkça geçersiz kılmanıza gerek kalmadan tablo verilerini yazabilir, değiştirebilir ve silebilirsiniz. Eski girdiler otomatik olarak geçersiz kılınır ve önbellekten çıkarılır.
Disk önbelleğini kullanmak için örnek türlerini seçme
Disk önbelleğini kullanmanın önerilen (ve en kolay) yolu, kümenizi yapılandırırken SSD birimlerine sahip bir çalışan türü seçmektir. Bu tür çalışanlar disk önbelleğe alma için etkinleştirilmiş ve yapılandırılmıştır.
Disk önbelleği, çalışan düğümleriyle birlikte sağlanan yerel SSD'lerde kullanılabilir alanın en fazla yarısını kullanacak şekilde yapılandırılır. Yapılandırma seçenekleri için bkz. Disk önbelleğini yapılandırma.
Disk önbelleğini yapılandırma
Databricks, hesaplamanız için önbellek hızlandırılmış işçi örnek türlerini seçmenizi önerir. Bu tür örnekler disk önbelleği için otomatik olarak en uygun şekilde yapılandırılır.
Not
Bir worker kullanımdan kaldırıldığında, söz konusu worker'da depolanan Spark önbelleği kaybolur. Bu nedenle otomatik ölçeklendirme etkinleştirildiyse önbellekte bazı kararsızlıklar olabilir. Daha sonra Spark'ın kaynaktan eksik bölümleri gerektiğinde yeniden okuması gerekir.
Disk kullanımını yapılandırma
Disk önbelleğinin işçi düğümlerinin yerel depolamasını nasıl kullandığını yapılandırmak için, küme oluşturma sırasında şu Spark yapılandırma ayarlarını belirtin:
-
spark.databricks.io.cache.maxDiskUsage: Bayt cinsinden önbelleğe alınan veriler için ayrılmış düğüm başına disk alanı -
spark.databricks.io.cache.maxMetaDataCache: Bayt cinsinden önbelleğe alınmış meta veriler için ayrılmış düğüm başına disk alanı -
spark.databricks.io.cache.compression.enabled: önbelleğe alınan veriler sıkıştırılmış biçimde depolanmalı mı
Örnek yapılandırma:
spark.databricks.io.cache.maxDiskUsage 50g
spark.databricks.io.cache.maxMetaDataCache 1g
spark.databricks.io.cache.compression.enabled false
Disk önbelleğini etkinleştir veya devre dışı bırak
Disk önbelleğinin mevcut ayarını görmek için şunu çalıştırın:
spark.conf.get("spark.databricks.io.cache.enabled")
Disk önbelleğini etkinleştirmek ve devre dışı bırakmak için şunu çalıştırın:
spark.conf.set("spark.databricks.io.cache.enabled", "[true | false]")
Önbelleğin devre dışı bırakılması, yerel depolamada zaten bulunan verilerin silinmesine neden olmaz. Bunun yerine, sorguların önbelleğe yeni veri eklemesini ve önbellekten veri okumasını engeller.