distribution_style

Uso

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

- ou -

distribution_style
Valor padrão
Nenhum

Aceita
Um estilo de distribuição (all ou even)
Regras especiais
distribution_style é compatível apenas com dialetos específicos

Definição

distribution_style permite especificar como a consulta de uma tabela derivada persistente (PDT, na sigla em inglês) ou uma tabela de agregação é distribuída entre os nós em um banco de dados.

Consulte a seção Suporte a dialetos para distribution_style para conferir a lista de dialetos que oferecem suporte a distribution_style.

O parâmetro distribution_style funciona apenas com tabelas que são persistentes, como PDTs e tabelas agregadas. distribution_style não é compatível com tabelas derivadas sem uma estratégia de persistência.

Além disso, o parâmetro distribution_style não é compatível com tabelas derivadas definidas usando create_process ou sql_create.

Por fim, distribution_style e distribution não podem ser usados ao mesmo tempo. Se você quiser distribuir as linhas de uma tabela para diferentes nós do Redshift com base em um valor de coluna, use distribution. Caso contrário, use distribution_style para escolher uma estratégia de distribuição diferente.

O Redshift oferece quatro estilos de distribuição, que são descritos na documentação do Amazon Redshift sobre estilos de distribuição:

  • Distribuição ALL:todas as linhas são totalmente copiadas para cada nó. É possível realizar esse tipo de distribuição no Looker usando distribution_style: all.
  • Distribuição EVEN:as linhas são distribuídas para diferentes nós de maneira round-robin. É possível realizar esse tipo de distribuição no Looker usando distribution_style: even.
  • Distribuição KEY:as linhas são distribuídas para diferentes nós com base em valores exclusivos em uma coluna específica. É possível realizar esse tipo de distribuição no Looker usando o distribution parâmetro.
  • Distribuição AUTO : o Redshift atribui um estilo de distribuição ideal com base no tamanho dos dados da tabela. O Looker não oferece suporte a esse tipo de distribuição.

Consulte a documentação do Amazon Redshift sobre estilos de distribuição para escolher a estratégia de distribuição adequada. Se você não especificar um distribution_style e não usar o parâmetro distribution, o Looker vai usar all como padrão.

Exemplos

Crie uma tabela derivada customer_order_facts com um estilo de distribuição 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
  }
}

Suporte a dialetos para distribution_style

A capacidade de usar distribution_style depende do dialeto do banco de dados que sua conexão do Looker está usando. Na versão mais recente do Looker, os seguintes dialetos oferecem suporte a distribution_style:

Dialeto Compatível?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13.x - 0.17.x
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 AlloyDB for PostgreSQL
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