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
indexesunterstützen, finden Sie auf dieser Seite im Abschnitt Dialektunterstützung fürindexes.Der Parameter
indexesfunktioniert nur mit persistenten Tabellen wie PDTs und aggregierten 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 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 |