distribution_style

使用状況

表示: my_view {
derived_table: {
distribution_style: すべて
...
}
}
階層
distribution_style

または

distribution_style
デフォルト値
なし

許可
配信スタイル(all または even
特別なルール
distribution_style特定の言語でのみサポートされます。

定義

distribution_style を使用すると、永続的な派生テーブル(PDT)または集約テーブルのクエリをデータベース内のノードに分散する方法を指定できます。

distribution_style をサポートしている言語のリストについては、下記の distribution_style の言語サポート セクションをご覧ください。

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

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

最後に、distribution_styledistribution を同時に使用することはできません。列の値に基づいてテーブルの行を別の Redshift ノードに分配する場合は、distribution を使用します。それ以外の場合は、distribution_style を使用して別の配信戦略を選択します。

Redshift には、3 つのスタイルが用意されています。詳しくは、こちらのドキュメントをご確認ください。

  • All Distribution: すべての行が各ノードに完全にコピーされます。Looker でこのタイプの分散を実現するには、distribution_style: all を使用します。
  • 均等な分布: ラウンドロビン方式により、行がさまざまなノードに分散されます。Looker でこのタイプの分散を実現するには、distribution_style: even を使用します。
  • キーの分布: 行は、特定の列内の一意の値に基づいて、さまざまなノードに分散されます。Looker でこのタイプの分布を実現するには、distribution パラメータを使用します。

適切な配信戦略については、Amazon Redshift のドキュメントをご覧ください。distribution_style を指定せずに、代わりに distribution パラメータを使用しない場合、Looker ではデフォルトで all が使用されます。

分布スタイルが allcustomer_order_facts 派生テーブルを作成します。

view: customer_order_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        COUNT(*) AS lifetime_orders
      FROM
        order
      GROUP BY 1 ;;
    persist_for: "24 hours"
    distribution_style: all
  }
}

distribution_style の言語サポート

distribution_style を使用できるかどうかは、Looker 接続で使用されているデータベース言語によって異なります。Looker の最新リリースでは、distribution_style で以下の言語がサポートされています。