排序键

用量

视图:my_view {
derived_table:{
sortkeys: ["date"]
...
}
}
层次结构
sortkeys

- 或 -

sortkeys
默认值


接受
PDT 或汇总表格中的一个或多个列的名称

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

定义

借助 sortkeys 参数,您可以指定要应用常规排序键的永久性派生表 (PDT) 或汇总表的一个或多个列。使用排序键指定最常排序的 PDT 列,以提高数据查询速度。

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

您还可以使用 indexes 创建交错排序键。您不能同时使用二者,但至少需要一个。

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

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

一般而言,排序键应该应用于表格中的日期或时间列,还可能应用于经常用作过滤条件的列。如需了解详情,请参阅 Amazon Redshift 文档

示例

这些示例假设您使用的是 Redshift 数据库,因此可以使用 sortkeys 参数。

创建一个 customer_day_facts 永久性原生派生表,该表在 date 上具有排序键,并在触发数据组 order_datagroup 时进行重建:

view: customer_day_facts {
  derived_table: {
    explore_source: order {
      column: customer_id { field: order.customer_id }
      column: date { field: order.order_date }
      column: num_orders { field: order.customer_order_count }
    }
    datagroup_trigger: order_datagroup
    sortkeys: ["date"]
  }
}

创建一个基于 SQL 查询并在 date 上具有排序键的 customer_day_facts 派生表:

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 ;;
    persist_for: "24 hours"
    sortkeys: ["date"]
  }
}

创建一个基于 SQL 查询的 customer_day_facts 派生表,其中在 datecustomer_id 上使用排序键:

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 ;;
    persist_for: "24 hours"
    sortkeys: ["date", "customer_id"]
  }
}

方言支持sortkeys

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

传统的 SQL 方言(例如 MySQL 和 Postgres)应使用 indexessortkeys 不适用于这些数据库。