Sortierschlüssel

Nutzung

view: my_view {
derived_table: {
Sortierschlüssel: ["date"]
...
}
}
Hierarchie
sortkeys

– oder –

sortkeys
Standardwert
Keine

Akzeptiert
Die Namen einer oder mehrerer Spalten in einer PDT oder einer zusammengefassten Tabelle

Sonderregeln
sortkeys wird nur für bestimmte Dialekte unterstützt

Definition

Mit dem Parameter sortkeys können Sie eine oder mehrere Spalten einer persistenten abgeleiteten Tabelle (PDT) oder einer zusammengefasste Tabelle angeben, auf die ein regulärer Sortierschlüssel angewendet werden soll. Verwenden Sie einen Sortierschlüssel, um die Spalten einer PDT anzugeben, nach denen am häufigsten sortiert wird, um die Abfrage der Daten zu beschleunigen.

Eine Liste der Dialekte, die sortkeys unterstützen, finden Sie weiter unten im Abschnitt Dialektunterstützung für sortkeys.

Sie können stattdessen auch indexes verwenden, um einen verschränkten Sortierschlüssel zu erstellen. Sie können nicht beides gleichzeitig verwenden, aber es ist mindestens eines erforderlich.

Der Parameter sortkeys funktioniert nur bei Tabellen, die persistent sind, z. B. PDTs und zusammengefasste Tabellen. sortkeys wird für abgeleitete Tabellen ohne Persistenzstrategie nicht unterstützt.

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

Im Allgemeinen sollte ein Sortierschlüssel auf Datums- oder Zeitspalten in der Tabelle und möglicherweise auf Spalten angewendet werden, die häufig als Filter verwendet werden. Weitere Informationen finden Sie in der Amazon Redshift-Dokumentation.

Beispiele

In diesen Beispielen wird davon ausgegangen, dass Sie mit einer Redshift-Datenbank arbeiten, sodass Sie den Parameter sortkeys verwenden können.

Erstellen Sie eine customer_day_factspersistente native abgeleitete Tabelle mit einem Sortierschlüssel auf date und wird neu erstellt, wenn die Datengruppe order_datagroup ausgelöst wird:

view: customer_day_facts {
  derived_table: {
    explore_source: order {
      column: customer_id { field: order.customer_id }
      column: date { field: order.order_date }
      column: num_orders { field: order.customer_order_count }
    }
    datagroup_trigger: order_datagroup
    sortkeys: ["date"]
  }
}

Erstellen Sie eine abgeleitete customer_day_facts-Tabelle, die auf einer SQL-Abfrage basiert und einen Sortierschlüssel für date hat:

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"
    sortkeys: ["date"]
  }
}

Erstellen Sie eine abgeleitete customer_day_facts-Tabelle, die auf einer SQL-Abfrage mit einem Sortierschlüssel auf date und customer_id basiert:

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"
    sortkeys: ["date", "customer_id"]
  }
}

Dialektunterstützung für sortkeys

Die Möglichkeit, sortkeys zu verwenden, hängt vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. In der neuesten Version von Looker unterstützen die folgenden Dialekte sortkeys:

Herkömmliche SQL-Dialekte wie MySQL und Postgres sollten indexes verwenden; sortkeys funktioniert mit diesen Datenbanken nicht.