用量
view: my_view { derived_table: { distribution: "customer_id" ... } }
|
階層
distribution- 或 - distribution |
預設值
無
接受
衍生資料表或匯總資料表中的資料欄名稱
特別規則
distribution 僅支援 Redshift 和 Aster 資料庫。
|
定義
distribution 參數可讓您指定要套用分配鍵的永久衍生資料表 (PDT) 或匯總資料表中的資料欄。分配鍵會將資料分散到叢集各處。當兩個資料表透過 distribution 參數中指定的資料欄彙整時,資料庫可以在同一個節點上找到彙整的資料,盡量減少節點間的 I/O。distribution 參數僅適用於 Redshift 和 Aster 資料庫。如要使用其他 SQL 方言 (例如 MySQL 和 Postgres),請改用 indexes。
distribution參數只能搭配永久資料表使用,例如 PDT 和匯總資料表。如果衍生資料表沒有持續性策略,則不支援distribution。此外,使用
create_process或sql_create定義的衍生資料表不支援distribution參數。
一般來說,發布鍵應套用至將做為外鍵的資料欄 (您用來將資料表與其他資料表彙整的資料欄)。如需最佳做法,請參閱方言的說明文件。
範例
建立customer_order_facts永久衍生資料表,並在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"
}
}
根據 SQL 查詢建立 customer_order_facts 衍生資料表,並在 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"
}
}