Utilizzo
derived_table: {
indici: ["order_id"]
...
}
}
Gerarchia
indexes - oppure - indexes |
Valore predefinito
NessunaAccetta
I nomi di una o più colonne di una PDT o di una tabella aggregataRegole speciali
indexes è supportato solo su dialetti specifici
|
Definizione
Il parametro indexes
consente di applicare gli indici alle colonne di una tabella derivata permanente (PDT) o di una tabella aggregata. Quando aggiungi più di una colonna, Looker crea un indice per ogni colonna specificata, non un unico indice a più colonne. Se la query non contiene il parametro indexes
, Looker ti avvisa di aggiungere un parametro indexes
per migliorare le prestazioni della query. Scopri di più sull'indicizzazione delle tabelle derivate permanenti nella pagina della documentazione Tabelle derivate in Looker.
Consulta la sezione Assistenza di Dialetto per
indexes
di questa pagina per l'elenco di dialetti che supportanoindexes
.Il parametro
indexes
funziona solo con tabelle persistenti, come le PDT e le tabelle aggregate.indexes
non è supportato per le tabelle derivate senza una strategia di persistenza.Inoltre, il parametro
indexes
non è supportato per le tabelle derivate definite concreate_process
osql_create
.
Se utilizzi indexes
con Redshift, creerai una chiave di ordinamento con interfoliazione. Puoi anche creare chiavi di ordinamento regolari utilizzando sortkeys
, ma non puoi utilizzarle contemporaneamente. Le chiavi di distribuzione possono essere create con distribution
.
In generale, gli indici devono essere applicati alle chiavi primarie e alle colonne data o ora.
Esempi
Per un database tradizionale (ad esempio MySQL o Postgres), crea una tabella derivata permanente customer_order_facts
. La PDT deve essere ricreata quando il gruppo di dati order_datagroup
viene attivato e avrà un indice su customer_id
:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: lifetime_orders { field: order.lifetime_orders }
}
datagroup_trigger: order_datagroup
indexes: ["customer_id"]
}
}
Per un database tradizionale, crea una tabella derivata permanente customer_order_facts
basata su una query SQL e applica un indice su customer_id
:
view: customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT(*) AS lifetime_orders
FROM
order
GROUP BY
customer_id ;;
persist_for: "24 hours"
indexes: ["customer_id"]
}
}
Per un database tradizionale, crea una tabella derivata customer_day_facts
con indici sia su customer_id
che su date
:
view: customer_day_facts {
derived_table: {
sql:
SELECT
customer_id,
DATE(order_time) AS date,
COUNT(*) AS num_orders
FROM
order
GROUP BY
customer_id ;;
persist_for: "24 hours"
indexes: ["customer_id", "date"]
}
}
Per un database Redshift, crea una tabella derivata customer_day_facts
con una chiave di ordinamento con interfoliazione creata da customer_id
e date
:
view: customer_day_facts {
derived_table: {
sql:
SELECT
customer_id,
DATE(order_time) AS date,
COUNT(*) AS num_orders
FROM
order
GROUP BY
customer_id ;;
persist_for: "24 hours"
indexes: ["customer_id", "date"]
}
}
Supporto del dialetto per indexes
La possibilità di utilizzare indexes
dipende dal dialetto del database utilizzato dalla connessione di Looker. Se stai lavorando con qualcosa di diverso da un database tradizionale (ad esempio, MySQL o Postgres), il tuo database potrebbe non supportare il parametro indexes
. Looker ti avviserà in questo caso. Puoi sostituire il parametro indexes
con uno appropriato per la tua connessione al database. Scopri di più su questi parametri nella pagina della documentazione Visualizzazione dei parametri.
Nell'ultima release di Looker i seguenti dialetti supportano indexes
: