Indexe

Nutzung

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

– oder –

indexes
Standardwert
Keine

Akzeptiert
Die Namen einer oder mehrerer Spalten in einer PDT oder einer aggregierten Tabelle

Besondere Regeln
indexes wird nur für bestimmte Dialekte unterstützt.

Definition

Mit dem Parameter indexes können Sie Indexe auf die Spalten einer persistent derived table (PDT) oder einer aggregate table anwenden. Wenn Sie mehrere Spalten hinzufügen, wird in Looker für jede angegebene Spalte ein Index erstellt. Es wird kein einzelner Index mit mehreren Spalten erstellt. Wenn der Parameter indexes in der Abfrage fehlt, werden Sie von Looker gewarnt, dass Sie einen indexes-Parameter hinzufügen sollten, um die Abfrageleistung zu verbessern. Weitere Informationen zum Indexieren persistenter abgeleiteter Tabellen finden Sie auf der Dokumentationsseite Abgeleitete Tabellen in Looker.

Eine Liste der Dialekte, die indexes unterstützen, finden Sie auf dieser Seite im Abschnitt Dialektunterstützung für indexes.

Der Parameter indexes funktioniert nur mit persistenten Tabellen wie PDTs und aggregierten Tabellen. indexes wird für abgeleitete Tabellen ohne Persistenzstrategie nicht unterstützt.

Außerdem wird der Parameter indexes nicht für abgeleitete Tabellen unterstützt, die mit create_process oder sql_create definiert werden.

Wenn Sie indexes mit Redshift verwenden, erstellen Sie einen verschachtelten Sortierschlüssel. Sie können auch reguläre Sortierschlüssel mit sortkeys erstellen, aber nicht beide gleichzeitig verwenden. Verteilungsschlüssel können mit distribution erstellt werden.

Im Allgemeinen sollten Indizes auf Primärschlüssel und Datums- oder Zeitspalten angewendet werden.

Beispiele

Erstellen Sie für eine herkömmliche Datenbank (z. B. MySQL oder Postgres) eine customer_order_facts persistente abgeleitete Tabelle. Die PDT sollte neu erstellt werden, wenn die order_datagroup-Datengruppe ausgelöst wird, und einen Index für customer_id haben:

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"]
  }
}

Erstellen Sie für eine herkömmliche Datenbank eine customer_order_facts persistente abgeleitete Tabelle, die auf einer SQL-Abfrage basiert und einen Index für customer_id anwendet:

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"]
  }
}

Erstellen Sie für eine herkömmliche Datenbank eine abgeleitete Tabelle customer_day_facts mit Indexen für customer_id und 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"]
  }
}

Erstellen Sie für eine Redshift-Datenbank eine abgeleitete Tabelle customer_day_facts mit einem überlappenden Sortierschlüssel, der aus customer_id und date erstellt wird:

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"]
  }
}

Dialektunterstützung für indexes

Die Möglichkeit, indexes zu verwenden, hängt vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. Wenn Sie mit einer anderen Datenbank als einer herkömmlichen Datenbank (z. B. MySQL oder Postgres) arbeiten, wird der Parameter indexes möglicherweise nicht unterstützt. Looker warnt Sie in diesem Fall. Sie können den Parameter indexes durch einen Parameter ersetzen, der für Ihre Datenbankverbindung geeignet ist. Weitere Informationen zu solchen Parametern finden Sie auf der Dokumentationsseite Parameter ansehen.

In der aktuellen Version von Looker wird indexes von den folgenden Dialekten unterstützt:

Dialekt Unterstützt?
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