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
indexesunterstützen, finden Sie auf dieser Seite im Abschnitt Dialektunterstützung fürindexes.Der
indexesParameter funktioniert nur mit Tabellen, die persistent sind, z. B. PDTs und aggregierte Tabellen.indexeswird für abgeleitete Tabellen ohne Persistenzstrategie nicht unterstützt.Außerdem wird der
indexesParameter für abgeleitete Tabellen, die mitcreate_processodersql_createdefiniert 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 |