繁体   English   中英

Snowpipe 无法从 Azure Blob 存储自动摄取

[英]Snowpipe not auto-ingesting from Azure Blob Storage

在过去的几天里,我花了很多时间尽我最大的努力在我们的 Azure Blob 存储和 Snowflake 之间创建一个自动化的 Snowpipe。 我的存储集成有效,但我的问题在于自动摄取和通知集成。

在 Snowflake 方面,我已经设置了通知集成、外部阶段、pipe 和表格,所有这些都是按照关于如何为 Azure 存储自动化 Snowpipe的 Snowflake 文档创建的。

在Azure这边,Snowflake企业应用用户拥有需要的存储队列权限。 我还在Azure配置了Events和Message Queue,这样当一个新的blob上传到容器的时候,就会在队列中成功创建一条消息。

但是,当我将 blob 放入云存储时,会创建一条消息,但 blob 不会自动提取到我的表中。 如果我手动刷新 pipe,则会加载文件。 我确实看到 Snowflake 社区的帖子似乎提到了这个问题,我按照步骤重新配置了 Azure 端权限,但无济于事。 在查看Snowpipe 故障排除文档时,我被指向了SYSTEM$PIPE_STATUS function,这就是我最终进入死胡同的地方。 我收到以下回复:

{"executionState":"RUNNING","pendingFileCount":0,
"notificationChannelName":"https://<storage_account>.queue.core.windows.net/<queue_name>",
"numOutstandingMessagesOnChannel":0,
"lastReceivedMessageTimestamp":"2022-02-24T11:11:15.031Z",
"channelErrorMessage":"downloadAttributes error:Queue not found for channel Name=https://<storage_account>.queue.core.windows.net/<queue_name>,
AccountId=6741, NotificationChannelID=147585,
IntegrationID=1725812",
"lastErrorRecordTimestamp":"2022-02-28T20:23:51.631Z"}

当搜索上面发现的错误“downloadAttributes error:Queue not found for channel Name..”时,除了另一个具有相同问题的StackOverflow 问题外,我在任何地方都找不到任何东西,但不幸的是没有回应。

任何帮助将不胜感激,因为此功能对于该项目至关重要。 非常感谢您的帮助!

在某些情况下可能会导致该错误消息,最常见的原因是 stage 或 pipe 引用了旧的集成(例如,使用 create 或 replace 重新创建并使用相同的名称但获得了新的唯一 ID)。

有两种方法可以解决这个问题:

  • 从头开始重新创建所有内容(不是最简单的方法)

或者

  • 向 Snowflake 支持开一个案例,这样他们就可以启用一个参数来克服阶段/管道引用旧集成的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM