Snowflake cloud data platform 将大量小文件加载到snowflake中

Snowflake cloud data platform 将大量小文件加载到snowflake中,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我已经设置了一个存储桶,里面有很多小XML文件要用snowpipe加载到snowflake中。但是,我有大约500万个小文件(每行一个文件)需要加载到snowflake中。我有一个需要加载到snowflake的文件列表。我意识到这不是一个最佳的情况,但是,如果有什么我可以做的,使这更可口?从计费角度来看,运行500万个复制命令有什么意义?我能做些什么来降低这里的成本?也许可以将XML预处理为单个文件?在节省成本方面值得付出努力?Snowflake的加载建议是压缩文件大小为10-100Mb。您可以

我已经设置了一个存储桶,里面有很多小XML文件要用snowpipe加载到snowflake中。但是,我有大约500万个小文件(每行一个文件)需要加载到snowflake中。我有一个需要加载到snowflake的文件列表。我意识到这不是一个最佳的情况,但是,如果有什么我可以做的,使这更可口?从计费角度来看,运行500万个复制命令有什么意义?我能做些什么来降低这里的成本?也许可以将XML预处理为单个文件?在节省成本方面值得付出努力?

Snowflake的加载建议是压缩文件大小为10-100Mb。您可以有许多文件,但如果它们太大或太小,则无法以最佳方式执行


CSV文件格式工作得最好,因此现在您可以认为您设计得很恰当

Snowflake的加载建议是压缩文件大小为10-100Mb。您可以有许多文件,但如果它们太大或太小,则无法以最佳方式执行

CSV文件格式工作得最好,因此现在您可以认为您设计得很恰当

基于用于执行加载的计算时间。对于许多小文件,与执行每个文件的满载指令(发现、打开、读取/解析、插入、关闭、下一步)相关的开销可能会增加到浪费计算时间的一个非常重要的值,否则将花费在实际的数据读取和插入上

此外,还有直接的间接费用:

除了资源消耗外,Snowpipe的使用成本中还包括一项开销:通过事件通知或REST API调用通知或列出的每1000个文件中有0.06个学分。无论事件通知或REST API调用是否导致数据加载,都会收取此开销

对于约500万个文件,在使用Snowpipe时,在实际计算积分的基础上,这意味着约300个积分的使用费

我能做些什么来降低这里的成本?也许可以将XML预处理为单个文件

将文件预处理成更大的片段当然是个好主意。Snowflake支持,因此将XML数据合并到的更大文件中可以帮助更快、更便宜地加载它们

请记住,没有单独的XML文档行

注意:如果这是一次性操作,更大的需要是加载文件以尽快开始使用Snowflake,那么我建议按原样加载,因为您提到的bucket已经准备好了。您可以在以后的重复中使用合并方法。

基于用于执行加载的计算时间。对于许多小文件,与执行每个文件的满载指令(发现、打开、读取/解析、插入、关闭、下一步)相关的开销可能会增加到浪费计算时间的一个非常重要的值,否则将花费在实际的数据读取和插入上

此外,还有直接的间接费用:

除了资源消耗外,Snowpipe的使用成本中还包括一项开销:通过事件通知或REST API调用通知或列出的每1000个文件中有0.06个学分。无论事件通知或REST API调用是否导致数据加载,都会收取此开销

对于约500万个文件,在使用Snowpipe时,在实际计算积分的基础上,这意味着约300个积分的使用费

我能做些什么来降低这里的成本?也许可以将XML预处理为单个文件

将文件预处理成更大的片段当然是个好主意。Snowflake支持,因此将XML数据合并到的更大文件中可以帮助更快、更便宜地加载它们

请记住,没有单独的XML文档行

注意:如果这是一次性操作,更大的需要是加载文件以尽快开始使用Snowflake,那么我建议按原样加载,因为您提到的bucket已经准备好了。您可以在以后的重复中使用合并方法