Dela via


Cachelagring av frågor

Cachelagring är en viktig teknik för att förbättra prestanda för informationslagersystem genom att undvika behovet av att omkompansluta eller hämta samma data flera gånger. I Databricks SQL kan cachelagring avsevärt påskynda frågekörningen och minimera lageranvändningen, vilket resulterar i lägre kostnader och effektivare resursanvändning. Varje cachelagringslager förbättrar frågeprestanda, minimerar klusteranvändningen och optimerar resursanvändningen för en sömlös informationslagerupplevelse.

Cachelagring ger många fördelar i informationslager, bland annat:

  • Hastighet: Genom att lagra frågeresultat eller data som används ofta i minnet eller andra snabba lagringsmedier kan cachelagring avsevärt minska körningstiderna för frågor. Den här lagringen är särskilt fördelaktig för repetitiva frågor, eftersom systemet snabbt kan hämta cachelagrade resultat i stället för att omberäkna dem.
  • Minskad klusteranvändning: Cachelagring minimerar behovet av ytterligare beräkningsresurser genom att återanvända tidigare beräknade resultat. Detta minskar den totala lagertiden och efterfrågan på ytterligare beräkningskluster, vilket leder till kostnadsbesparingar och bättre resursallokering.

Typer av frågecacheminnen i Databricks SQL

Databricks SQL utför flera typer av cachelagring av frågor.

frågecacheminnen

  • Databricks SQL UI-cache: Per användare cachelagring av alla fråge- och instrumentpanelsresultat i Databricks SQL-användargränssnittet. När användarna först öppnar en instrumentpanel eller SQL-fråga visar Databricks SQL UI-cachen det senaste frågeresultatet, inklusive resultatet från schemalagda körningar.

    Databricks SQL UI-cachen har som mest en 7-dagars livscykel. Cachen finns i ditt Azure Databricks-filsystem i ditt konto. Du kan ta bort frågeresultat genom att köra frågan igen som du inte längre vill ska lagras. När de gamla frågeresultaten har körts igen tas de bort från cacheminnet. Dessutom ogiltigförklaras cacheminnet när de underliggande tabellerna har uppdaterats.

  • Resultatcache: Per klustercachelagring av frågeresultat för alla frågor via SQL-lager. Resultatcachelagring omfattar både lokala och fjärranslutna resultatcacheminnen, som fungerar tillsammans för att förbättra frågeprestanda genom att lagra frågeresultat i minne eller fjärranslutna lagringsmedier.

    • Lokal cache: Den lokala cachen är en minnesintern cache som lagrar frågeresultat för klustrets livslängd eller tills cachen är full, beroende på vilket som kommer först. Den här cachen är användbar för att påskynda repetitiva frågor, vilket eliminerar behovet av att omkomputera samma resultat. Men när klustret har stoppats eller startats om rensas cacheminnet och alla frågeresultat tas bort.
    • Fjärrresultatcache: Fjärrresultatcacheminnet är ett cachesystem utan server som behåller frågeresultat genom att spara dem som arbetsytesystemdata. Det innebär att cacheminnet inte är ogiltigt när ett SQL-lager stoppas eller startas om. Fjärrresultatcache adresserar en vanlig smärtpunkt vid cachelagring av frågeresultat i minnet, som bara förblir tillgänglig så länge beräkningsresurserna körs. Fjärrcachen är en beständig delad cache över alla lager i en Databricks-arbetsyta.

    Åtkomst till fjärrresultatcachen kräver ett löpande lager. När du bearbetar en fråga tittar ett kluster först i sin lokala cache och tittar sedan i fjärrresultatcachen om det behövs. Endast om frågeresultatet inte cachelagras i någon av cacheminnena körs frågan. Både den lokala cachen och fjärrcachen har en livscykel på 24 timmar, som börjar vid cacheinmatning. Fjärrresultatcachen bevaras genom att ett SQL-lager stoppas eller startas om. Båda cacheminnena är ogiltiga när de underliggande tabellerna uppdateras.

    Fjärrresultatcache är tillgängligt för frågor som använder ODBC/JDBC-klienter och SQL-instruktions-API.

    Om du vill inaktivera cachelagring av frågeresultat kan du köra SET use_cached_result = false i SQL-redigeraren.

    Viktigt!

    Du bör endast använda det här alternativet för testning eller benchmarking.

  • Diskcache: Lokal SSD-cachelagring för data som lästs från datalagring för frågor via SQL-lager. Diskcacheminnet är utformat för att förbättra frågeprestanda genom att lagra data på disk, vilket möjliggör accelererade dataläsningar. Data cachelagras automatiskt när filer hämtas, med ett snabbt mellanliggande format. Genom att lagra kopior av filerna på det lokala lagringsutrymmet som är kopplat till beräkningsnoder ser diskcachen till att data ligger närmare arbetarna, vilket ger bättre frågeprestanda. Se Optimera prestanda med cachelagring på Azure Databricks.

Utöver den primära funktionen identifierar diskcachen automatiskt ändringar i de underliggande datafilerna. När den identifierar ändringar ogiltigförklaras cacheminnet. Diskcachen delar samma livscykelegenskaper som den lokala resultatcachen. Det innebär att när klustret stoppas eller startas om rensas cacheminnet och måste fyllas i igen.

Cachelagring av frågeresultat och diskcache påverkar frågor i Databricks SQL-användargränssnittet och BI och andra externa klienter.