从 Azure SQL DB 到 Snowflake 的增量数据库复制

问题描述 投票:0回答:1

我想使用 Azure Factory 将表从 Azure SQL DB 上传到 Snowflake。

现在我正在使用带有源和目标的管道“复制数据”。 BlaBla 数据库中的整个事件表(约 2GB)均被复制。 (无需创建 CSV 文件)

但是,我找不到如何使用增量加载的解决方案,这样就不会复制整个数据库,而只会复制新添加的行。例如,每 5 分钟创建一个触发器,每 5 分钟将 Events 表中出现的行复制到 Snowflake 中的表中,没有任何重复。

是否有任何选项可以使用访问 api 将数据直接发送到 Snowflake?如果是这样,您能分享一个例子吗?

请帮我提供建议,因为这些想法已经在酝酿中了

sql-server azure snowflake-cloud-data-platform azure-data-factory
1个回答
0
投票

要使用 Azure 数据工厂执行从 Azure SQL 数据库到 Snowflake 的增量加载,可以按照以下步骤操作:

  1. 在源 SQL 表中选择一列,可用于标识每次运行的新记录或更新记录。通常,当创建或更新行时,此选定列中的数据(例如,

    last_modified_time
    ID
    )不断增加。此列中的最大值可以用作水印。

  2. 准备一个SQL表来存储水印值。

  3. 创建包含以下活动的管道:

    a.查找活动:在第一个查找活动中,使用查询从 Snowflake 中的目标表检索水印列的最大值。 (该值存储在水印表中)。在第二个查找活动中,从源 SQL 表中获取水印列的最大值。

    b.复制活动:使用 SQL 查询从 Azure SQL 数据库中的源表检索新的或更新的记录。使用水印列根据上一步中检索到的最大值过滤记录。将过滤后的记录复制到 Snowflake 中的目标表。

    c.存储过程活动:使用存储过程更新 SQL 数据库水印表中的新水印值。

  4. 安排管道以特定时间间隔运行,例如使用触发器每 5 分钟运行一次。

有关更多详细信息,请参阅有关从 SQL 数据库增量加载的 microsoft 文档

© www.soinside.com 2019 - 2024. All rights reserved.