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