【问题标题】:Changed Data Capture (CDC) - periodically Sync datasets between S3 Staging File & Snowflake Tables更改数据捕获 (CDC) - 在 S3 暂存文件和雪花表之间定期同步数据集
【发布时间】:2020-09-12 05:43:23
【问题描述】:

例如:

来源:S3

预定更新:2次/天

目标:雪花桌

流媒体:否

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

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

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

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema snowflake-task snowflake-pipe


    【解决方案1】:

    如果您希望它们始终保持同步,您可以在 Snowflake 中使用 EXTERNAL TABLES 以确保表始终与 Snowflake 保持同步。在您的外部表上放置一个MATERIALIZED VIEW,现在您基本上有了一个与您的 S3 文件同步的 Snowflake 表。在这种情况下,每次修改或添加 S3 文件时,都会将文件加载到 MV 中。

    https://docs.snowflake.com/en/user-guide/tables-external.html

    如果即将到来的文件已在数据中标记为 CDC 数据的更新记录和删除,那么您需要利用流和任务来代替。首先,使用COPY INTO 或 Snowpipe(需要设置 SQS)将文件加载到临时表中,然后在临时表上放置一个流,最后创建一个任务来检查流中的新记录并执行MERGE 对抗你的决赛桌。

    https://docs.snowflake.com/en/user-guide/data-pipelines.html

    【讨论】:

    • 如果我有一个包含 200 个表的雪花数据库,我们还能将这种技术应用于整个数据库吗?我正在寻找变更数据捕获 (CDC) 的 ETL 解决方案。我们需要依赖雪花提供的ETL解决方案还是使用Informatica或Talend等ETL工具
    • 你也可以。 Snowflake 具有使用任务和流处理此问题的功能,或者您可以利用合作伙伴 ETL 工具之一,例如 Informatica、Talend、Matillion 等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    相关资源
    最近更新 更多