Aracılığıyla paylaş


Azure Synapse Analytics'te Akıllı Önbellek

Akıllı Önbellek arka planda sorunsuz çalışır ve Spark'ın ADLS 2. Nesil veri gölünüzden okunmasını hızlandırmaya yardımcı olmak için 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 ve önbellek boyutu sınırına ulaştığında önbellek, daha yeni veriler için alan açmak için en az okunan verileri otomatik olarak serbest bırakır. Bu özellik, Parquet dosyaları için kullanılabilir önbellekte depolanan dosyaların sonraki okumalarında performansı %65'e ve CSV dosyaları için %50'ye kadar artırarak toplam sahip olma maliyetini düşürür.

Data Lake'inizden bir dosya veya tablo sorgularken Synapse'deki Apache Spark altyapısı, temel alınan dosyaları okumak için uzak ADLS 2. Nesil depolama alanına bir çağrı yapar. Aynı verileri okumak için yapılan her sorgu isteğinde Spark altyapısının uzak ADLS 2. Nesil depolama alanına 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 serbest bırakmanız gereken bir önbelleğe alma özelliği sağlar. Ancak bu, temel alınan veriler değişirse sonuçların eski verilere sahip olmasını sağlayabilir.

Synapse Akıllı Önbelleği, her Spark düğümündeki ayrılmış önbellek depolama alanı içindeki her okumayı otomatik olarak önbelleğe alarak bu işlemi basitleştirir. Bir dosyaya yönelik her istek, dosyanın önbellekte var 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.

Synapse önbelleği düğüm başına tek bir önbellektir. Orta boyutlu bir düğüm kullanıyorsanız ve tek bir orta boyutlu düğümde iki küçük yürütücüyle çalışıyorsanız, bu iki yürütücü aynı önbelleği paylaşır.

Önbelleği etkinleştirme veya devre dışı bırakma

Önbellek boyutu, her Apache Spark havuzu için kullanılabilir toplam disk boyutunun yüzdesine göre ayarlanabilir. Varsayılan olarak, önbellek devre dışı olarak ayarlanır, ancak etkinleştirmek için kaydırıcı çubuğunu önbellek boyutunuz için 0'dan (devre dışı) istenen yüzdeye taşımak kadar kolaydır. Veri karıştırmaları için kullanılabilir disk alanının en az %20'sini ayırırız. Yoğun karıştırmalı iş yükleri için önbellek boyutunu en aza indirebilirsiniz veya önbelleği devre dışı bırakabilirsiniz. %50 önbellek boyutuyla başlamanızı ve gerektiği şekilde ayarlamanızı öneririz. İş yükünüz karıştırma veya RDD önbelleğe alma için yerel SSD'de çok fazla disk alanı gerektiriyorsa yetersiz depolama nedeniyle hata olasılığını azaltmak için önbellek boyutunu azaltmayı göz önünde bulundurmanız önemlidir. 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.

Yeni Spark havuzları için önbelleği etkinleştirme

Yeni bir Spark havuzu oluştururken, özelliği etkinleştirmek için tercih ettiğiniz boyuta taşıyabileceğiniz Akıllı Önbellek kaydırıcısını bulmak için ek ayarlar sekmesinin altına göz atın.

How to enable Intelligent Cache during new Spark pools creation

Mevcut Spark havuzları için önbelleği etkinleştirme/devre dışı bırakma

Mevcut Spark havuzları için, kaydırıcıyı 0'dan büyük bir değere taşıyarak veya kaydırıcıyı 0'a taşıyarak etkinleştirmek istediğiniz Apache Spark havuzunuzun Ölçek ayarlarına göz atın.

How to enable or disable Intelligent Cache for existing Spark pools

Mevcut Spark havuzları için önbellek boyutunu değiştirme

Havuzun Akıllı Önbellek boyutunu değiştirmek için, havuzun etkin oturumları varsa yeniden başlatmayı zorlamanız gerekir. Spark havuzu etkin bir oturuma sahipse Yeni ayarları zorla seçeneği gösterilir. Oturumu otomatik olarak yeniden başlatmak için onay kutusuna tıklayın ve Uygula'yı seçin.

Force restarting a session after changing Intelligent Cache setting

Oturumdaki önbelleği etkinleştirme ve devre dışı bırakma

Not defterinizde aşağıdaki kodu çalıştırarak akıllı önbelleği bir oturum içinde kolayca devre dışı bırakın:

   %spark 

   spark.conf.set("spark.synapse.vegas.useCache", "false") 
   %pyspark 

   spark.conf.set('spark.synapse.vegas.useCache', 'false') 

Ve komutunu çalıştırarak etkinleştirin:

   %spark 

   spark.conf.set("spark.synapse.vegas.useCache", "true") 
   %pyspark 

   spark.conf.set('spark.synapse.vegas.useCache', 'true') 

Akıllı Önbellek ne zaman kullanılır ve ne zaman kullanılmaz?

Aşağıdakiler durumunda bu özellik size fayda sağlar:

  • İş yükünüz aynı dosyanın birden çok kez okunmasını gerektirir ve dosya boyutu önbelleğe sığabilir.

  • İş yükünüz Delta tablolarını, parquet dosya biçimlerini ve CSV dosyalarını kullanıyor.

  • Azure Synapse'te Apache Spark 3 veya üzerini kullanıyorsunuz.

Aşağıdakiler durumunda bu özelliğin avantajını görmezsiniz:

  • Dosyaların başlangıcı çıkarılabildiği ve sonraki sorguların uzak depolama alanından verileri yeniden oluşturması gerekeceği için önbellek boyutunu aşan bir dosya okuyorsunuz. Bu durumda Akıllı Önbellek'ten 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 gerektirir, ardından Akıllı Önbellek'in devre dışı bırakılması işinizin yetersiz depolama alanı nedeniyle başarısız olmasını önlemek için kullanılabilir alan boşaltır.

  • Spark 3.1 havuzu kullanıyorsanız havuzunuzu Spark'ın en son sürümüne yükseltmeniz gerekir.

Daha fazla bilgi edinin

Apache Spark hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:

Spark oturum ayarlarını yapılandırma hakkında bilgi edinmek için

Sonraki adımlar

Apache Spark havuzu, daha hızlı analiz içgörüleri için verilerin yüklenebileceği, modellenebileceği, işlenebileceği ve dağıtılabildiği açık kaynaklı büyük veri işlem özellikleri sağlar. Spark iş yüklerinizi çalıştırmak için nasıl oluşturacağınız hakkında daha fazla bilgi edinmek için aşağıdaki öğreticileri ziyaret edin: