使用状況
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
列で分割し、city
、age_tier
、gender
列でクラスタ化して、これらの列でフィルタリングまたは集計されるクエリを最適化します。
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
で以下の言語がサポートされています。