Penggunaan
view: my_view { derived_table: { distribution: "customer_id" ... } }
|
Hierarki
distribution- atau - distribution |
Nilai Default
Tidak ada
Menerima
Nama kolom dalam tabel turunan atau tabel gabungan
Aturan Khusus
distribution hanya didukung untuk database Redshift dan Aster.
|
Definisi
Parameter distribution memungkinkan Anda menentukan kolom dari tabel turunan persisten (PDT) atau tabel gabungan yang akan diterapkan kunci distribusinya. Kunci distribusi menyebarkan data di sekitar cluster. Saat dua tabel digabungkan oleh kolom yang ditentukan dalam parameter distribution, database dapat menemukan data gabungan pada node yang sama untuk meminimalkan I/O antar-node. Parameter distribution hanya berfungsi dengan database Redshift dan Aster. Untuk dialek SQL lainnya (seperti MySQL dan Postgres), gunakan indexes.
Parameter
distributionhanya berfungsi dengan tabel yang persisten, seperti PDT dan tabel gabungan.distributiontidak didukung untuk tabel turunan tanpa strategi persistensi.Selain itu, parameter
distributiontidak didukung untuk tabel turunan yang ditentukan menggunakancreate_processatausql_create.
Secara umum, kunci distribusi harus diterapkan ke kolom yang akan bertindak sebagai kunci asing (kolom yang Anda gunakan untuk menggabungkan tabel Anda dengan tabel lain). Lihat dokumentasi dialek Anda untuk mengetahui praktik terbaik.
Contoh
Buat tabel turunan persisten customer_order_facts dengan kunci distribusi di customer_id:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: lifetime_orders { field: order.lifetime_orders }
}
datagroup_trigger: order_datagroup
distribution: "customer_id"
}
}
Buat tabel turunan customer_order_facts berdasarkan kueri SQL dengan kunci distribusi pada customer_id:
view: customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT(*) AS lifetime_orders
FROM
order ;;
persist_for: "24 hours"
distribution: "customer_id"
}
}