persist_for (per le tabelle derivate)

Questa pagina si riferisce al parametro persist_for che fa parte di una derived_table.

persist_for può essere utilizzato anche nell'ambito di un'esplorazione, come descritto nella pagina della documentazione dedicata al parametro persist_for (per le esplorazioni).

persist_for può essere utilizzato anche nell'ambito di un modello, come descritto nella pagina della documentazione dedicata al parametro persist_for (per i modelli).

Utilizzo

view: my_view {
  derived_table: {
    persist_for: "24 hours"
    ...
  }
}
Gerarchia
persist_for
Valore predefinito
Nessuno

Accetta
Una stringa contenente un numero intero seguito da un periodo di tempo (secondi, minuti o ore)

Definizione

Valuta la possibilità di utilizzare invece un parametro datagroup e un parametro datagroup_trigger, descritti nella documentazione sulla memorizzazione nella cache delle query.

persist_for ti consente di impostare il periodo di tempo massimo in cui una tabella derivata persistente può essere utilizzata prima di essere rigenerata. Quando un utente esegue una query che si basa su una tabella derivata persist_for, Looker controlla l'età della tabella rispetto a persist_for. Se l'età è superiore all'impostazione persist_for, la tabella derivata viene rigenerata prima dell'esecuzione della query. Se l'età è inferiore all'impostazione persist_for, viene utilizzata la tabella derivata esistente.

persist_for per una PDT viene eseguito indipendentemente dai parametri persist_for per modelli ed esplorazioni.

Se l'amministratore ti ha concesso l'autorizzazione develop, puoi forzare la rigenerazione di una tabella derivata prima che venga raggiunta la sua età di persist_for. Seleziona l'opzione Ricostruisci tabelle derivate ed esegui dal menu a discesa dell'icona a forma di ingranaggio Azioni di esplorazione.

Per ulteriori dettagli sull'opzione Ricostruisci tabelle derivate ed esegui, consulta la pagina della documentazione Tabelle derivate in Looker.

Esempi

Rigenera la tabella derivata se è precedente a un'ora

persist_for: "1 hour"

Rigenera la tabella derivata se è più vecchia di 1 ora e mezza

persist_for: "90 minutes"

Rigenera la tabella derivata se è più vecchia di un giorno

persist_for: "24 hours"

Aspetti da considerare

persist_for richiede che tu abbia abilitato le tabelle derivate permanenti

persist_for non avrà alcun effetto a meno che tu non abbia attivato la persistenza per le tabelle derivate nella tua istanza di Looker. La maggior parte dei clienti configura le tabelle derivate permanenti quando configura inizialmente Looker. L'eccezione più comune a questa regola riguarda i clienti che collegano Looker a un database di replica PostgreSQL di sola lettura e sostituibile a caldo.

persist_for funziona in modo diverso tra la modalità di sviluppo e la modalità produzione

persist_for dovrebbe funzionare come previsto in modalità di produzione. In modalità Development (Sviluppo), tutte le tabelle derivate vengono mantenute per un massimo di 24 ore, anche se imposti persist_for su un valore più lungo.

Per ulteriori informazioni, consulta la sezione Tabelle persistenti in modalità Development (Sviluppo) della pagina della documentazione Tabelle derivate in Looker.

Alternative a persist_for

Una volta scaduto il periodo di tempo persist_for, Looker non genera automaticamente una nuova tabella derivata. La tabella viene eliminata e una nuova tabella derivata verrà generata la volta successiva che un utente la interroga. Anziché attendere che una query utente attivi la generazione di una tabella derivata, puoi pianificare la rigenerazione automatica di una tabella derivata utilizzando sql_trigger_value.

Differenza tra datagroup e max_cache_age

L'utilizzo del parametro datagroup con un parametro datagroup_trigger offre maggiore flessibilità nell'attivazione della ricreazione della PDT. Tuttavia, il parametro max_cache_age invalida solo la cache e non causa la scadenza dei PDT. Utilizza persist_for con una tabella derivata se vuoi impostare un periodo di tempo massimo prima di eliminare una PDT dallo schema scratch.