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
O distribution_style só está disponível em dialetos específicos

Definição

O distribution_style permite especificar como a consulta de uma tabela derivada persistente (PDT) ou uma tabela agregada é distribuída entre os nós em um banco de dados.

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

O parâmetro distribution_style funciona apenas com tabelas 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 outra estratégia de distribuição.

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 fazer 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 rotativa. É possível fazer esse tipo de distribuição no Looker usando distribution_style: even.
  • Distribuição de CHAVE:as linhas são distribuídas para diferentes nós com base em valores únicos em uma coluna específica. Para fazer isso no Looker, use o parâmetro distribution.
  • AUTO Distribution: o Redshift atribui um estilo de distribuição ideal com base no tamanho dos dados da tabela. O Looker não é compatível com esse tipo de distribuição.

Consulte a documentação do Amazon Redshift sobre estilos de distribuição (em inglês) para escolher a estratégia adequada. Se você não especificar um distribution_style e não usar o parâmetro distribution, o Looker vai usar all por 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 usado pela sua conexão do Looker. Na versão mais recente do Looker, os seguintes dialetos são compatíveis com 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+
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