snowflake-cloud-data-platform - 删除外部阶段而不删除 S3 文件
问题描述
我将 csv 文件从 Amazon S3 加载到 Snowflake,方法是首先加载到指向 Amazon S3 的 Snowflake 外部阶段,然后使用 COPY 命令。据我了解,一旦移动完成,清除功能就会清除或保持舞台完好无损。我将同一阶段用于相同性质的后续调用,并且禁用清除会创建重复项并继续在同一阶段堆叠。删除调用似乎清除了舞台,也清除了我的 S3 文件。
有没有办法可以在保持 s3 文件完整的同时清除舞台?
解决方案
您最初问题的答案“有没有一种方法可以在保持 s3 文件完整的同时清除舞台?” 没有。外部阶段是对文件位置(以及该位置中的文件)的引用,因此清除阶段(即删除引用位置中的文件;这就是“清除”的意思)但将文件保留在该位置是不合逻辑的可能的。
如评论中所述,如果您想在 S3 中保留文件的副本,那么当您将它们复制到舞台位置时,只需将它们同时复制到另一个 S3 位置即可。
当您说“我正在使用同一阶段进行后续相同性质的呼叫”时,我不完全理解。我假设您没有尝试再次加载相同的文件,所以如果这是一组不同的文件,为什么不使用引用不同 S3 位置的不同阶段?
正如评论中提到的那样,即使您继续从同一阶段加载数据(不清除),您也不会创建重复项,因为 Snowflake 会识别它也处理过的文件并且不会重新加载它们。
推荐阅读
- java - JSONAssert.assertEquals:比较时忽略多个字段
- c# - 如何对发出的事件使用异步事件处理程序?
- python - 有没有办法使用 Python 通过使用 for 循环并从列表中调用来调用给定值列表的 API?
- c# - 如何制作 C# 库
- google-chrome - 如何为在不同主机但相同二级域上提供的 iframe 强制 Chrome 的“站点隔离”?
- cocoapods - 使用 Cocoapods 在 Pod Spec Test 的 App Host 中指定权利
- javascript - 防止 Javascript 重新排序 JSON
- jquery - 如果元素具有某个类,则防止事件触发
- git - git中的合并冲突问题
- ruby - 有没有一种内置的方法可以通过异常挖掘哈希和数组?