雪花返回错误“位置 <bucket name> 上的自动摄取管道数不能大于允许的限制:50000”

Posted

技术标签:

【中文标题】雪花返回错误“位置 <bucket name> 上的自动摄取管道数不能大于允许的限制:50000”【英文标题】:Snowflake return error "Number of auto-ingest pipes on location <bucket name> cannot be greater than allowed limit: 50000" 【发布时间】:2021-09-15 10:15:18 【问题描述】:

我有一个 lambda 函数每天几次将数据加载到 AWS GLUE 表中,然后最后在雪花上创建一个外部表。该函数运行正常一段时间,但现在它开始不时向我返回此错误: Number of auto-ingest pipes on location &lt;bucket name&gt; cannot be greater than allowed limit: 50000

建表sql如下:

create or replace external table table_name(
row_id STRING as (value:row_id::string), 
created TIMESTAMP as (value:created::timestamp)
...
) with location = @conformedstage/table_name/ file_format = (type = parquet);

我用谷歌搜索了这个问题,几乎所有的答案都提到了sonwpipe,但是,它根本不使用雪管。

感谢任何想法

【问题讨论】:

【参考方案1】:

当使用 auto_refresh 创建外部表时,Snowflake 会创建一个内部管道来处理事件,并且您可能有很多外部表使用同一个存储桶。

您可以尝试设置 AUTO_REFRESH=false 吗?

create or replace external table table_name(
row_id STRING as (value:row_id::string), 
created TIMESTAMP as (value:created::timestamp)
...
) with location = @conformedstage/table_name/ file_format = (type = parquet) auto_refresh=false;

https://docs.snowflake.com/en/sql-reference/sql/create-external-table.html

【讨论】:

感谢 gokhan,您的回答解决了问题

以上是关于雪花返回错误“位置 <bucket name> 上的自动摄取管道数不能大于允许的限制:50000”的主要内容,如果未能解决你的问题,请参考以下文章

雪花存储在使用抛出错误而不是返回错误时给出不同的错误

雪花 - 检查模式并返回该模式中的子字符串

雪花程序没有被 catch 块捕获

我如何弄清楚为啥这个多面体在雪花中无效?

雪花存储过程 - 如何检索 CTAS 语句创建的行数

跟踪雪花中的错误 - 雪花中的验证功能期间出错