Uso
view: my_view {
derived_table: {
indexes: ["order_id"]
...
}
}
|
Jerarquía
indexes- o - indexes |
Valor predeterminado
Ninguno
Acepta
Los nombres de una o más columnas en una PDT o una tabla de datos agregados
Reglas especiales
indexes solo se admite en dialectos específicos
|
Definición
El parámetro indexes te permite aplicar índices a las columnas de una tabla derivada persistente (PDT) o una tabla de datos agregados. Cuando agregas más de una columna, Looker crea un índice para cada columna que especificas; no crea un índice único de varias columnas. Si falta el parámetro indexes en la consulta, Looker te advertirá que agregues un parámetro indexes para mejorar el rendimiento de la consulta. Obtén más información sobre la indexación de tablas derivadas persistentes en la página Tablas derivadas en la documentación de Looker.
Consulta la sección Compatibilidad de dialectos con
indexesen esta página para obtener la lista de dialectos que admitenindexes.El parámetro
indexessolo funciona con tablas que son persistentes, como las PDT y las tablas de datos agregados.indexesno se admite para las tablas derivadas sin una estrategia de persistencia.Además, el parámetro
indexesno se admite para las tablas derivadas que se definen concreate_processosql_create.
Si usas indexes con Redshift, crearás una clave de ordenamiento intercalada. También puedes crear claves de ordenamiento regulares con sortkeys, pero no puedes usar ambas al mismo tiempo. Las claves de distribución se pueden crear con distribution.
En general, los índices se deben aplicar a las claves primarias y a las columnas de fecha o hora.
Ejemplos
Para una base de datos tradicional (por ejemplo, MySQL o Postgres), crea una tabla derivada persistente customer_order_facts. La PDT debe volver a compilarse cuando se active el order_datagroup grupo de datos y tendrá un índice en 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"]
}
}
Para una base de datos tradicional, crea una tabla derivada persistente customer_order_facts que se base en una consulta en SQL y aplique un índice en 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"]
}
}
Para una base de datos tradicional, crea una tabla derivada customer_day_facts con índices en customer_id y 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"]
}
}
Para una base de datos de Redshift, crea una tabla derivada customer_day_facts con una clave de ordenamiento intercalada creada a partir de customer_id y 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"]
}
}
Compatibilidad de dialectos con indexes
La capacidad de usar indexes depende del dialecto de la base de datos que use tu conexión de Looker. Si trabajas con algo que no sea una base de datos tradicional (por ejemplo, MySQL o Postgres), es posible que tu base de datos no admita el parámetro indexes. Looker te advertirá si este es el caso. Puedes intercambiar el parámetro indexes por uno que sea adecuado para tu conexión de base de datos. Obtén más información sobre estos parámetros en la página de documentación Parámetros de vista.
En la versión más reciente de Looker, los siguientes dialectos admiten indexes:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 | |
| 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+ | |
| 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 |