集群键

用量

视图: view_name {
derived_table:{
cluster_keys: ["customer_city", "customer_state"]
...
}
}
层次结构
cluster_keys

- 或 -

cluster_keys
默认值
None

接受
一个或多个集群列名称

特殊规则
cluster_keys 仅适用于特定方言

定义

分区表进行划分后,系统会根据聚类列中的值对分区中的数据进行排序,并将聚类列按大小最佳的存储块进行归类。聚类可提高性能,并降低按聚类列过滤或汇总的查询的费用。

请参阅下文中的cluster_keys 的方言支持部分,了解支持 cluster_keys 的方言。

cluster_keys 参数仅适用于永久性表,例如 PDT 和汇总表。没有持久性策略的派生表不支持 cluster_keys

此外,使用 create_processsql_create 定义的派生表不支持 cluster_keys 参数。

最后,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 或汇总表中,一种方法是使用 SQL 语句(如 SELECT CURRENT_DATETIME() as now)添加日期列,然后使用 partition_keys 对新列进行分区。然后,您可以对 PDT 或汇总表中的其他列使用聚类。

方言支持cluster_keys

能否使用 cluster_keys 取决于 Looker 连接的数据库方言。在最新版 Looker 中,以下方言支持 cluster_keys