Partitionsschlüssel

Nutzung

view: view_name {
derived_table: {
partition_keys: [ "created_date" ]
...
}
}
Hierarchie
partition_keys

– oder –

partition_keys
Standardwert
None

Akzeptiert
Ein oder mehrere partitionierte Spaltennamen

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

Definition

Der Parameter partition_keys unterstützt Datenbankdialekte, die Spalten partitionieren können. Wenn eine Abfrage ausgeführt wird, die nach einer partitionierten Spalte gefiltert wird, scannt die Datenbank nur die Partitionen, die die gefilterten Daten enthalten, und nicht die gesamte Tabelle. Da ein kleinerer Teil der Tabelle gescannt wird, können Zeit und Kosten für das Abfragen großer Tabellen erheblich reduziert werden, wenn die entsprechende Partition und der entsprechende Filter angegeben sind.

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

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

Wenn Sie eine persistente abgeleitete Tabelle (PDT) oder eine zusammengefasste Tabelle erstellen und die zugrunde liegende Datenbanktabelle eine Partitionierung verwendet, kann Looker diese Partitionierung verwenden.

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

Wenn Sie eine partitionierte Spalte einer PDT oder einer zusammengefassten Tabelle hinzufügen möchten, verwenden Sie partition_keys und geben Sie die Namen der entsprechenden Spalten an, die in der Datenbanktabelle partitioniert sind.

Beispiele

Erstellen Sie ein customer_day_facts-PDT in einer BigQuery-Datenbank mit einem Partitionsschlüssel in der Spalte date:

view: customer_order_facts {
  derived_table: {
    explore_source: order {
      column: customer_id { field: order.customer_id }
      column: date { field: order.order_time }
      derived_column: num_orders {
        sql: COUNT(order.customer_id) ;;
      }
    }
    partition_keys: [ "date" ]
    datagroup_trigger: daily_datagroup
  }
}

Erstellen Sie eine customer_day_facts SQL-basierte abgeleitete Tabelle in einer Presto-Datenbank mit Partitionsschlüsseln in den Spalten date und state:

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 ;;
    partition_keys: [ "date", "state" ]
    datagroup_trigger: daily_datagroup
  }
}

Dialektunterstützung für partition_keys

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

In BigQuery kann die Partitionierung nur für eine Tabellenspalte erfolgen, die eine Datums-/Uhrzeitspalte sein muss. Für die auf der BigQuery-Tabelle basierende Looker-PDT kann also nur eine Datums-/Uhrzeitspalte partitioniert werden.