distribution_style

Penggunaan

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

- atau -

distribution_style
Nilai Default
Tidak ada

Menerima
Gaya distribusi (all atau even)
Aturan Khusus
distribution_style hanya didukung di dialek tertentu

Definisi

distribution_style memungkinkan Anda menentukan cara kueri untuk tabel turunan persisten (PDT) atau tabel agregat didistribusikan di seluruh node dalam database.

Lihat bagian Dukungan dialek untuk distribution_style untuk mengetahui daftar dialek yang mendukung distribution_style.

Parameter distribution_style hanya berfungsi dengan tabel yang persisten, seperti PDT dan tabel gabungan. distribution_style tidak didukung untuk tabel turunan tanpa strategi persistensi.

Selain itu, parameter distribution_style tidak didukung untuk tabel turunan yang ditentukan menggunakan create_process atau sql_create.

Terakhir, distribution_style dan distribution tidak boleh digunakan secara bersamaan. Jika Anda ingin mendistribusikan baris tabel ke berbagai node Redshift berdasarkan nilai kolom, gunakan distribution. Jika tidak, gunakan distribution_style untuk memilih strategi distribusi yang berbeda.

Redshift menawarkan empat gaya distribusi, yang dijelaskan dalam dokumentasi Amazon Redshift tentang gaya distribusi:

  • Distribusi SEMUA: Semua baris disalin sepenuhnya ke setiap node. Anda dapat melakukan jenis distribusi ini di Looker menggunakan distribution_style: all.
  • Distribusi EVEN: Baris didistribusikan ke berbagai node secara round-robin. Anda dapat melakukan jenis distribusi ini di Looker menggunakan distribution_style: even.
  • Distribusi KUNCI: Baris didistribusikan ke node yang berbeda berdasarkan nilai unik dalam kolom tertentu. Anda dapat melakukan jenis distribusi ini di Looker menggunakan parameter distribution.
  • Distribusi AUTO Redshift menetapkan gaya distribusi yang optimal berdasarkan ukuran data tabel. Looker tidak mendukung jenis distribusi ini.

Lihat dokumentasi Amazon Redshift tentang gaya distribusi untuk memilih strategi distribusi yang sesuai. Jika Anda tidak menentukan distribution_style, dan tidak menggunakan parameter distribution, Looker akan menggunakan all secara default.

Contoh

Buat tabel turunan customer_order_facts dengan gaya distribusi 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
  }
}

Dukungan dialek untuk distribution_style

Kemampuan untuk menggunakan distribution_style bergantung pada dialek database yang digunakan koneksi Looker Anda. Dalam rilis Looker terbaru, dialek berikut mendukung distribution_style:

Dialek Didukung?
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