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
indexesnesta página para conferir a lista de dialetos que oferecem suporte aindexes.O parâmetro
indexesfunciona apenas com tabelas que são persistentes, como TDPs e tabelas agregadas.indexesnão é compatível com tabelas derivadas sem uma estratégia de persistência.Além disso, o
indexesparâmetro é indisponível para tabelas derivadas definidas usandocreate_processousql_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 |