Aracılığıyla paylaş


Sorgu önbelleğe alma

Önbelleğe alma, aynı verileri birden çok kez yeniden derleme veya getirme gereksinimini ortadan kaldırarak veri ambarı sistemlerinin performansını iyileştirmeye yönelik temel bir tekniktir. Databricks SQL'de önbelleğe alma, sorgu yürütmeyi önemli ölçüde hızlandırabilir ve ambar kullanımını en aza indirerek maliyetlerin düşmesine ve daha verimli kaynak kullanımına neden olabilir. Her önbelleğe alma katmanı sorgu performansını artırır, küme kullanımını en aza indirir ve sorunsuz bir veri ambarı deneyimi için kaynak kullanımını iyileştirir.

Önbelleğe alma, veri ambarlarında aşağıdakiler dahil olmak üzere çok sayıda avantaj sağlar:

  • Hız: Sorgu sonuçlarını veya sık erişilen verileri bellekte veya diğer hızlı depolama ortamlarında depolayarak önbelleğe alma işlemi sorgu yürütme sürelerini önemli ölçüde azaltabilir. Sistem önbelleğe alınan sonuçları yeniden derlemek yerine hızla alabildiği için bu depolama, yinelenen sorgular için özellikle yararlıdır.
  • Azaltılmış küme kullanımı: Önbelleğe alma, daha önce hesaplanan sonuçları yeniden kullanarak ek işlem kaynakları gereksinimini en aza indirir. Bu, genel ambar çalışma süresini ve ek işlem kümelerine olan talebi azaltarak maliyet tasarrufuna ve daha iyi kaynak ayırmaya neden olur.

Databricks SQL'de sorgu önbelleği türleri

Databricks SQL çeşitli türlerde sorgu önbelleğe alma işlemi gerçekleştirir.

sorgu önbellekleri

  • Databricks SQL kullanıcı arabirimi önbelleği: Databricks SQL kullanıcı arabirimindeki tüm sorgu ve pano sonuçlarının kullanıcı başına önbelleğe alınmasını sağlar. Kullanıcılar bir panoyu veya SQL sorgusunu ilk kez açtığında Databricks SQL kullanıcı arabirimi önbelleği, zamanlanmış yürütmelerin sonuçları da dahil olmak üzere en son sorgu sonucunu görüntüler.

    Databricks SQL kullanıcı arabirimi önbelleğinin en fazla 7 günlük bir yaşam döngüsü vardır. Önbellek, hesabınızdaki Azure Databricks dosya sisteminizin içinde bulunur. Artık depolanmasını istemediğiniz sorguyu yeniden çalıştırarak sorgu sonuçlarını silebilirsiniz. Yeniden çalıştırıldıktan sonra eski sorgu sonuçları önbellekten kaldırılır. Ayrıca, temel alınan tablolar güncelleştirildikten sonra önbellek geçersiz kılınır.

  • Sonuç önbelleği: SQL ambarları aracılığıyla tüm sorgular için sorgu sonuçlarının küme başına önbelleğe alınmasını sağlar. Sonuç önbelleğe alma, sorgu sonuçlarını bellekte veya uzak depolama ortamlarında depolayarak sorgu performansını geliştirmek için birlikte çalışan hem yerel hem de uzak sonuç önbelleklerini içerir.

    • Yerel önbellek: Yerel önbellek, kümenin ömrü veya önbellek dolana kadar (hangisi önce gerçekleşirse) sorgu sonuçlarını depolayan bir bellek içi önbellektir. Bu önbellek, yinelenen sorguları hızlandırmak ve aynı sonuçları yeniden derleme gereksinimini ortadan kaldırmak için kullanışlıdır. Ancak küme durdurulduktan veya yeniden başlatıldıktan sonra önbellek temizlenir ve tüm sorgu sonuçları kaldırılır.
    • Uzak sonuç önbelleği: Uzak sonuç önbelleği, sorgu sonuçlarını çalışma alanı sistem verileri olarak kalıcı hale getirerek koruyan yalnızca sunucusuz bir önbellek sistemidir. Sonuç olarak, bir SQL ambarının durdurulması veya yeniden başlatılmasıyla bu önbellek geçersiz kılınmıyor. Uzak sonuç önbelleği, önbelleğe alma sorgusu sonuçlarındaki yaygın bir sorun noktasını giderir ve yalnızca işlem kaynakları çalıştığı sürece kullanılabilir durumda kalır. Uzak önbellek, Databricks çalışma alanında tüm ambarlarda kalıcı bir paylaşılan önbellektir.

    Uzak sonuç önbelleğine erişmek için çalışan bir ambar gerekir. Bir sorgu işlenirken, küme önce yerel önbelleğine bakar ve sonra gerekirse uzak sonuç önbelleğine bakar. Yalnızca sorgu sonucu iki önbellekte de önbelleğe alınmadıysa sorgu yürütülür. Hem yerel hem de uzak önbelleklerin yaşam döngüsü 24 saattir ve bu süre önbellek girişinde başlar. Uzak sonuç önbelleği, SQL ambarının durdurulması veya yeniden başlatılması yoluyla devam eder. Temel alınan tablolar güncelleştirildiğinde her iki önbellek de geçersiz kılınır.

    ODBC / JDBC istemcileri ve SQL Deyimi API'sini kullanan sorgular için uzak sonuç önbelleği kullanılabilir.

    Sorgu sonucunu önbelleğe almayı devre dışı bırakmak için SQL düzenleyicisinde çalıştırabilirsiniz SET use_cached_result = false .

    Önemli

    Bu seçeneği yalnızca test veya karşılaştırmada kullanmalısınız.

  • Disk önbelleği: SQL ambarları aracılığıyla yapılan sorgular için veri depolamadan okunan veriler için yerel SSD önbelleğe alma. Disk önbelleği, verileri diskte depolayarak sorgu performansını artırmak için tasarlanmıştır ve hızlandırılmış veri okumalarına olanak sağlar. Dosyalar getirildiğinde veriler otomatik olarak önbelleğe alınır ve hızlı bir ara biçim kullanılır. Disk önbelleği, dosyaların kopyalarını işlem düğümlerine bağlı yerel depolama alanında depolayarak verilerin çalışanlara daha yakın olmasını sağlayarak sorgu performansının artırılmasını sağlar. Bkz. Azure Databricks'te önbelleğe alma ile performansı iyileştirme.

Disk önbelleği, birincil işlevine ek olarak, temel alınan veri dosyalarındaki değişiklikleri otomatik olarak algılar. Değişiklikleri algıladığında önbellek geçersiz kılınır. Disk önbelleği, yerel sonuç önbelleğiyle aynı yaşam döngüsü özelliklerini paylaşır. Bu, küme durdurulduğunda veya yeniden başlatıldığında önbelleğin temizlendiği ve yeniden doldurulması gerektiği anlamına gelir.

Sorgu sonuçları önbelleğe alma ve disk önbelleği Databricks SQL kullanıcı arabirimi ve BI ile diğer dış istemcilerdeki sorguları etkiler.