类别:

Information Schema表函数

CORTEX_SEARCH_REFRESH_HISTORY

此表函数返回有关 Cortex Search Service 每次刷新(已完成和正在运行)的信息。

此表函数返回所有正在进行的刷新以及当前时间 7 天内具有 DATA_TIMESTAMP 的所有刷新。

语法

CORTEX_SEARCH_REFRESH_HISTORY(
  [ NAME => '<string>' ]
  [ , DATA_TIMESTAMP_START => <constant_expr> ]
  [ , DATA_TIMESTAMP_END => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
)
Copy

实参

所有实参均为可选。如果未提供任何实参,则将返回账户中所有 Cortex Search Service 的 100 次刷新。

NAME => string

Cortex Search 服务的名称。

名称必须放在单引号内,并且不区分大小写。

可以指定非限定名称 (service_name)、部分限定名称 (schema_name.service_name) 或完全限定名称 (database_name.schema_name.service_name)。

有关对象名称解析的详细信息,请参阅 对象名称解析

函数返回此服务的刷新次数。

DATA_TIMESTAMP_START => constant_expr. DATA_TIMESTAMP_END => constant_expr

刷新发生的时间范围(TIMESTAMP_LTZ 格式)。

  • 如果既未指定开始时间,也未指定结束时间,则默认范围为过去一天。

  • 如果未指定结束时间,则会将 CURRENT_TIMESTAMP 用作范围的结束日期。

  • 如果未指定开始时间,则范围在 DATA_TIMESTAMP_END 开始前 1 天开始。

RESULT_LIMIT => integer

一个用于指定该函数返回的最大行数的数字。如果匹配的行数大于此限制,则会返回最近完成的刷新(以及仍在运行的刷新),最高不超过指定的限制。

要对结果应用筛选器,还要为应用于所有 Cortex Search Service 的筛选器指定足够大的 RESULT_LIMIT 限值。

范围:110000

默认:100

输出

该函数返回以下列。

列名称

数据类型

描述

NAME

TEXT

Cortex Search 服务的名称。

SCHEMA_NAME

TEXT

包含 Cortex Search 服务的架构的名称。

DATABASE_NAME

TEXT

包含 Cortex Search 服务的数据库的名称。

STATE

TEXT

Cortex Search 服务的刷新状态。状态可以是以下状态之一:

  • EXECUTING:正在刷新。

  • SUCCEEDED:刷新成功完成。

  • FAILED:刷新在执行期间失败。

  • CANCELLED:刷新在执行前被取消。

DATA_TIMESTAMP

TIMESTAMP_LTZ

评估刷新时的事务时间戳。(这可能略早于刷新的实际时间。Cortex Search 服务目前包含在该时间戳之前到达的基本对象中的所有数据。

REFRESH_START_TIME

TIMESTAMP_LTZ

刷新作业开始的时间。

REFRESH_END_TIME

TIMESTAMP_LTZ

刷新完成的时间。

INDEX_PREPROCESSING_DURATION

NUMBER

索引预处理阶段的持续时间(以毫秒为单位)。

INDEX_PREPROCESSING_QUERY_ID

TEXT

执行索引预处理的查询的 ID。

INDEX_PREPROCESSING_STATISTICS

OBJECT

包含以下索引预处理属性:

  • compilationTimeMs:选择使用 时默认使用的角色和仓库。编译查询所花费的时间(以毫秒为单位)。

  • executionTimeMs:选择使用 时默认使用的角色和仓库。执行查询所花费的时间(以毫秒为单位)。

  • queuedTimeMs:选择使用 时默认使用的角色和仓库。执行前排队等待的时间(以毫秒为单位)。

  • numInsertedRows:插入的行数。

  • numDeletedRows:已删除的行数。

  • numCopiedRows:未更改的复制行数。

  • numAddedPartitions:添加的分区数。

  • numRemovedPartitions:选择使用 时默认使用的角色和仓库。已删除的分区数。

INDEXING_DURATION

NUMBER

索引阶段的持续时间(以毫秒为单位)。

INDEXING_QUERY_ID

TEXT

执行索引的查询的 ID。

REFRESH_ACTION

TEXT

其中之一:

  • NO_DATA – 基表中没有新数据。

  • FULL – Cortex Search Service 的全面刷新。

  • INCREMENTAL – Cortex Search Service 的增量刷新。

REFRESH_TRIGGER

TEXT

其中之一:

  • SCHEDULED - 正常后台刷新,使服务保持最新状态。

  • MANUAL – 用户使用 ALTER CORTEX SEARCH SERVICE 手动触发刷新。

  • CREATION - 创建 DDL 语句期间执行的刷新。

TARGET_LAG_SEC

NUMBER

描述刷新时 Cortex Search 服务的目标滞后值。

WAREHOUSE

TEXT

用于刷新操作的仓库名称。

ERROR

TEXT

如果刷新失败,则显示错误消息,否则显示 NULL。

使用说明

  • 当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者 函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema

示例

查找过去一周内失败的 Cortex Search 服务刷新:

SELECT
  data_timestamp,
  database_name,
  schema_name,
  name,
  state,
  error,
  refresh_trigger
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      DATA_TIMESTAMP_START => DATEADD(WEEK, -1, CURRENT_TIMESTAMP())
    )
  )
ORDER BY
  data_timestamp DESC
LIMIT 10;
Copy

查找特定 Cortex Search 服务最近的手动刷新:

SELECT
  data_timestamp,
  refresh_start_time,
  refresh_end_time,
  refresh_action,
  state
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      NAME => 'MYSVC',
      DATA_TIMESTAMP_START => DATEADD(DAY, -7, CURRENT_TIMESTAMP()),
      RESULT_LIMIT => 20
    )
  )
WHERE
  refresh_trigger = 'MANUAL'
ORDER BY
  data_timestamp DESC;
Copy

分析 Cortex Search 服务的刷新性能:

SELECT
  name,
  data_timestamp,
  index_preprocessing_duration,
  indexing_duration,
  TIMEDIFF(SECOND, refresh_start_time, refresh_end_time) AS total_refresh_duration_sec,
  index_preprocessing_statistics:numInsertedRows AS rows_processed
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      NAME => 'MYSVC',
      DATA_TIMESTAMP_START => DATEADD(DAY, -30, CURRENT_TIMESTAMP())
    )
  )
WHERE
  state = 'SUCCEEDED'
ORDER BY
  data_timestamp DESC;
Copy
语言: 中文