indexes

Uso

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

- ou -

indexes
Valor padrão
Nenhuma

Aceita
Os nomes de uma ou mais colunas em uma PDT ou em uma tabela agregada

Regras 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 com indexes.

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 usando create_process ou sql_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: