sortkeys

用法

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

- 或 -

sortkeys
默认值
无

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

特殊规则
sortkeys 仅在 特定方言 中受支持

定义

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

如需查看支持 sortkeys 的方言列表,请参阅 Dialect support for sortkeys 部分。

您还可以改用 indexes 创建交错排序键。您不能同时使用这两个参数,但至少需要使用其中一个。

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

此外,对于使用 create_process 或 sql_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 查询且在 date 和 customer_id 上有一个排序键的 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", "customer_id"]
  }
}

sortkeys 的方言支持

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

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

方言 是否支持?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13.x - 0.17.x
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
ClickHouse 26+
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Dremio 26+ with Arrow Flight SQL
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MongoSQL
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica