分布

用途

view: my_view {
  derived_table: {
    distribution: "customer_id"
    ...
  }
}
階層
distribution

または

distribution
デフォルト値
なし

許可
派生テーブルまたは集計テーブルの列の名前

特別なルール
distribution は、Redshift データベースと Aster データベースでのみサポートされています。

定義

distribution パラメータを使用すると、分散キーを適用する永続的な派生テーブル(PDT)または集計テーブルの列を指定できます。分散キーは、クラスタ全体にデータを分散します。2 つのテーブルが distribution パラメータで指定された列で結合されると、データベースは同じノードで結合されたデータを見つけて、ノード間 I/O を最小限に抑えることができます。distribution パラメータは、Redshift データベースと Aster データベースでのみ機能します。他の SQL 言語(MySQL や Postgres など)の場合は、代わりに indexes を使用します。

distribution パラメータは、PDT や集約テーブルなど、永続的なテーブルでのみ機能します。distribution は、永続性戦略のない派生テーブルではサポートされていません。

また、create_process または sql_create を使用して定義された派生テーブルでは、distribution パラメータはサポートされていません。

一般的に、分散キーは外部キーとして機能する列(テーブルを他のテーブルに結合するために使用する列)に適用する必要があります。ベスト プラクティスについては、言語のドキュメントをご覧ください。

customer_id にディストリビューション キーを使用して customer_order_facts 永続的な派生テーブルを作成します。

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

customer_id の分散キーを含む SQL クエリに基づいて customer_order_facts 派生テーブルを作成します。

view: customer_order_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        COUNT(*) AS lifetime_orders
      FROM
        order ;;
    persist_for: "24 hours"
    distribution: "customer_id"
  }
}