用量
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_process
或sql_create
定义的派生表不支持cluster_keys
参数。最后,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 或汇总表中,一种方法是使用 SQL 语句(如 SELECT CURRENT_DATETIME() as now
)添加日期列,然后使用 partition_keys
对新列进行分区。然后,您可以对 PDT 或汇总表中的其他列使用聚类。
方言支持cluster_keys
能否使用 cluster_keys
取决于 Looker 连接的数据库方言。在最新版 Looker 中,以下方言支持 cluster_keys
: