类别:

Information Schema表函数

COPY_HISTORY

此表函数可用于查询过去 14 天内不同维度的 Snowflake 数据加载历史记录。该函数返回 COPY INTO <table> 语句和使用 Snowpipe 的连续加载数据的加载活动。表函数避免了 LOAD_HISTORY 视图 的 10,000 行限制。结果可以使用 SQL 谓词进行筛选。

您还可以在 Snowsight 中查看数据加载详细信息。请参阅 使用复制历史记录监控数据加载活动

语法

COPY_HISTORY(
      TABLE_NAME => '<string>'
       , START_TIME => <constant_expr>
      [, END_TIME => <constant_expr> ] )
Copy

实参

必填:

TABLE_NAME => 'string'

指定表名称的字符串。

START_TIME => constant_expr

过去 14 天内的时间戳(TIMESTAMP_LTZ 格式),表示检索加载事件的时间范围的开始时间。

可选:

END_TIME => constant_expr

过去 14 天内的时间戳(TIMESTAMP_LTZ 格式),表示检索加载事件的时间范围的结束时间。

默认:CURRENT_TIMESTAMP

使用说明

  • 对于批量数据加载,此函数返回对 Snowflake 账户具有 MONITOR 权限的角色的结果,或者 对架构和数据库具有 USAGE 权限且对表具有任何权限的角色的结果。

  • 对于 Snowpipe 数据加载,此函数返回对 Snowflake 账户具有 MONITOR 权限的角色的结果,或者 对包含管道架构和数据库具有 USAGE 权限且对表具有任何权限的角色的结果。此外,如果管道上的 MONITOR 不可用,管道名称、管道表名称、管道架构名称和管道目录名称将被掩盖,显示为 NULL。

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

  • 此视图最多可返回 14 天的复制历史记录。要避免此限制,请使用 COPY_HISTORY 视图 (Account Usage)。

  • 该函数仅包括已执行并完成的 COPY INTO 命令,无论是否出错。

  • 弃用或重新创建表对象会删除批量数据加载(COPY INTO <table> 语句)到表中的历史数据。

  • 弃用或重新创建管道对象将移除使用管道的 Snowpipe 数据加载的历史数据。

  • COPY_HISTORY 视图仅在对目标表执行最新截断操作后才显示复制历史记录。这适用于 复制 之前和之后的 COPY_HISTORY 视图。

输出

该函数返回以下列:

列名称

数据类型

描述

FILE_NAME

TEXT

源文件的名称和文件的相对路径。

STAGE_LOCATION

TEXT

源文件所在的暂存区的名称。

LAST_LOAD_TIME

TIMESTAMP_LTZ

文件完成加载的日期和时间。

ROW_COUNT

NUMBER

从源文件加载的行数。

ROW_PARSED

NUMBER

从源文件中解析的行数;如果 STATUS 为 Load in progress,则为 NULL

FILE_SIZE

NUMBER

加载的源文件的大小(以字节为单位)。

FIRST_ERROR_MESSAGE

TEXT

源文件的第一个错误。

FIRST_ERROR_LINE_NUMBER

NUMBER

第一个错误的行号。

FIRST_ERROR_CHARACTER_POS

NUMBER

第一个错误字符的位置。

FIRST_ERROR_COLUMN_NAME

TEXT

第一个错误的列名称。

ERROR_COUNT

NUMBER

源文件中的错误行数。

ERROR_LIMIT

NUMBER

如果错误数达到此限制,则中止。

STATUS

TEXT

状态:Load in progressLoadedLoad failedPartially loadedLoad skipped

TABLE_CATALOG_NAME

TEXT

目标表所在的数据库的名称。

TABLE_SCHEMA_NAME

TEXT

目标表所在的架构的名称。

TABLE_NAME

TEXT

目标表的名称。

PIPE_CATALOG_NAME

TEXT

管道所在的数据库的名称。

PIPE_SCHEMA_NAME

TEXT

管道所在的架构的名称。

PIPE_NAME

TEXT

定义加载参数的管道名称;对于 COPY 语句加载,该名称为 NULL

PIPE_RECEIVED_TIME

TIMESTAMP_LTZ

收到通过管道加载的文件的 INSERT 请求的日期和时间;对于 COPY 语句加载,则为 NULL

示例

检索有关过去一小时内所有加载活动的详细信息:

select *
from table(information_schema.copy_history(TABLE_NAME=>'MYTABLE', START_TIME=> DATEADD(hours, -1, CURRENT_TIMESTAMP())));
Copy
语言: 中文