Uso
derived_table: {
indexes: ["order_id"]
...
}
}
Hierarquia
indexes - ou - indexes |
Valor padrão
NenhumaAceita
Os nomes de uma ou mais colunas em uma PDT ou em uma tabela agregadaRegras especiais
indexes só é compatível com dialetos específicos.
|
Definição
Com o parâmetro indexes
, é possível aplicar índices às colunas de uma tabela derivada persistente (PDT, na sigla em inglês) ou de uma tabela de agregação. Quando você adiciona mais de uma coluna, o Looker cria um índice para cada coluna especificada, mas não cria um índice de várias colunas. Se o parâmetro indexes
estiver ausente na consulta, o Looker alertará você para adicionar um parâmetro indexes
a fim de melhorar o desempenho da consulta. Saiba mais sobre a indexação de tabelas derivadas permanentes na página de documentação Tabelas derivadas no Looker.
Consulte a seção Suporte ao dialeto para
indexes
nesta página para ver a lista de dialetos compatíveis comindexes
.O parâmetro
indexes
funciona apenas com tabelas permanentes, como PDTs e tabelas agregadas.indexes
não é compatível com tabelas derivadas sem uma estratégia de persistência.Além disso, o parâmetro
indexes
não é compatível com tabelas derivadas definidas usandocreate_process
ousql_create
.
Se você usar indexes
com o Redshift, criará uma chave de classificação intercalada. Também é possível criar chaves de classificação comuns usando sortkeys
, mas não é possível usar as duas ao mesmo tempo. É possível criar chaves de distribuição com o distribution
.
De maneira geral, os índices precisam ser aplicados às chaves primárias e às colunas de data ou hora.
Examples
Para um banco de dados tradicional, como MySQL ou Postgres, crie uma tabela derivada persistente customer_order_facts
. O PDT será recriado quando o datagroup order_datagroup
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 do Redshift, crie uma tabela derivada customer_day_facts
com uma chave de classificação intercalada criada de 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 usado pela conexão do Looker. Se você estiver trabalhando com algo diferente de um banco de dados tradicional (por exemplo, MySQL ou Postgres), talvez seu banco de dados não seja compatível com o parâmetro indexes
. O Looker avisará se esse for o caso. É possível trocar o parâmetro indexes
por um apropriado para sua conexão de banco de dados. Saiba mais sobre esses parâmetros na página de documentação Ver parâmetros.
Na versão mais recente do Looker, os seguintes dialetos são compatíveis com indexes
: