發行

用量

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_processsql_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"
  }
}