Microsoft Fabric'te akıllı önbellek
Akıllı önbellek özelliği arka planda sorunsuz çalışır ve Microsoft Fabric'te Apache Spark işlerinin yürütülmesini hızlandırmaya yardımcı olmak için onelake veya Azure Data Lake Depolama (ADLS) 2. Nesil depolama alanınızdan kısayollar aracılığıyla verileri önbelleğe alır. Ayrıca, temel dosyalarda yapılan değişiklikleri otomatik olarak algılar ve önbellekteki dosyaları otomatik olarak yenileyerek size en son verileri sağlar. Önbellek boyutu sınırına ulaştığında, önbellek en son veriler için alan açmak üzere en az okunan verileri otomatik olarak serbest bırakır. Bu özellik, kullanılabilir önbellekte depolanan dosyaların sonraki okumalarında performansı %60'a kadar artırarak toplam sahip olma maliyetini düşürür.
Microsoft Fabric'teki Apache Spark altyapısı lakehouse'unuzdan bir dosya veya tablo sorguladığında, temel alınan dosyaları okumak için uzak depolamaya bir çağrı yapar. Aynı verileri okumak için yapılan her sorgu isteğinde Spark altyapısının her seferinde uzak depolamaya bir çağrı yapması gerekir. Bu yedekli işlem, toplam işlem sürenize gecikme ekler. Spark,gecikme süresini en aza indirmek ve genel performansı geliştirmek için önbelleği el ile ayarlamanız ve bırakmanız gereken bir önbelleğe alma gereksinimine sahiptir. Ancak bu gereksinim, temel alınan veriler değişirse eski verilere neden olabilir.
Akıllı önbellek, veri dosyalarının SSD'de önbelleğe alındığı her Spark düğümündeki ayrılmış önbellek depolama alanı içindeki her okumayı otomatik olarak önbelleğe alarak işlemi basitleştirir. Bir dosyaya yönelik her istek, dosyanın yerel düğüm önbelleğinde mevcut olup olmadığını denetler ve dosyanın eski olup olmadığını belirlemek için uzak depolamadaki etiketi karşılaştırır. Dosya yoksa veya dosya eskiyse Spark dosyayı okur ve önbellekte depolar. Önbellek dolduğunda, en eski son erişim zamanına sahip dosya önbellekten çıkarılır ve daha yeni dosyalara izin verir.
Akıllı önbellek düğüm başına tek bir önbellektir. Orta boyutlu bir düğüm kullanıyorsanız ve bu tek düğümde iki küçük yürütücüyle çalışıyorsanız, iki yürütücü aynı önbelleği paylaşır. Ayrıca, bu veri dosyası düzeyinde önbelleğe alma, aynı veri veya veri dosyalarına erişen birden çok sorgunun aynı önbelleği kullanmasını mümkün kılar.
Nasıl çalışır
Microsoft Fabric'te (Çalışma Zamanı 1.1 ve 1.2) akıllı önbelleğe alma, önbellek boyutu %50 olan tüm çalışma alanları için tüm Spark havuzları için varsayılan olarak etkinleştirilir. Kullanılabilir depolama alanının gerçek boyutu ve her düğümdeki önbellek boyutu düğüm ailesine ve düğüm boyutuna bağlıdır.
Akıllı önbellek ne zaman kullanılır?
Bu özellik aşağıdakiler durumunda size fayda sağlar:
İş yükünüz aynı dosyanın birden çok kez okunmasını gerektirir ve dosya boyutu önbelleğe sığar.
İş yükünüz Delta Lake tablolarını, Parquet'i veya CSV dosya biçimlerini kullanıyor.
Aşağıdakilerde akıllı önbelleğin avantajını görmezsiniz:
Önbellek boyutunu aşan bir dosya okuyorsunuz. Bu durumda dosyaların başlangıcı çıkarılabilir ve sonraki sorguların verileri uzak depolamadan yeniden oluşturması gerekir. Bu durumda akıllı önbellekten herhangi bir avantaj görmezsiniz ve önbellek boyutunuzu ve/veya düğüm boyutunuzu artırmak isteyebilirsiniz.
İş yükünüz büyük miktarda karıştırma gerektiriyor. Akıllı önbelleği devre dışı bırakmak, işinizin yetersiz depolama alanı nedeniyle başarısız olmasını önlemek için kullanılabilir alan boşaltır.
Akıllı önbelleği etkinleştirme ve devre dışı bırakma
Not defterinizde aşağıdaki kodu çalıştırarak veya bu yapılandırmayı çalışma alanı veya Ortam öğesi düzeyinde ayarlayarak akıllı önbelleği bir oturum içinde devre dışı bırakabilir veya etkinleştirebilirsiniz.
spark.conf.set("spark.synapse.vegas.useCache", "false/true")