VALIDATE_PIPE_LOAD¶
此表函数可用于验证指定时间范围内 Snowpipe 处理的数据文件。该函数返回有关在尝试将数据加载到 Snowflake 表过程中遇到的任何错误的详细信息。
备注
此函数返回过去 14 天内的管道活动。
语法¶
VALIDATE_PIPE_LOAD(
PIPE_NAME => '<string>'
, START_TIME => <constant_expr>
[, END_TIME => <constant_expr> ] )
实参¶
PIPE_NAME => string
一个用于指定管道的字符串。该函数仅返回指定管道的结果。
START_TIME => constant_expr
过去 14 天内的时间戳(TIMESTAMP_LTZ 格式),标志着检索错误事件的时间范围的开始时间。
可选:
END_TIME => constant_expr
过去 14 天内的时间戳(TIMESTAMP_LTZ 格式),标志着检索错误事件的时间范围的结束时间。
使用说明¶
仅返回管道所有者(即对管道具有 OWNERSHIP 权限的角色) 或 具有以下最低权限的角色的结果:
权限
对象
备注
MONITOR
管道
或者,支持全局 MONITOR EXECUTION 权限。
USAGE
管道定义中的暂存区
仅限外部暂存区
READ
管道定义中的暂存区
仅限内部暂存区
SELECT
管道定义中的表
INSERT
管道定义中的表
对架构对象进行 SQL 操作还需要对包含该对象的数据库和架构具有 USAGE 权限。
当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者 函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema。
如果 Snowpipe 在指定时间范围内处理数据文件时没有遇到错误,则该函数不返回任何结果。
如果管道描述中的 COPY 语句包含在加载期间进一步转换数据的查询(即 COPY 转换),则该函数当前会返回用户错误。
如果指定的日期范围不在过去 15 天内,则会返回错误。
输出¶
该函数返回以下列:
列名称 |
数据类型 |
描述 |
---|---|---|
ERROR |
TEXT |
源文件中的第一个错误。 |
FILE |
TEXT |
遇到错误的源文件的名称。 |
LINE |
NUMBER |
在遇到错误的源文件中的行号。 |
CHARACTER |
NUMBER |
遇到错误的字符的位置。 |
BYTE_OFFSET |
NUMBER |
遇到错误的字符的字节偏移量。 |
CATEGORY |
TEXT |
出现错误时的操作类别。 |
CODE |
NUMBER |
ERROR 列中显示的错误消息 ID。 |
SQL_STATE |
NUMBER |
SQL 状态代码。 |
COLUMN_NAME |
TEXT |
包含错误的列的名称和顺序。 |
ROW_NUMBER |
NUMBER |
遇到错误的源文件中的行号。 |
ROW_START_LINE |
NUMBER |
遇到错误的行的第一行编号。 |
REJECTED_RECORD |
TEXT |
包含错误的记录。 |
示例¶
验证前一小时内 mypipe
管道的所有下载:
select * from table(validate_pipe_load( pipe_name=>'MY_DB.PUBLIC.MYPIPE', start_time=>dateadd(hour, -1, current_timestamp())));