0

例如:

来源:S3

预定更新:2次/天

目标:雪花桌

流媒体 :否

在第 0 天,我在 Snowflake DB 中创建并加载了一个客户表。S3 文件每天更新​​ 2 次,它们也需要反映在雪花表中。

我想提出一个解决方案,以便在没有流式传输或消息传递技术的情况下每天处理 2 次以下 3 个案例

  1. 插入 - 新记录
  2. 更新 - 现有记录
  3. 删除 - 现有记录
4

1 回答 1

2

如果您希望它们始终保持同步,您可以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

于 2020-05-25T15:05:14.333 回答