indici

Utilizzo

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

- o -

indexes
Valore predefinito
Nessuno

Accetta
I nomi di una o più colonne in una PDT o in una tabella aggregata

Regole speciali
indexes è supportato solo in dialetti specifici

Definizione

Il parametro indexes consente di applicare indici alle colonne di una tabella derivata permanente (PDT) o di una tabella aggregata. Quando aggiungi più di una colonna, Looker crea un indice per ogni colonna specificata; non crea un singolo indice multicolonna. Se il parametro indexes non è presente nella query, Looker ti avvisa di aggiungere un parametro indexes per migliorare il rendimento della query. Scopri di più sull'indicizzazione delle tabelle derivate permanenti nella pagina della documentazione Tabelle derivate in Looker.

Consulta la sezione Supporto dei dialetti per indexes in questa pagina per l'elenco dei dialetti che supportano indexes.

Il parametro indexes funziona solo con le tabelle persistenti, come le PDT e le tabelle aggregate. indexes non è supportato per le tabelle derivate senza una strategia di persistenza.

Inoltre, il parametro indexes non è supportato per le tabelle derivate definite utilizzando create_process o sql_create.

Se utilizzi indexes con Redshift, creerai una chiave di ordinamento interleaved. Puoi anche creare chiavi di ordinamento regolari utilizzando sortkeys, ma non puoi utilizzarle entrambe contemporaneamente. Le chiavi di distribuzione possono essere create con distribution.

In generale, gli indici devono essere applicati alle chiavi primarie e alle colonne di date o ore.

Esempi

Per un database tradizionale (ad esempio MySQL o Postgres), crea una customer_order_facts tabella derivata persistente. La PDT deve essere ricreata quando viene attivato il order_datagroup gruppo di dati e avrà un indice su 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"]
  }
}

Per un database tradizionale, crea una customer_order_facts tabella derivata permanente basata su una query SQL e applica un indice a 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"]
  }
}

Per un database tradizionale, crea una tabella derivata customer_day_facts con indici sia su customer_id che su 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"]
  }
}

Per un database Redshift, crea una tabella derivata customer_day_facts con una chiave di ordinamento interleaved creata da 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"]
  }
}

Supporto dei dialetti per indexes

La possibilità di utilizzare indexes dipende dal dialetto del database utilizzato dalla connessione Looker. Se lavori con un database diverso da un database tradizionale (ad esempio MySQL o Postgres), il tuo database potrebbe non supportare il parametro indexes. Looker ti avviserà se questo è il caso. Puoi sostituire il parametro indexes con uno appropriato per la connessione al database. Scopri di più su questi parametri nella pagina della documentazione Visualizza parametri.

Nell'ultima release di Looker, i seguenti dialetti supportano indexes:

Dialetto Supportata?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
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 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
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