Criteri di caching (cache ad accesso frequente e sporadico)
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
Per garantire prestazioni di query veloci, viene usato un sistema di cache dei dati multilivello. I dati vengono archiviati in una risorsa di archiviazione affidabile, ma alcune parti vengono memorizzate nella cache nei nodi di elaborazione, unità SSD o anche in RAM per un accesso più rapido.
I criteri di memorizzazione nella cache consentono di scegliere quali dati devono essere memorizzati nella cache. È possibile distinguere tra cache dei dati ad accesso frequente e cache dei dati ad accesso sporadico impostando un criterio di memorizzazione nella cache sui dati ad accesso frequente. I dati ad accesso frequente vengono mantenuti nell'archiviazione SSD locale per prestazioni di query più veloci, mentre i dati ad accesso sporadico vengono archiviati in un archivio affidabile, che è più economico ma più lento per l'accesso.
La cache usa il 95% del disco SSD locale per i dati ad accesso frequente. Se lo spazio non è sufficiente, i dati più recenti vengono mantenuti preferibilmente nella cache. Il 5% rimanente viene usato per i dati non classificati come ad accesso frequente. Questa progettazione garantisce che le query che caricano molti dati ad accesso sporadico non rimuoveranno i dati ad accesso frequente dalla cache.
Le migliori prestazioni delle query vengono ottenute quando tutti i dati inseriti vengono memorizzati nella cache. Tuttavia, alcuni dati potrebbero non giustificare la spesa di essere mantenuti nella cache ad accesso frequente. Ad esempio, i record di log precedenti a cui si accede raramente potrebbero essere considerati meno cruciali. In questi casi, i team spesso scelgono di ridurre le prestazioni di query rispetto al pagamento per mantenere i dati ad accesso frequente.
Usare i comandi di gestione per modificare i criteri di memorizzazione nella cache a livello di database, tabella o vista materializzata.
Nota
Per informazioni sulla frequenza di consumo, vedere Eventhouse e KQL database consumption( Consumo di database KQL).
Usare i comandi di gestione per modificare i criteri di memorizzazione nella cache a livello di cluster, database, tabella o vista materializzata.
Suggerimento
Il cluster è progettato per query ad hoc con set di risultati intermedi che rientrano nella RAM totale del cluster. Per i processi di grandi dimensioni, ad esempio map-reduce, può essere utile archiviare i risultati intermedi nell'archiviazione permanente. A tale scopo, creare un processo di esportazione continua. Questa funzionalità consente di eseguire query batch a esecuzione prolungata usando servizi come HDInsight o Azure Databricks.
Modalità di applicazione dei criteri di memorizzazione nella cache
Quando i dati vengono inseriti, il sistema tiene traccia della data e dell'ora dell'inserimento e dell'extent creato. Il valore di data e ora di inserimento dell'extent (o valore massimo, se un extent è stato compilato da più extent preesistenti), viene usato per valutare i criteri di memorizzazione nella cache.
Nota
È possibile specificare un valore per la data e l'ora di inserimento usando la proprietà creationTime
di inserimento .
In questo caso, assicurarsi che la Lookback
proprietà nei criteri di unione Extent effettivi della tabella sia allineata ai valori impostati per creationTime
.
Per impostazione predefinita, i criteri effettivi sono null
, il che significa che tutti i dati vengono considerati ad accesso frequente. Un null
criterio a livello di tabella indica che i criteri vengono ereditati dal database. Un criterio nonnull
a livello di tabella esegue l'override di un criterio a livello di database.
Definizione dell'ambito delle query nella cache ad accesso frequente
Quando si eseguono query, è possibile limitare l'ambito solo ai dati di query nella cache ad accesso frequente.
Nota
La definizione dell'ambito dei dati si applica solo alle entità che supportano i criteri di memorizzazione nella cache, ad esempio tabelle e viste materializzate. Viene ignorato per altre entità, ad esempio tabelle esterne e dati nell'archivio righe.
Esistono diverse possibilità di query:
- Aggiungere una proprietà della richiesta client chiamata
query_datascope
alla query. Valori possibili:default
,all
ehotcache
. - Usare un'istruzione
set
nel testo della query:set query_datascope='...'
. I valori possibili sono uguali a per la proprietà della richiesta client. - Aggiungere un
datascope=...
testo immediatamente dopo un riferimento a una tabella nel corpo della query. I valori possibili sonoall
ehotcache
.
Il default
valore indica l'uso delle impostazioni predefinite, che determinano che la query deve coprire tutti i dati.
Se si verifica una discrepanza tra i diversi metodi, set
ha la precedenza sulla proprietà della richiesta client. La specifica di un valore per un riferimento di tabella ha la precedenza su entrambi.
Nella query seguente, ad esempio, tutti i riferimenti a tabelle usano solo i dati della cache ad accesso frequente, ad eccezione del secondo riferimento a "T" con ambito per tutti i dati:
set query_datascope="hotcache";
T | union U | join (T datascope=all | where Timestamp < ago(365d)) on X
Memorizzazione dei criteri di memorizzazione nella cache e criteri di conservazione
I criteri di memorizzazione nella cache sono indipendenti dai criteri di conservazione:
- I criteri di memorizzazione nella cache definiscono come classificare in ordine di priorità le risorse. Le query per i dati importanti sono più veloci.
- I criteri di conservazione definiscono l'extent dei dati su cui è possibile eseguire query in una tabella o in un database (in particolare,
SoftDeletePeriod
).
Configurare questo criterio per ottenere un equilibrio ottimale tra costi e prestazioni, in base al modello di query previsto.
Esempio:
SoftDeletePeriod
= 56dhot cache policy
= 28d
Nell'esempio, gli ultimi 28 giorni di dati vengono archiviati nell'unità SSD e i 28 giorni aggiuntivi di dati vengono archiviati nell'archivio BLOB di Azure. È possibile eseguire query sui 56 giorni completi di dati.