índice

Uso

view: my_view {
  derived_table: {
    indexes: ["order_id"]
    ...
  }
}
Hierarquia
indexes

- ou -

indexes
Valor padrão
Nenhum

Aceita
Os nomes de uma ou mais colunas em uma TDP ou tabela de agregação

Regras especiais
indexes é compatível apenas com dialetos específicos

Definição

O parâmetro indexes permite aplicar índices às colunas de uma tabela derivada persistente (TDP) ou uma tabela de agregação. Ao adicionar mais de uma coluna, o Looker cria um índice para cada coluna especificada. Ele não cria um índice único de várias colunas. Se o parâmetro indexes estiver ausente da consulta, o Looker vai avisar para adicionar um parâmetro indexes para melhorar o desempenho da consulta. Saiba mais sobre a indexação de tabelas derivadas persistentes na página Tabelas derivadas no Looker na documentação.

Consulte a seção Suporte a dialetos para indexes nesta página para conferir a lista de dialetos que oferecem suporte a indexes.

O parâmetro indexes funciona apenas com tabelas que são persistentes, como TDPs e tabelas agregadas. indexes não é compatível com tabelas derivadas sem uma estratégia de persistência.

Além disso, o indexes parâmetro é indisponível para tabelas derivadas definidas usando create_process ou sql_create.

Se você usar indexes com o Redshift, vai criar uma chave de classificação intercalada. Também é possível criar chaves de classificação normais usando sortkeys, mas não é possível usar as duas ao mesmo tempo. As chaves de distribuição podem ser criadas com distribution.

De modo geral, os índices precisam ser aplicados a chaves primárias e colunas de data ou hora.

Exemplos

Para um banco de dados tradicional (por exemplo, MySQL ou Postgres), crie uma tabela derivada persistente customer_order_facts. A TDP será recriada quando o order_datagroup grupo de dados for acionado e terá um índice em 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 um banco de dados tradicional, crie uma tabela derivada persistente customer_order_facts com base em uma consulta SQL e aplique um índice em 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 um banco de dados tradicional, crie uma tabela derivada customer_day_facts com índices em 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"]
  }
}

Para um banco de dados Redshift, crie uma tabela derivada customer_day_facts com uma chave de classificação intercalada criada com 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"]
  }
}

Suporte a dialetos para indexes

A capacidade de usar indexes depende do dialeto do banco de dados que sua conexão do Looker está usando. Se você estiver trabalhando com algo diferente de um banco de dados tradicional (por exemplo, MySQL ou Postgres), seu banco de dados poderá não oferecer suporte ao parâmetro indexes. O Looker vai avisar se esse for o caso. Você pode trocar o parâmetro indexes por um adequado para sua conexão de banco de dados. Saiba mais sobre esses parâmetros na página de documentação Parâmetros de visualização.

Na versão mais recente do Looker, os seguintes dialetos oferecem suporte a indexes:

Dialeto Compatível?
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