外部表故障排除¶
本主题介绍如何对外部表问题进行故障排除。
本主题内容:
自动元数据刷新功能已禁用¶
如果外部表的所有权(即外部表的 OWNERSHIP 权限)转让给其他角色,外部表的 AUTO_REFRESH 参数默认设置为 FALSE。要重新启用外部表元数据的自动刷新功能,请使用 ALTER EXTERNAL TABLE 语句将 AUTO_REFRESH 参数设置为 TRUE。
验证为外部云消息传递服务配置的设置是否仍然准确。有关更多信息,请参阅云存储提供商的说明:
查看自动元数据刷新的进度¶
检索外部表用于刷新其元数据的内部隐藏管道的当前状态。结果以 JSON 格式显示。有关信息,请参阅 SYSTEM$EXTERNAL_TABLE_PIPE_STATUS。
查看以下值:
lastReceivedMessageTimestamp
指定从消息队列接收的最后一条事件消息的时间戳。
如果时间戳早于预期,则可能表示云事件通知服务配置或服务本身存在问题。如果该字段为空,请验证服务配置设置。如果该字段包含时间戳,但早于预期,请验证服务配置中是否更改了设置。
lastForwardedMessageTimestamp
指定转发到管道的最后一个事件消息的时间戳。
错误:找不到与暂存区 {1}
关联的集成 {0}
¶
003139=SQL compilation error:\nIntegration ''{0}'' associated with the stage ''{1}'' cannot be found.
当外部暂存区与链接到该暂存区的存储集成之间的关联中断时,可能会发生此错误。当(使用 CREATE OR REPLACE STORAGE INTEGRATION)重新创建存储集成对象时,会发生这种情况。暂存区使用隐藏 ID(而不是存储集成的名称)链接到存储集成。在后台,CREATE OR REPLACE 语法会删除对象,并使用其他隐藏 ID 重新创建对象。
如果将存储集成链接到一个或多个暂存区后,必须重新创建该存储集成,则必须通过执行 ALTER STAGE stage_name
SET STORAGE_INTEGRATION = storage_integration_name
来重新建立每个暂存区与存储集成之间的关联,其中:
stage_name
是暂存区的名称。storage_integration_name
是存储集成的名称。
错误:外部表 {0}
已标记为无效。暂存区 {1}
位置已更改¶
查询外部表可能会产生类似于以下内容的错误:
091093 (55000): External table ''{0}'' marked invalid. Stage ''{1}'' location altered.
在创建外部表后,修改引用的暂存区的 URL 时,可能会发生此错误(使用 ALTER STAGE ...SET URL)。
如果必须修改暂存区 URL,则必须重新创建用于引用该暂存区的现有外部表(使用 CREATE OR REPLACE EXTERNAL TABLE)。