例如:
来源:S3
预定更新:2次/天
目标:雪花桌
流媒体 :否
在第 0 天,我在 Snowflake DB 中创建并加载了一个客户表。S3 文件每天更新 2 次,它们也需要反映在雪花表中。
我想提出一个解决方案,以便在没有流式传输或消息传递技术的情况下每天处理 2 次以下 3 个案例
- 插入 - 新记录
- 更新 - 现有记录
- 删除 - 现有记录
例如:
来源:S3
预定更新:2次/天
目标:雪花桌
流媒体 :否
在第 0 天,我在 Snowflake DB 中创建并加载了一个客户表。S3 文件每天更新 2 次,它们也需要反映在雪花表中。
我想提出一个解决方案,以便在没有流式传输或消息传递技术的情况下每天处理 2 次以下 3 个案例
如果您希望它们始终保持同步,您可以EXTERNAL TABLES
在 Snowflake 中使用以确保表始终与 Snowflake 保持同步。在您的外部表上放置一个MATERIALIZED VIEW
,现在您基本上有了一个与您的 S3 文件同步的 Snowflake 表。在这种情况下,每次修改或添加 S3 文件时,都会将文件加载到 MV 中。
https://docs.snowflake.com/en/user-guide/tables-external.html
如果即将到来的文件已更新记录并在数据中标记为 CDC 数据的删除,那么您需要利用流和任务来代替。首先,使用 aCOPY INTO
或 Snowpipe(需要设置 SQS)将文件加载到暂存表中,然后在暂存表上放置一个流,最后创建一个任务来检查流中的新记录并MERGE
针对您的最终结果执行桌子。
https://docs.snowflake.com/en/user-guide/data-pipelines.html