Optimering och cachelagring av datauppsättningar

AI/BI-instrumentpaneler cachelagrar frågeresultat för att förbättra inläsningstiderna. Den här sidan förklarar hur cachelagring för dashboards och optimeringar av datauppsättningar fungerar, när dashboards använder cachelagrade resultat och när de kör om frågor mot ett SQL-datalager.

Frågeprestanda

Du kan granska frågor och deras prestanda i arbetsytans frågehistorik. Frågehistoriken visar SQL-frågor som utförs med hjälp av SQL-lager. Klicka på ikonen Historik.Frågehistorik i sidofältet för att visa frågehistoriken. Se Frågehistorik.

För instrumentpanelsdatauppsättningar tillämpar Azure Databricks prestandaoptimeringar beroende på datamängdens resultatstorlek. Information om tröskelvärden för datamängdens prestanda finns i Tröskelvärden för datamängdens prestanda.

Datasetoptimeringar

Dina instrumentpaneler optimeras för hastighet genom att utföra filtrerings- och aggregeringsåtgärder, som drivs av filter eller visualiseringsinställningar, direkt i webbläsaren när det är möjligt. Dessa prestandaoptimeringar har följande gränser:

Storlek på datauppsättning Bearbetningsbeteende
Små (≤ 100 000 rader och ≤ 100 MB) För optimal instrumentpanelshastighet körs filtrering och aggregering i webbläsaren när den första datamängden har lästs in. Eftersom dessa åtgärder bearbetas lokalt undviker de ytterligare interaktion med informationslagret och visas inte i frågehistoriken.
Stora (> 100 000 rader eller > 100 MB) Filtrering och aggregering hanteras på serverdelsservern i stället för i webbläsaren. Den första datamängdsfrågan är omsluten i en SQL-sats WITH och den resulterande frågan visas i frågehistoriken.
Kombinerade frågor (stora datamängder) För visualiseringsfrågor som skickas till serverdelen kombineras separata visualiseringsfrågor mot samma datauppsättning som delar samma GROUP BY satser och filterpredikat till en enda fråga för bearbetning. I det här fallet kan användare se en kombinerad fråga i frågehistoriken som hämtar resultat för flera visualiseringar eller filter.

Anmärkning

Parameterar infogar värden direkt i en fråga vid körning, så dessa åtgärder visas alltid i frågehistoriken.

Anmärkning

När du laddar ned en trunkerad tabell körs en fråga. När en tabell visar trunkerade resultat eftersom datamängden överskrider 100 000 rader, kör nedladdning av data som CSV en fråga mot SQL-lagret. Den här frågan visas i frågehistoriken.

Cachelagring och data färskhet

Instrumentpaneler har en 24-timmars resultatcache för att optimera initiala loadingtider, och fungerar enligt bästa förmåga. Det innebär att även om systemet alltid försöker använda historiska frågeresultat som är länkade till instrumentpanelens autentiseringsuppgifter för att förbättra prestanda, finns det vissa fall där cachelagrade resultat inte kan skapas eller underhållas. Cachelagrade data har ingen specifik minnesgräns eller fast antal frågor.

För att förbättra inläsningstiderna kontrollerar instrumentpanelerna först instrumentpanelens cacheminne. Om inga cacheresultat är tillgängliga kontrollerar de den allmänna frågeresultatcachen. Dessa två cacheminnen är ogiltiga på olika sätt. Frågeresultatcachen returnerar aldrig inaktuella data eftersom en ändring av underliggande data ogiltigförklarar alla dess poster. Kontrollpanelens cache har ett annat beteende för invalidering. Cacheminnet på instrumentpanelen kan returnera resultat som är upp till 24 timmar gamla även när underliggande data har ändrats och en ändring av underliggande data inte automatiskt ogiltigförklarar eller uppdaterar instrumentpanelens cacheminne.

Om du vill uppdatera instrumentpanelens cacheminne på ett tillförlitligt sätt konfigurerar du ett instrumentpanelsschema. En ändring av underliggande data uppdaterar inte instrumentpanelens cacheminne på egen hand och uppdatering av data som en del av ett pipelinesteg uppdaterar inte instrumentpanelens cacheminne. Förutom en schemalagd uppdatering uppdateras instrumentpanelens cache endast när en instrumentpanel kör en fråga som cacheminnet inte kan hantera.

Anmärkning

Servering av resultat från instrumentpanelens cache startar inte SQL-lagret. När en instrumentpanel returnerar cachelagrade resultat läser Azure Databricks från cacheminnet utan att köra en fråga, så det underliggande SQL-lagret behöver inte vara igång. Datalagret startar endast när en instrumentpanel kör en fråga som cachen inte kan besvara.

För instrumentpaneler med flera sidor gäller följande:

  • Redigering av ett utkast i instrumentpanelen läser in och cachelagrar alla datamängder.
  • När tittarna öppnar en publicerad instrumentpanel körs och cachelagras endast datauppsättningar som stöder den aktiva sidan.
  • Om ett schema anges uppdateras alla datauppsättningar enligt schemat och dessa resultat cachelagras.

I följande tabell beskrivs hur cachelagring varierar beroende på instrumentpanelens status och autentiseringsuppgifter:

Instrumentpanelstyp Typ av cachelagring
Publicerad instrumentpanel med behörigheter för delad data Delad cache. Alla tittare ser samma resultat.
Utkast till instrumentpanel eller instrumentpanel som publicerats med enskilda databehörigheter Per användares cacheminne. Tittarna ser resultat baserat på deras databehörigheter.

Instrumentpaneler använder automatiskt cachelagrade frågeresultat om resultatet hämtades för mindre än 24 timmar sedan, även om underliggande data ändrades efter den senaste frågan. Om inaktuella resultat finns och parametrar tillämpas på instrumentpanelen körs frågorna igen om inte samma parametrar har använts under de senaste 24 timmarna. På samma sätt uppmanar tillämpning av filter på datauppsättningar som överskrider 100 000 rader frågor att köra om såvida inte samma filter tidigare har tillämpats under de senaste 24 timmarna.

Aktuella tidsstämpelfunktioner och cache-ogiltighet

Om du använder current_timestamp() eller liknande funktioner i SQL-frågan ogiltigförklaras inte dashboardens cacheminne. Dessa funktioner ogiltigförklarar dock frågeresultatcachen, som inspekterar SQL-frågan, och utlöser en cacheuppdatering.

Schemalagda frågor

Om du lägger till ett schema på en instrumentpanel som publicerats med behörigheter för delade data kan det avsevärt påskynda den första inläsningsprocessen för alla instrumentpanelsvisningsprogram.

För varje schemalagd instrumentpanelsuppdatering sker följande:

  • All SQL-logik som definierar datauppsättningar körs enligt det angivna tidsintervallet.
  • Resultaten fyller i frågeresultatets cacheminne och hjälper till att förbättra den första inläsningstiden för instrumentpanelen.