Utilizzo
view: my_view {
derived_table: {
indexes: ["order_id"]
...
}
}
|
Gerarchia
indexes- oppure - indexes |
Valore predefinito
Nessuno
Accetta
I nomi di una o più colonne in una PDT o in una tabella aggregata
Regole speciali
indexes è supportato solo in dialetti specifici
|
Definizione
Il parametro indexes consente di applicare 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 crea un singolo indice su più colonne. Se il parametro indexes non è presente nella query, Looker ti avviserà 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 Supporto dei dialetti per
indexesin questa pagina per l'elenco dei dialetti che supportanoindexes.Il parametro
indexesfunziona solo con tabelle permanenti, come le PDT e le tabelle aggregate.indexesnon è supportato per le tabelle derivate senza una strategia di persistenza.Inoltre, il parametro
indexesnon è supportato per le tabelle derivate definite utilizzandocreate_processosql_create.
Se utilizzi indexes con Redshift, creerai una chiave di ordinamento interleaved. Puoi anche creare chiavi di ordinamento regolari utilizzando sortkeys, ma non puoi utilizzarle entrambe contemporaneamente. Le chiavi di distribuzione possono essere create con distribution.
In generale, gli indici devono essere applicati alle chiavi primarie e alle colonne di 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 viene attivato il gruppo di dati order_datagroup 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 dei dialetti per indexes
La possibilità di utilizzare indexes dipende dal dialetto del database utilizzato dalla connessione di Looker. Se stai lavorando con un database non tradizionale (ad esempio MySQL o Postgres), il tuo database potrebbe non supportare il parametro indexes. Looker ti avviserà se questo è il caso. Puoi sostituire il parametro indexes con uno appropriato per la connessione al database. Scopri di più su questi parametri nella pagina della documentazione Parametri di visualizzazione.
Nell'ultima release di Looker, i seguenti dialetti supportano indexes:
| Dialetto | Supportata? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Dremio 26+ with Arrow Flight SQL | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MongoSQL | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |