删除外部平台而不删除S3文件

时间:2020-09-02 20:54:51

标签: snowflake-cloud-data-platform

我首先将加载到指向Amazon S3的Snowflake外部舞台中,然后执行COPY命令,将csv文件从Amazon S3加载到Snowflake。据我了解,一旦运动完成,吹扫功能将清除或保持平台完整。我将同一阶段用于相同性质的后续调用,并且禁用清除将创建重复项并继续在同一阶段进行堆叠。删除调用似乎可以清除阶段,但也可以清除我的S3文件。

有没有一种方法可以在清除s3文件的同时清除舞台?

1 个答案:

答案 0 :(得分:0)

您的第一个问题的答案:“是否有一种方法可以在清除s3文件的同时清除舞台?”没有。外部阶段是对文件位置(以及该位置中的文件)的引用,因此清除阶段(即删除所引用位置中的文件;这是“清除”的意思),但将文件保留在该逻辑上并不是逻辑上的可能。

如评论中所述,如果要在S3中保留文件的副本,则将它们复制到舞台位置时,只需将它们同时复制到另一个S3位置。

当您说“我正在为相同性质的后续通话使用同一阶段”时,我并不完全理解。我假设您不打算再次加载相同的文件,因此,如果这是一组不同的文件,为什么不使用引用不同S3位置的不同阶段呢?

正如评论中提到的那样,即使您继续从同一阶段加载数据(不进行清除),您也不会创建重复项,因为Snowflake会识别出它也已经处理过的文件,并且不会重新加载它们。