类别:

系统函数 (系统信息)

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS

检索与外部表关联的内部(隐藏)管道对象的当前刷新状态的 JSON 表示形式。

外部表的元数据的自动刷新在内部依赖于 Snowpipe。当受监控的云存储发生更改时,Snowpipe 会接收事件通知。有关更多信息,请参阅 外部表简介

语法

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS( '<external_table_name>' )
Copy

实参

external_table_name

要检索其当前自动刷新状态的外部表。

使用说明

  • 此函数仅针对外部表所有者(即,具有外部表的 OWNERSHIP 权限的角色)返回结果。

  • external_table_name 是一个字符串,因此必须放在单引号内:

    • 请注意,整个名称必须放在单引号内,包括数据库和架构(如果名称是完全限定名称),即 '<db>.<schema>.<external_table_name>'

    • 如果外部表名称区分大小写或包含任何特殊字符或空格,则需要使用双引号来处理大小写/字符。双引号必须放在单引号内,即 '"<pipe_name>"'

输出

函数返回包含以下名称/值对的 JSON 对象(如果适用于当前管道状态):

{"executionState":"<value>","oldestPendingFilePath":"<value>","oldestFileTimestamp":<value>,"pendingFileCount":<value>,"lastPipeFaultTimestamp":"<value>","notificationChannelName":"<value>","numOutstandingMessagesOnChannel":<value>,"lastReceivedMessageTimestamp":"<value>","lastForwardedMessageTimestamp":"<value>","error":<value>,"fault":<value>,"lastPulledFromChannelTimestamp":"<value>","lastForwardedFilePath":"<value>"}

其中:

executionState

管道的当前执行状态。该值可以是以下任一值:

  • RUNNING (即,一切正常;Snowflake 可能或不可能主动处理此管道的事件消息)

  • STOPPED_CLONED (即管道包含在数据库或架构克隆内)

  • STOPPED_FEATURE_DISABLED

  • STOPPED_STAGE_DROPPED

  • STOPPED_FILE_FORMAT_DROPPED

  • STOPPED_NOTIFICATION_INTEGRATION_DROPPED

  • STOPPED_MISSING_PIPE

  • STOPPED_MISSING_TABLE (删除了管道定义中定义的目标表)

  • STALLED_COMPILATION_ERROR

  • STALLED_INITIALIZATION_ERROR

  • STALLED_EXECUTION_ERROR

  • STALLED_INTERNAL_ERROR

  • PAUSED

  • PAUSED_BY_SNOWFLAKE_ADMIN

  • PAUSED_BY_ACCOUNT_ADMIN

oldestPendingFilePath

当前排队等待元数据刷新操作的最早数据文件的路径。将文件添加到队列时的时间戳以 oldestFileTimestamp 属性返回。

oldestFileTimestamp

当前排队等待元数据刷新操作的数据文件中的最早时间戳(如果适用),其中时间戳在文件添加到队列时设置。

pendingFileCount

管道当前正在处理的文件数。此值会随外部表元数据的刷新而减小。当此值为 0 时,此管道没有排队的元数据刷新。

lastPipeFaultTimestamp

最近一次检测到内部 Snowflake 处理错误的时间戳。

notificationChannelName

与管道关联的 Amazon SQS 队列或 Microsoft Azure 存储队列。

numOutstandingMessagesOnChannel

队列中已排队但尚未收到的消息数。

lastReceivedMessageTimestamp

从队列接收的最后一条消息的时间戳。

lastForwardedMessageTimestamp

最近一条适用事件消息的时间戳,其中包含转发到管道的匹配路径/前缀。

channelErrorMessage

尝试从关联的云消息传递服务队列中读取消息时生成的错误消息。

lastErrorRecordTimestamp

最后一个通道错误消息的时间戳(即 channelErrorMessage 值中报告的错误消息)。

error

上次编译管道以执行时产生的错误消息(如果适用);通常是由于权限问题或删除对象导致访问必要对象(即表、暂存区、文件格式)的问题。

fault

最近的内部 Snowflake 进程错误(如果适用)。主要由 Snowflake 用于调试目的。

lastPulledFromChannelTimestamp

Snowpipe 最近一次从云消息传递服务队列中提取管道事件通知时的时间戳。

lastForwardedFilePath

转发到管道的最近一条适用事件消息中识别到的数据文件的路径。

示例

检索名称不区分大小写的外部表的自动刷新状态:

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema.exttable');

+---------------------------------------------------------------+
| SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA.EXTTABLE')   |
|---------------------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0}             |
+---------------------------------------------------------------+
Copy

检索名称区分大小写的管道的状态:

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema."extTable"');

+---------------------------------------------------------------+
| SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA."extTable"') |
|---------------------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0}             |
+---------------------------------------------------------------+
Copy
语言: 中文