Nutzung
derived_table: {
Indexe: ["order_id"]
...
}
}
Hierarchie
indexes – oder – indexes |
Standardwert
KeineAkzeptiert
Die Namen einer oder mehrerer Spalten in einer PDT oder einer zusammengefassten TabelleSonderregeln
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 zusammengefasste 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 mit mehreren Spalten erstellt. Wenn der Parameter indexes
in der Abfrage fehlt, werden Sie von Looker gewarnt, um einen indexes
-Parameter 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 im Abschnitt Dialektunterstützung fürindexes
.Der Parameter
indexes
funktioniert nur bei Tabellen, die persistent sind, z. B. PDTs und zusammengefasste 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 mitcreate_process
odersql_create
definiert sind.
Wenn Sie indexes
mit Redshift verwenden, erstellen Sie einen verschränkten Sortierschlüssel. Sie können auch reguläre Sortierschlüssel mit sortkeys
erstellen, aber nicht beides gleichzeitig. 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 customer_order_facts
-Tabelle. Das PDT sollte neu erstellt werden, wenn die Datengruppe order_datagroup
ausgelöst wird und einen Index für customer_id
hat:
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 customer_order_facts
-Tabelle, 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 bei einer herkömmlichen Datenbank eine customer_day_facts
-abgeleitete 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 customer_day_facts
-Tabelle mit einem verschränkten 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 vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. Wenn Sie mit einer anderen Datenbank als einer herkömmlichen Datenbank arbeiten (z. B. MySQL oder Postgres), 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
: