cluster_keys

使用状況

ビュー: view_name {
derived_table: {
cluster_keys: ["customer_city", "customer_state"]
...
}
}
階層
cluster_keys

または

cluster_keys
デフォルト値
None

許可
1 つ以上のクラスタ化列名

特別なルール
cluster_keys特定の言語でのみサポートされます。

定義

パーティション分割テーブルは、クラスタ化列の値に基づいてパーティション内のデータを並べ替え、クラスタ化列を最適なサイズのストレージ ブロックに整理します。クラスタリングにより、クラスタ化列でフィルタリングまたは集計するクエリのパフォーマンスを向上させることができ、コストの削減につながります。

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

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

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

最後に、Google BigQuery は、パーティション分割テーブルでのクラスタリングのみをサポートしています。cluster_keys パラメータは、partition_keys パラメータを使用してパーティション分割も行われる PDT または集約テーブルでのみ機能します。

クラスタ化列を永続的な派生テーブル(PDT)または集約テーブルに追加するには、cluster_keys パラメータを使用して、データベース テーブルでクラスタ化する列の名前を指定します。

Google BigQuery データベースに customer_order_facts ネイティブ派生テーブルを作成し、date 列で分割し、cityage_tiergender 列でクラスタ化して、これらの列でフィルタリングまたは集計されるクエリを最適化します。

view: customer_order_facts {
  derived_table: {
    explore_source: order {
      column: customer_id { field: order.customer_id }
      column: date { field: order.order_time }
      column: city { field: users.city}
      column: age_tier { field: users.age_tier }
      column: gender { field: users.gender }
      derived_column: num_orders {
        sql: COUNT(order.customer_id) ;;
      }
    }
    partition_keys: [ "date" ]
    cluster_keys: [ "city", "age_tier", "gender" ]
    datagroup_trigger: daily_datagroup
  }
}

注意点

Google BigQuery テーブルは日付フィールドでのみパーティション分割可能

Google BigQuery テーブルは、日付列またはタイムスタンプ列でのみパーティション分割できます。日付または時間ベースのデータを含まない PDT または集計テーブルにクラスタ化列を追加する 1 つの方法は、SELECT CURRENT_DATETIME() as now などの SQL ステートメントを使用して日付列を追加し、partition_keys を使用して新しい列でパーティション分割することです。その後は PDT または集約テーブルの他の列でクラスタリングを使用できます。

cluster_keys の言語サポート

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