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 zusammengefassten Tabelle
Sonderregeln
indexes wird nur für bestimmte Dialekte unterstützt.
|
Definition
Mit dem Parameter indexes können Sie Indexe 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 von Ihnen 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 gewarnt, dass Sie einen Parameter indexes 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
indexesunterstützen, finden Sie auf dieser Seite im Abschnitt Dialektunterstützung fürindexes.Der Parameter
indexesfunktioniert nur mit Tabellen, die persistent sind, z. B. PDTs und zusammengefasste Tabellen.indexeswird für abgeleitete Tabellen ohne Persistenzstrategie nicht unterstützt.Außerdem wird der Parameter
indexesnicht für abgeleitete Tabellen unterstützt, die mitcreate_processodersql_createdefiniert sind.
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 Indexe 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 vom Typ 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 vom Typ customer_order_facts, die auf einer SQL-Abfrage basiert und einen Index auf 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 customer_day_facts-Tabelle 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 vom Typ 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 etwas anderem als einer herkömmlichen Datenbank (z. B. MySQL oder Postgres) arbeiten, unterstützt Ihre Datenbank den Parameter indexes möglicherweise nicht. Looker warnt Sie, wenn dies der Fall ist. 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 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 | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 |