Usage
view: my_view { derived_table: { distribution_style: all ... } }
Hierarchy
distribution_style - or - distribution_style |
Default Value
None
Accepts
A distribution style (all or even )
Special Rules
distribution_style is supported only on specific dialects
|
Definition
distribution_style
lets you specify how the query for a persistent derived table (PDT) or an aggregate table is distributed across the nodes in a database.
See the Dialect support for
distribution_style
section for the list of dialects that supportdistribution_style
.
The
distribution_style
parameter works only with tables that are persistent, such as PDTs and aggregate tables.distribution_style
is not supported for derived tables without a persistence strategy.
In addition, the
distribution_style
parameter is not supported for derived tables that are defined usingcreate_process
orsql_create
.Lastly,
distribution_style
anddistribution
should not be used at the same time. If you want to distribute the rows of a table to different Redshift nodes based on a column value, usedistribution
. Otherwise, usedistribution_style
to choose a different distribution strategy.
Redshift offers four distribution styles, which are described in the Amazon Redshift documentation on distribution styles:
- ALL Distribution: All rows are fully copied to each node. You can accomplish this type of distribution in Looker by using
distribution_style: all
. - EVEN Distribution: Rows are distributed to different nodes in a round-robin fashion. You can accomplish this type of distribution in Looker by using
distribution_style: even
. - KEY Distribution: Rows are distributed to different nodes based on unique values within a particular column. You can accomplish this type of distribution in Looker by using the
distribution
parameter. - AUTO Distribution Redshift assigns an optimal distribution style based on the size of the table data. Looker does not support this distribution type.
See the Amazon Redshift documentation on distribution styles for choosing the appropriate distribution strategy. If you don't specify a distribution_style
, and don't use the distribution
parameter instead, Looker will default to all
.
Examples
Create a customer_order_facts
derived table with a distribution style of 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
}
}
Dialect support for distribution_style
The ability to use distribution_style
depends on the database dialect your Looker connection is using. In the latest release of Looker, the following dialects support distribution_style
:
Dialect | Supported? |
---|---|
Actian Avalanche | No |
Amazon Athena | No |
Amazon Aurora MySQL | No |
Amazon Redshift | Yes |
Apache Druid | No |
Apache Druid 0.13+ | No |
Apache Druid 0.18+ | No |
Apache Hive 2.3+ | No |
Apache Hive 3.1.2+ | No |
Apache Spark 3+ | No |
ClickHouse | No |
Cloudera Impala 3.1+ | No |
Cloudera Impala 3.1+ with Native Driver | No |
Cloudera Impala with Native Driver | No |
DataVirtuality | No |
Databricks | No |
Denodo 7 | No |
Denodo 8 | No |
Dremio | No |
Dremio 11+ | No |
Exasol | No |
Firebolt | No |
Google BigQuery Legacy SQL | No |
Google BigQuery Standard SQL | No |
Google Cloud PostgreSQL | No |
Google Cloud SQL | No |
Google Spanner | No |
Greenplum | No |
HyperSQL | No |
IBM Netezza | No |
MariaDB | No |
Microsoft Azure PostgreSQL | No |
Microsoft Azure SQL Database | No |
Microsoft Azure Synapse Analytics | No |
Microsoft SQL Server 2008+ | No |
Microsoft SQL Server 2012+ | No |
Microsoft SQL Server 2016 | No |
Microsoft SQL Server 2017+ | No |
MongoBI | No |
MySQL | No |
MySQL 8.0.12+ | No |
Oracle | No |
Oracle ADWC | No |
PostgreSQL 9.5+ | No |
PostgreSQL pre-9.5 | No |
PrestoDB | No |
PrestoSQL | No |
SAP HANA 2+ | No |
SingleStore | No |
SingleStore 7+ | No |
Snowflake | No |
Teradata | No |
Trino | No |
Vector | No |
Vertica | No |