在外部阶段重新加载特定文件
Reload specific files in an external stage
我正在使用 COPY INTO 将 CSV 从 S3 加载到雪花中的 table。每次进程运行时 table 都会被截断(数据会保留在后续暂存 table 中)。如果 COPY INTO 完成但作业在加载到持久暂存 table 之前失败,记录将在下一次加载时丢失,COPY INTO 命令将忽略加载的文件。
我们的存档过程适用于超过 1 天的文件,因此我暂时无法切换到强制加载,因为会加载不相关的文件。
手动减少到仅丢失的文件并不理想,因为我们有 100 多个 tables,它们在 S3 中按 table 名称分区。
任何人都可以建议任何其他方法吗?
我会考虑更改您的流程,将文件同时复制到暂存位置和存档位置,然后在 COPY INTO 中利用 PURGE 命令。这样,错误的文件会在下一个 运行 中保留下来,并且您仍然可以使用完整的存档。
我正在使用 COPY INTO 将 CSV 从 S3 加载到雪花中的 table。每次进程运行时 table 都会被截断(数据会保留在后续暂存 table 中)。如果 COPY INTO 完成但作业在加载到持久暂存 table 之前失败,记录将在下一次加载时丢失,COPY INTO 命令将忽略加载的文件。
我们的存档过程适用于超过 1 天的文件,因此我暂时无法切换到强制加载,因为会加载不相关的文件。
手动减少到仅丢失的文件并不理想,因为我们有 100 多个 tables,它们在 S3 中按 table 名称分区。
任何人都可以建议任何其他方法吗?
我会考虑更改您的流程,将文件同时复制到暂存位置和存档位置,然后在 COPY INTO 中利用 PURGE 命令。这样,错误的文件会在下一个 运行 中保留下来,并且您仍然可以使用完整的存档。