Zwischenspeicherungsrichtlinie (heißer und kalter Cache)
Azure Data Explorer verwendet ein Datencachesystem mit mehreren Ebenen, um eine schnelle Abfrageleistung sicherzustellen. Daten werden in zuverlässigem Speicher gespeichert, z. B. Azure Blob Storage, aber Teile davon werden auf Verarbeitungsknoten, SSD oder sogar im RAM zwischengespeichert, um den Zugriff zu beschleunigen.
Real-Time Analytics verwendet ein Datencachesystem mit mehreren Ebenen, um eine schnelle Abfrageleistung zu gewährleisten. Daten werden in zuverlässigem Speicher wie OneLake gespeichert, aber Teile davon werden auf Verarbeitungsknoten, SSD oder sogar im RAM zwischengespeichert, um den Zugriff zu beschleunigen.
Mit der Zwischenspeicherungsrichtlinie können Sie auswählen, welche Daten zwischengespeichert werden sollen. Sie können zwischen heißem Datencache und kaltem Datencache unterscheiden, indem Sie eine Zwischenspeicherungsrichtlinie für heiße Daten festlegen. Heiße Daten werden im lokalen SSD-Speicher gespeichert, um die Abfrageleistung zu beschleunigen, während kalte Daten in zuverlässigem Speicher gespeichert werden, der billiger, aber langsamer zugänglich ist.
Der Cache verwendet 95 % des lokalen SSD-Datenträgers für heiße Daten. Wenn nicht genügend Speicherplatz vorhanden ist, werden die neuesten Daten bevorzugt im Cache gespeichert. Die verbleibenden 5 % werden für Daten verwendet, die nicht als heiß kategorisiert werden. Dieser Entwurf stellt sicher, dass Abfragen, die viele kalte Daten laden, keine heißen Daten aus dem Cache entfernen.
Die beste Abfrageleistung wird erreicht, wenn alle erfassten Daten zwischengespeichert werden. Bestimmte Daten können jedoch nicht den Aufwand dafür rechtfertigen, im heißen Cache gespeichert zu werden. Für instance können selten verwendete alte Protokolldatensätze als weniger wichtig angesehen werden. In solchen Fällen entscheiden sich Teams häufig für eine niedrigere Abfrageleistung als für die Bezahlung, um die Daten warm zu halten.
Verwenden Sie Verwaltungsbefehle, um die Zwischenspeicherungsrichtlinie auf Datenbank-, Tabellen- oder materialisierter Sichtebene zu ändern.
Verwenden Sie Verwaltungsbefehle, um die Zwischenspeicherungsrichtlinie auf Cluster-, Datenbank-, Tabellen- oder materialisierter Sichtebene zu ändern.
Tipp
Ihr Cluster ist für Ad-hoc-Abfragen mit zwischengeschalteten Resultsets konzipiert, die in den Gesamten RAM des Clusters passen. Bei großen Aufträgen, z. B. map-reduce, kann es hilfreich sein, Zwischenergebnisse in persistentem Speicher zu speichern. Erstellen Sie hierzu einen Auftrag für den fortlaufenden Export . Mit diesem Feature können Sie Batchabfragen mit langer Ausführungszeit mithilfe von Diensten wie HDInsight oder Azure Databricks durchführen.
Anwendung der Zwischenspeicherungsrichtlinie
Wenn Daten erfasst werden, verfolgt das System das Datum und die Uhrzeit der Erfassung sowie den umfang, der erstellt wurde. Der Erfassungsdatums- und Uhrzeitwert des Blöckes (oder der Höchstwert, wenn ein Bereich aus mehreren bereits vorhandenen Blöcken erstellt wurde) wird verwendet, um die Zwischenspeicherungsrichtlinie auszuwerten.
Hinweis
Sie können einen Wert für das Erfassungsdatum und die Erfassungszeit angeben, indem Sie die Erfassungseigenschaft verwenden creationTime
.
Stellen Sie dabei sicher, dass die Lookback
Eigenschaft in der effektiven Richtlinie für die Zusammenführung von Blöcken der Tabelle mit den Werten übereinstimmt, die Sie für festgelegt haben creationTime
.
Standardmäßig ist null
die effektive Richtlinie . Dies bedeutet, dass alle Daten als heiß angesehen werden. Eine null
Richtlinie auf Tabellenebene bedeutet, dass die Richtlinie von der Datenbank geerbt wird. Eine Richtlinie auf Nicht-Tabellenebenenull
überschreibt eine Richtlinie auf Datenbankebene.
Eingrenzen von Abfragen in hot cache
Beim Ausführen von Abfragen können Sie den Bereich auf abfragende Daten im heißen Cache beschränken.
Hinweis
Der Datenbereich gilt nur für Entitäten, die Zwischenspeicherungsrichtlinien unterstützen, z. B. Tabellen und materialisierte Sichten. Sie wird für andere Entitäten ignoriert, z. B. externe Tabellen und Daten im Zeilenspeicher.
Es gibt mehrere Abfragemöglichkeiten:
- Fügen Sie der Abfrage eine Clientanforderungseigenschaft hinzu, die aufgerufen wird
query_datascope
. Mögliche Werte:default
,all
undhotcache
. - Verwenden Sie eine
set
-Anweisung im Abfragetext:set query_datascope='...'
. Mögliche Werte sind identisch mit denen für die Clientanforderungseigenschaft. - Fügen Sie unmittelbar nach einem Tabellenverweis im Abfragetext einen
datascope=...
Text hinzu. Mögliche Werte sindall
undhotcache
.
Der default
Wert gibt die Verwendung der Standardeinstellungen des Clusters an, die festlegen, dass die Abfrage alle Daten abdecken soll.
Wenn eine Diskrepanz zwischen den verschiedenen Methoden besteht, set
hat Vorrang vor der Clientanforderungseigenschaft. Die Angabe eines Werts für einen Tabellenverweis hat Vorrang vor beiden.
In der folgenden Abfrage verwenden z. B. alle Tabellenverweise nur hot cache-Daten, mit Ausnahme des zweiten Verweises auf "T", der auf alle Daten ausgerichtet ist:
set query_datascope="hotcache";
T | union U | join (T datascope=all | where Timestamp < ago(365d)) on X
Zwischenspeicherungsrichtlinie und Aufbewahrungsrichtlinie
Die Zwischenspeicherungsrichtlinie ist unabhängig von der Aufbewahrungsrichtlinie:
- Die Zwischenspeicherungsrichtlinie definiert, wie Ressourcen priorisiert werden. Abfragen für wichtige Daten sind schneller.
- Die Aufbewahrungsrichtlinie definiert den Umfang der abfragbaren Daten in einer Tabelle/Datenbank (insbesondere
SoftDeletePeriod
).
Konfigurieren Sie diese Richtlinie, um basierend auf dem erwarteten Abfragemuster ein optimales Gleichgewicht zwischen Kosten und Leistung zu erzielen.
Beispiel:
SoftDeletePeriod
= 56dhot cache policy
= 28d
Im Beispiel befinden sich die Daten der letzten 28 Tage auf der Cluster-SSD, und die zusätzlichen 28 Tage der Daten werden in Azure Blob Storage gespeichert. Sie können Abfragen für die gesamten 56 Tage der Daten ausführen.
Verwandte Inhalte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für