用量
derived_table: {
partition_keys: [ "created_date" ]
...
}
}
层次结构
partition_keys - 或 - partition_keys |
默认值
None 接受
一个或多个分区列名称特殊规则
partition_keys 仅适用于特定方言
|
定义
partition_keys
参数支持能够对列进行分区的数据库方言。如果运行查询时对分区列进行过滤,数据库将仅扫描包含已过滤数据的分区,而不是扫描整个表。由于系统扫描表的较小子部分,因此可以显著减少指定相应分区和过滤条件时查询大型表所需的时间和费用。
partition_keys
参数仅适用于永久性表,例如 PDT 和汇总表。没有持久性策略的派生表不支持partition_keys
。此外,使用
create_process
或sql_create
定义的派生表不支持partition_keys
参数。
当您创建永久性派生表 (PDT) 或汇总表时,如果底层数据库表使用了分区,Looker 就可以使用该分区。
请参阅下文中的对
partition_keys
的方言支持部分,了解支持partition_keys
的方言。
如需向 PDT 或汇总表添加分区列,请使用 partition_keys
并提供数据库表中相应分区的名称。
示例
在包含 date
列的分区键的 BigQuery 数据库上创建 customer_day_facts
PDT:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: date { field: order.order_time }
derived_column: num_orders {
sql: COUNT(order.customer_id) ;;
}
}
partition_keys: [ "date" ]
datagroup_trigger: daily_datagroup
}
}
在 Presto 数据库上创建一个基于 customer_day_facts
的派生表,并在 date
和 state
列上使用分区键:
view: customer_day_facts {
derived_table: {
sql:
SELECT
customer_id,
DATE(order_time) AS date,
COUNT(*) AS num_orders
FROM
order
GROUP BY
customer_id ;;
partition_keys: [ "date", "state" ]
datagroup_trigger: daily_datagroup
}
}
方言支持partition_keys
能否使用 partition_keys
取决于 Looker 连接的数据库方言。在最新版 Looker 中,以下方言支持 partition_keys
:
在 BigQuery 中,只能对一个列(必须是日期/时间列)使用分区,因此基于 BigQuery 表的 Looker PDT 只能对一个日期/时间列使用分区。