distribution_style

Nutzung

view: my_view {
  derived_table: {
    distribution_style: all
    ...
  }
}
Hierarchie
distribution_style

– oder –

distribution_style
Standardwert
Keine

Akzeptiert
Ein Verteilungsstil (all oder even)
Besondere Regeln
distribution_style wird nur für bestimmte Dialekte unterstützt.

Definition

Mit distribution_style können Sie angeben, wie die Abfrage für eine persistente abgeleitete Tabelle (Persistent Derived Table, PDT) oder eine Aggregattabelle auf die Knoten in einer Datenbank verteilt wird.

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

Der Parameter distribution_style funktioniert nur mit persistenten Tabellen wie PDTs und aggregierten Tabellen. distribution_style wird für abgeleitete Tabellen ohne Persistenzstrategie nicht unterstützt.

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

distribution_style und distribution sollten nicht gleichzeitig verwendet werden. Wenn Sie die Zeilen einer Tabelle basierend auf einem Spaltenwert auf verschiedene Redshift-Knoten verteilen möchten, verwenden Sie distribution. Andernfalls können Sie mit distribution_style eine andere Verteilungsstrategie auswählen.

Redshift bietet vier Verteilungsstile, die in der Amazon Redshift-Dokumentation zu Verteilungsstilen beschrieben werden:

  • ALL Distribution:Alle Zeilen werden vollständig auf jeden Knoten kopiert. In Looker können Sie diese Art von Verteilung mit distribution_style: all erreichen.
  • EVEN-Verteilung:Die Zeilen werden im Round-Robin-Verfahren auf verschiedene Knoten verteilt. In Looker können Sie diese Art von Verteilung mit distribution_style: even erreichen.
  • KEY Distribution (Schlüsselverteilung): Zeilen werden basierend auf eindeutigen Werten in einer bestimmten Spalte auf verschiedene Knoten verteilt. In Looker können Sie diese Art der Verteilung mit dem Parameter distribution erreichen.
  • AUTO Distribution: Redshift weist einen optimalen Verteilungsstil basierend auf der Größe der Tabellendaten zu. Dieser Verteilungstyp wird in Looker nicht unterstützt.

Informationen zur Auswahl der geeigneten Verteilungsstrategie finden Sie in der Amazon Redshift-Dokumentation zu Verteilungsarten. Wenn Sie kein distribution_style angeben und stattdessen nicht den Parameter distribution verwenden, wird in Looker standardmäßig all verwendet.

Beispiele

Erstellen Sie eine abgeleitete Tabelle vom Typ customer_order_facts mit dem Verteilungsstil all:

view: customer_order_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        COUNT(*) AS lifetime_orders
      FROM
        order
      GROUP BY 1 ;;
    persist_for: "24 hours"
    distribution_style: all
  }
}

Dialektunterstützung für distribution_style

Die Möglichkeit, distribution_style zu verwenden, hängt vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. In der aktuellen Version von Looker wird distribution_style 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