índices

Uso

view: my_view {
  derived_table: {
    indexes: ["order_id"]
    ...
  }
}
Jerarquía
indexes

O bien:

indexes
Valor predeterminado
Ninguno

Acepta
Nombres de una o más columnas en una PDT o una tabla agregada

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 agregada. Cuando agregas más de una columna, Looker crea un índice para cada columna que especificas; no crea un solo índice 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 para indexar tablas derivadas persistentes en la página de documentación Tablas derivadas en Looker.

Consulta la sección Compatibilidad de dialectos con indexes en esta página para ver la lista de dialectos que admiten indexes.

El parámetro indexes solo funciona con tablas persistentes, como las PDT y las tablas agregadas. indexes no se admite para las tablas derivadas sin una estrategia de persistencia.

Además, el parámetro indexes no se admite para las tablas derivadas que se definen con create_process o sql_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. El PDT se debe volver a compilar cuando se active el datagroup order_datagroup 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 basada en una consulta en SQL y aplica 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 con dialectos para indexes

La capacidad de usar indexes depende del dialecto de la base de datos que usa tu conexión de Looker. Si trabajas con algo que no es 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 reemplazar el parámetro indexes por uno que sea adecuado para tu conexión a la base de datos. Obtén más información sobre estos parámetros en la página de documentación Ver parámetros.

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+
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 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
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