Abfragen zwischenspeichern

Looker reduziert die Belastung Ihrer Datenbank und erhöht die Leistung, indem zwischengespeicherte Ergebnisse früherer SQL-Abfragen verwendet werden (sofern verfügbar), die gemäß Ihrer Cache-Richtlinie zulässig sind. Auf dieser Seite wird die Standard-Caching-Richtlinie von Looker beschrieben. Außerdem werden die verfügbaren Optionen zum Ändern der Dauer von zwischengespeicherten Ergebnissen in Ihrer Looker-Instanz erläutert.

Wie Looker im Cache gespeicherte Abfragen verwendet

Bei SQL-Abfragen funktioniert der Caching-Mechanismus in Looker so:

  1. Wenn eine SQL-Abfrage über ein Explore, einen Look oder ein Dashboard ausgeführt wird, prüft Looker den Cache, um festzustellen, ob bereits zwischengespeicherte Ergebnisse für diese Abfrage vorhanden sind. Ergebnisse im Cache werden nur verwendet, wenn alle Aspekte der Abfrage gleich sind, einschließlich Felder, Filter, Parameter und Zeilenlimits.

  2. Wenn zwischengespeicherte Ergebnisse gefunden werden, prüft Looker anhand der im LookML-Modell definierten Caching-Richtlinie, ob die zwischengespeicherten Ergebnisse abgelaufen sind. Wenn die zwischengespeicherten Ergebnisse nicht abgelaufen sind, verwendet Looker sie für die Abfrage.

  3. Wenn für die Abfrage keine zwischengespeicherten Ergebnisse gefunden werden oder die zwischengespeicherten Ergebnisse abgelaufen sind, führt Looker die Abfrage für die Datenbank aus. Die neuen Abfrageergebnisse werden dann im Cache gespeichert.

Die Standardrichtlinie für die Cache-Aufbewahrung beträgt eine Stunde. Im nächsten Abschnitt Cache-Aufbewahrungsrichtlinien ändern wird beschrieben, wie Sie diesen Zeitraum verkürzen oder verlängern können. Außerdem werden Optionen zum Synchronisieren Ihrer Cache-Aufbewahrungsrichtlinie mit dem ETL-Prozess (Extrahieren, Transformieren und Laden) Ihrer Datenbank beschrieben.

Cache-Aufbewahrungsrichtlinien ändern

Sie können Richtlinien für die Cache-Aufbewahrung auf LookML-Explore-Ebene und auf LookML-Modellebene festlegen.

Der empfohlene Caching-Mechanismus ist die Verwendung eines datagroup-Parameters auf Modellebene. Mit Datengruppen können Sie die Richtlinie zur Cache-Aufbewahrung eines Modells mit dem ETL-Zeitplan Ihrer Datenbank synchronisieren. Verwenden Sie dazu den Parameter sql_trigger und legen Sie mit dem Parameter max_cache_age ein Cache-Ablaufintervall fest. Weitere Informationen finden Sie im Abschnitt Zwischenspeichern von Abfragen und Neuerstellen von persistenten abgeleiteten Tabellen (PDTs) mit Datengruppen.

Alternativ können Sie den Parameter persist_for auf Modellebene oder Explore-Ebene verwenden. Wenn Sie den Parameter persist_for auf diese Weise verwenden, können Sie ein Cache-Ablaufintervall festlegen, das das Standardintervall von einer Stunde überschreibt. Die Verwendung von persist_for ist jedoch aus mehreren Gründen weniger robust als die Verwendung von Datengruppen, wie im Abschnitt Abfragen mit „persist_for“ im Cache speichern beschrieben.

Wenn für ein Explore oder Modell eine Datengruppe oder persist_for definiert ist, wird die Cache-Richtlinie so geändert:

  • Vor Ablauf des persist_for-Intervalls oder des max_cache_age-Intervalls der Datengruppe: Wenn die Abfrage noch einmal ausgeführt wird, ruft Looker Daten aus dem Cache ab.
  • Zu dem Zeitpunkt, an dem das persist_for-Intervall oder das max_cache_age-Intervall der Datengruppe abläuft: Looker löscht Daten aus dem Cache.
  • Nach Ablauf des Intervalls persist_for oder des Intervalls max_cache_age der Datengruppe: Wenn die Abfrage noch einmal ausgeführt wird, ruft Looker die Daten direkt aus der Datenbank ab und setzt das Intervall persist_for oder max_cache_age zurück.

Wichtig ist hier, dass die Daten aus dem Cache gelöscht werden, wenn das Intervall persist_for oder max_cache_age abläuft.

Wenn der Cache das Speicherlimit erreicht, werden Daten anhand eines LRU-Algorithmus (Least Recently Used, am wenigsten zuletzt verwendet) entfernt. Es gibt keine Garantie, dass Daten mit abgelaufenen persist_for- oder max_cache_age-Intervallen sofort gelöscht werden.

Zeit minimieren, die Ihre Daten im Cache verbringen

Looker schreibt Abfrageergebnisse immer in den Cache. Auch wenn die Intervalle persist_for und max_cache_age auf null gesetzt sind, können zwischengespeicherte Daten bis zu 10 Minuten lang gespeichert werden. Alle Kundendaten, die im Festplatten-Cache gespeichert werden, sind mit dem Advanced Encryption Standard (AES) verschlüsselt.

So minimieren Sie die Zeit, in der Daten im Cache gespeichert werden:

  • Legen Sie für alle persist_for-Parameter (für ein Modell oder einen Explore) oder max_cache_age-Parameter (für eine Datengruppe) den Wert auf 0 minutes fest. Looker löscht den Cache, wenn das persist_for-Intervall abläuft oder wenn die Daten das in der zugehörigen Datengruppe angegebene max_cache_age-Intervall erreichen. Es ist nicht erforderlich, den persist_for-Parameter von persistenten abgeleiteten Tabellen (Persistent Derived Tables, PDTs) auf 0 minutes festzulegen, um die Menge der im Cache gespeicherten Daten zu minimieren. PDTs werden in die Datenbank selbst und nicht in den Cache geschrieben.)
  • Legen Sie für den Parameter suggest_persist_for ein kleines Intervall fest. Der Wert suggest_persist_for gibt an, wie lange Looker Filtersuggestionen im Cache behalten soll. Die Filtervorschläge basieren auf einer Abfrage der Werte für das Feld, das gefiltert wird. Diese Abfrageergebnisse werden im Cache gespeichert, damit Looker schnell Vorschläge bereitstellen kann, während der Nutzer Text in das Filtertextfeld eingibt. Standardmäßig werden die Filtervorschläge 6 Stunden lang im Cache gespeichert. Um die Zeit zu minimieren, in der Ihre Daten im Cache gespeichert werden, legen Sie den Wert suggest_persist_for auf einen niedrigeren Wert wie 5 minutes fest.

Prüfen, ob eine Abfrage aus dem Cache zurückgegeben wurde

In einem Explore-Fenster können Sie feststellen, ob eine Abfrage aus dem Cache zurückgegeben wurde. Sehen Sie sich dazu die Informationen neben der Schaltfläche Ausführen an, nachdem Sie eine Abfrage ausgeführt haben.

Wenn eine Anfrage aus dem Cache zurückgegeben wird, wird der Text „aus dem Cache“ angezeigt. Andernfalls wird die Zeit angezeigt, die für die Rückgabe der Abfrage benötigt wurde.

Erzwingen, dass neue Ergebnisse aus der Datenbank generiert werden

In einem Explore-Fenster können Sie erzwingen, dass neue Ergebnisse aus der Datenbank abgerufen werden. Nachdem Sie eine Abfrage ausgeführt haben (einschließlich Abfragen mit zusammengeführten Ergebnissen), wählen Sie im Zahnradmenü Aktionen für explorative Datenanalyse die Option Cache leeren und aktualisieren aus.

Abfragen im Cache speichern und persistente abgeleitete Tabellen (PDTs) mit Datengruppen neu erstellen

Mit Datengruppen können Sie den ETL-Zeitplan (Extrahieren, Transformieren und Laden) Ihrer Datenbank mit der Caching-Richtlinie von Looker und dem Zeitplan für die Neuerstellung von persistenten abgeleiteten Tabellen (PDTs) koordinieren.

Mit einer Datengruppe können Sie den Trigger für die Neuerstellung von PDTs basierend darauf festlegen, wann neue Daten in Ihre Datenbank eingefügt werden. Anschließend können Sie dieselbe Datengruppe auf Ihr Explore oder Modell anwenden, damit auch die im Cache gespeicherten Ergebnisse ablaufen, wenn Ihre PDTs neu erstellt werden.

Alternativ können Sie eine Datengruppe verwenden, um den Trigger für die Neuerstellung von PDTs von Ihrem maximalen Cache-Alter zu entkoppeln. Das kann nützlich sein, wenn Sie einen Explore haben, der sowohl auf Daten basiert, die sehr häufig aktualisiert werden, als auch mit einer PDT verknüpft ist, die seltener neu erstellt wird. In diesem Fall soll der Abfragecache möglicherweise häufiger zurückgesetzt werden, als die PDT neu erstellt wird.

Datengruppe definieren

Definieren Sie eine Datengruppe mit dem Parameter datagroup entweder in einer