Snowflake cloud data platform 更改数据捕获(CDC)-在S3暂存文件和;雪花桌

Snowflake cloud data platform 更改数据捕获(CDC)-在S3暂存文件和;雪花桌,snowflake-cloud-data-platform,snowflake-schema,snowflake-task,snowflake-pipe,Snowflake Cloud Data Platform,Snowflake Schema,Snowflake Task,Snowflake Pipe,例如: 来源:S3 计划更新:2次/天 目标:雪花表 流媒体:否 在第0天,我在Snowflake DB中创建并加载了一个customer表。S3文件每天更新2次,它们也需要反映在雪花表中 我想提出一个解决方案,以便在不使用流媒体或消息技术的情况下,每天处理2次以下3个案例 插入-新记录 更新-现有记录 删除-现有记录 如果希望它们始终保持同步,可以在Snowflake中使用外部表,以确保表始终与Snowflake保持同步。在您的外部表上放置一个物化视图,现在您基本上拥有了一个与S3文件同步的雪

例如:

来源:S3

计划更新:2次/天

目标:雪花表

流媒体:否

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

我想提出一个解决方案,以便在不使用流媒体或消息技术的情况下,每天处理2次以下3个案例

  • 插入-新记录
  • 更新-现有记录
  • 删除-现有记录

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

    如果即将到来的文件中有更新的记录,并且在数据中标记为CDC数据的删除,那么您需要利用流和任务。首先,使用
    复制到
    或Snowpipe(需要设置SQS)将文件加载到暂存表中,然后在暂存表上放置一个流,最后创建一个任务,检查流中是否有新记录,并对最终表执行
    合并


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

    如果即将到来的文件中有更新的记录,并且在数据中标记为CDC数据的删除,那么您需要利用流和任务。首先,使用
    复制到
    或Snowpipe(需要设置SQS)将文件加载到暂存表中,然后在暂存表上放置一个流,最后创建一个任务,检查流中是否有新记录,并对最终表执行
    合并


    如果我有一个包含200个表的雪花数据库,我们还可以对整个数据库应用此技术吗?我正在寻找用于变更数据捕获(CDC)的ETL解决方案。我们是否需要依赖snowflake提供的ETL解决方案,或者使用Informatica或Talenda之类的ETL工具?您可以这样做。Snowflake具有使用任务和流处理此问题的功能,或者您可以利用Informatica、Talend、Matillion等合作伙伴ETL工具之一。如果我有一个包含200个表的Snowflake DB,我们是否仍可以将此技术应用于整个DB?我正在寻找用于变更数据捕获(CDC)的ETL解决方案。我们是否需要依赖snowflake提供的ETL解决方案,或者使用Informatica或Talenda之类的ETL工具?您可以这样做。Snowflake具有使用任务和流处理此问题的功能,或者您可以利用Informatica、Talend、Matillion等合作伙伴ETL工具之一。