distribution_style

Utilisation

view: my_view {
  derived_table: {
    distribution_style: all
    ...
  }
}
Hiérarchie
distribution_style

- ou -

distribution_style
Valeur par défaut
Aucun

Acceptation
Style de distribution (all ou even)
Règles spéciales
distribution_style n'est compatible qu'avec certains dialectes.

Définition

distribution_style vous permet de spécifier la façon dont la requête pour une table dérivée persistante (PDT) ou une table agrégée est distribuée sur les nœuds d'une base de données.

Pour obtenir la liste des dialectes compatibles avec distribution_style, consultez la section Dialectes compatibles avec distribution_style.

Le paramètre distribution_style ne fonctionne qu'avec les tables persistantes, telles que les PDT et les tables agrégées. distribution_style n'est pas compatible avec les tables dérivées sans stratégie de persistance.

De plus, le paramètre distribution_style n'est pas compatible avec les tables dérivées définies à l'aide de create_process ou sql_create.

Enfin, vous ne devez pas utiliser distribution_style et distribution en même temps. Si vous souhaitez distribuer les lignes d'une table à différents nœuds Redshift en fonction de la valeur d'une colonne, utilisez distribution. Sinon, utilisez distribution_style pour choisir une autre stratégie de répartition.

Redshift propose quatre styles de distribution, qui sont décrits dans la documentation Amazon Redshift sur les styles de distribution :

  • Distribution ALL : toutes les lignes sont entièrement copiées sur chaque nœud. Vous pouvez effectuer ce type de distribution dans Looker à l'aide de distribution_style: all.
  • Distribution EVEN : les lignes sont distribuées aux différents nœuds de manière séquentielle. Vous pouvez effectuer ce type de distribution dans Looker à l'aide de distribution_style: even.
  • Distribution par clé : les lignes sont distribuées à différents nœuds en fonction des valeurs uniques d'une colonne spécifique. Vous pouvez effectuer ce type de distribution dans Looker à l'aide du paramètre distribution.
  • AUTO : Redshift attribue un style de distribution optimal en fonction de la taille des données de la table. Looker n'est pas compatible avec ce type de distribution.

Pour choisir la stratégie de distribution appropriée, consultez la documentation Amazon Redshift sur les styles de distribution. Si vous ne spécifiez pas de distribution_style et que vous n'utilisez pas le paramètre distribution, Looker utilisera all par défaut.

Exemples

Créez une table dérivée customer_order_facts avec un style de distribution 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
  }
}

Prise en charge des dialectes pour distribution_style

La possibilité d'utiliser distribution_style dépend du dialecte de base de données de votre connexion Looker. Dans la dernière version de Looker, les dialectes suivants sont compatibles avec distribution_style :

Dialecte Compatibilité
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