índices

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 indexes en esta página para obtener la lista de dialectos que admiten indexes.

El parámetro indexes solo funciona con tablas que son persistentes, como las PDT y las tablas de datos agregados. 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. 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