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

Sonderregeln
indexes wird nur für bestimmte Dialekte unterstützt.

Definition

Mit dem indexes Parameter können Sie Indizes auf die Spalten einer persistenten abgeleiteten Tabelle (PDT) oder einer zusammengefassten Tabelle anwenden. Wenn Sie mehr als eine Spalte hinzufügen, erstellt Looker für jede angegebene Spalte einen Index. Es wird kein einzelner Index für mehrere Spalten erstellt. Wenn der Parameter indexes in der Abfrage fehlt, werden Sie von Looker aufgefordert, einen Parameter indexes hinzuzufügen, 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 indexes Parameter funktioniert nur mit Tabellen, die persistent sind, z. B. PDTs und aggregierte Tabellen. indexes wird für abgeleitete Tabellen ohne Persistenzstrategie nicht unterstützt.

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

Wenn Sie indexes mit Redshift verwenden, erstellen Sie einen überlappenden 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 persistente abgeleitete Tabelle customer_order_facts. 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 persistente abgeleitete Tabelle customer_order_facts, 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 Indizes 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 wurde:

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 von dem Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. Wenn Sie mit einer anderen Datenbank als einer herkömmlichen Datenbank (z. B. MySQL oder Postgres) arbeiten, unterstützt Ihre Datenbank möglicherweise den Parameter indexes nicht. In diesem Fall werden Sie von Looker gewarnt. 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 für Ansichten.

In der neuesten Version von Looker unterstützen die folgenden Dialekte indexes:

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.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