如何查看Snowpipe错误日志?Snowpipe运行但未复制数据
Snowpipe错误日志查看方法
针对你的Snowpipe运行但未复制数据的问题,以下是几种直接查看错误日志及运行详情的方式:
1. 查询复制历史(COPY_HISTORY)
通过COPY_HISTORY函数可以获取管道执行的复制任务记录,包括成功/失败状态、错误信息、处理文件数等:
SELECT * FROM TABLE(COPY_HISTORY( PIPE_NAME => 'INGESTION_TEST.TEST.CAR_BASELINE_V2_PIPE', START_TIME => DATEADD(HOUR, -2, CURRENT_TIMESTAMP) -- 查看最近2小时的记录 ));
重点关注ERROR_MESSAGE列,这里会记录复制失败的具体原因。
2. 查询管道使用历史(PIPE_USAGE_HISTORY)
这个函数能展示管道的运行时段、处理的文件数量、是否有错误发生:
SELECT * FROM TABLE(PIPE_USAGE_HISTORY( PIPE_NAME => 'INGESTION_TEST.TEST.CAR_BASELINE_V2_PIPE', START_TIME => DATEADD(HOUR, -2, CURRENT_TIMESTAMP) ));
如果管道未触发,这里可能看不到执行记录,可结合AUTO_INGEST配置排查事件通知问题。
3. 查看管道事件表(若已配置)
如果创建管道时指定了EVENT_TABLE参数,或后续关联了事件表,可直接查询该表获取全流程事件日志:
-- 先查看管道关联的事件表 DESCRIBE PIPE INGESTION_TEST.TEST.CAR_BASELINE_V2_PIPE; -- 替换为实际事件表名查询 SELECT * FROM YOUR_EVENT_TABLE_NAME WHERE PIPE_NAME = 'INGESTION_TEST.TEST.CAR_BASELINE_V2_PIPE' AND EVENT_TIME >= DATEADD(HOUR, -2, CURRENT_TIMESTAMP);
事件表会记录文件到达通知、管道扫描、复制尝试等细节,便于定位是通知未触发还是复制阶段出错。
4. 验证管道配置与权限
通过DESCRIBE PIPE确认核心配置是否正确:
DESCRIBE PIPE INGESTION_TEST.TEST.CAR_BASELINE_V2_PIPE;
检查AUTO_INGEST是否为TRUE、阶段路径是否匹配,同时确保Snowpipe拥有访问存储阶段和目标表的权限。
由于你单独执行COPY INTO能成功,说明数据格式、阶段权限、表结构无问题,大概率是Snowpipe自动触发机制未生效,通过上述日志查询可确认是否存在事件通知未接收、扫描阶段未捕获的错误等情况。
内容的提问来源于stack exchange,提问作者mahesh
相关产品推荐
相关产品推荐

