类别:

Information Schema表函数

PIPE_USAGE_HISTORY

此表函数的用途是,查询指定日期范围内使用 Snowpipe 加载到 Snowflake 表中的数据的历史记录。该函数返回整个 Snowflake 账户的加载数据和计费 Credit 的历史记录。

备注

此函数返回过去 14 天内的管道活动。

语法

PIPE_USAGE_HISTORY(
      [ DATE_RANGE_START => <constant_expr> ]
      [, DATE_RANGE_END => <constant_expr> ]
      [, PIPE_NAME => '<string>' ] )
Copy

实参

所有实参均为可选。

DATE_RANGE_START => constant_expr. DATE_RANGE_END => constant_expr

用于检索数据加载历史的日期/时间范围,限定在过去 2 周内。

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

  • 如果未指定开始日期,则范围会在 DATE_RANGE_END 开始前 10 分钟开始(即默认值是显示前 10 分钟的数据加载历史记录)。例如,如果 DATE_RANGE_ENDCURRENT_DATE,则默认 DATE_RANGE_START前一天 11:50 PM。

历史记录以 5 分钟、1 小时或 24 小时为增量显示(取决于指定范围的长度)。

如果范围超出了过去 15 天,则返回错误。

PIPE_NAME => string

一个用于指定管道的字符串。仅返回使用指定管道的数据加载。

如果未指定管道名称,则结果中的 PIPE_NAME 列将显示 NULL。每行包括时间范围内使用的所有管道的总数。

使用说明

  • 仅为 ACCOUNTADMIN 角色或任何已明确授予 MONITOR USAGE 全局权限的角色返回结果。

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

  • 有时,数据压缩和维护过程可能会使用 Snowflake Credit。例如,返回的结果可能显示您使用了 0 BYTES_INSERTED 和 0 FILES_INSERTED 的一些 Credit。这表示您的数据未加载,但数据压缩和维护过程已使用了一些 Credit。

  • Snowflake 对外部表和外部暂存区目录表中的自动刷新通知计费,费率与 Snowpipe 文件收费相当。您可以通过查询 PIPE_USAGE_HISTORY 函数或检查 Account Usage PIPE_USAGE_HISTORY 视图 来估算外部表和目录表自动刷新通知所产生的费用。请注意,自动刷新管道将使用 NULL 管道名称列出。您还可以使用 Information Schema 表函数 AUTO_REFRESH_REGISTRATION_HISTORY,以表级/暂存区级精细度查看外部表自动刷新通知历史记录。

    为避免产生自动刷新通知费用,请为外部表和目录表执行手动刷新。对于外部表,可使用 ALTER EXTERNAL TABLE <name> REFRESH ... 语句将外部表手动同步到外部存储。对于目录表,可使用 ALTER STAGE <name> REFRESH ... 语句将目录手动同步到外部存储。

输出

该函数返回以下列:

列名称

数据类型

描述

START_TIME

TIMESTAMP_LTZ

数据加载操作发生的时间范围的起始时间。

END_TIME

TIMESTAMP_LTZ

数据加载操作发生的指定时间范围的结束时间。

PIPE_NAME

TEXT

用于数据加载的管道的名称。如果未在查询中指定管道名称,则显示 NULL。每行包括时间范围内使用的所有管道的总数。

CREDITS_USED

TEXT

在 START_TIME 和 END_TIME 时段内针对 Snowpipe 数据加载计费的 Credit。

BYTES_INSERTED

NUMBER

在 START_TIME 和 END_TIME 时段内加载的字节数。

FILES_INSERTED

NUMBER

在 START_TIME 和 END_TIME 时段内加载的文件数。

示例

以 5 分钟为周期,检索特定 30 分钟范围内账户中所有管道的数据加载历史记录:

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>to_timestamp_tz('2017-10-24 12:00:00.000 -0700'),
    date_range_end=>to_timestamp_tz('2017-10-24 12:30:00.000 -0700')));
Copy

以 1 天为周期,检索账户中所有管道在过去 14 天内的数据加载历史记录:

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>dateadd('day',-14,current_date()),
    date_range_end=>current_date()));
Copy

以 1 小时为周期,检索账户中指定管道在过去 12 小时内的数据加载历史记录:

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>dateadd('hour',-12,current_timestamp()),
    pipe_name=>'mydb.public.mypipe'));
Copy

以 1 天为周期,检索账户中指定管道在过去 14 天内的数据加载历史记录:

select *
  from table(information_schema.pipe_usage_history(
    date_range_start=>dateadd('day',-14,current_date()),
    date_range_end=>current_date(),
    pipe_name=>'mydb.public.mypipe'));
Copy
语言: 中文