将多个文件从 blob 存储增量复制到 Azure SQL 数据库

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

我在执行从 Blob 存储到 Azure SQL 数据库的多个文件的增量复制时遇到问题。我只想在完全加载发生后将最近的文件复制到数据库中。我已经使用下面的 YouTube 视频来完成此负载:

https://www.youtube.com/watch?v=36UrhwoOKUk

当我在 blob 存储中有 3 个具有相同上次修改时间的文件时,理想情况下,所有三个文件都应复制到数据库,但仅复制列表中的最后一个文件,例如请检查下面的图片

enter image description here

这里有两个时间相同的文件,用红色标记,但增量复制时只复制第二个。我不会在我做错的地方起诉。有人可以指导吗

以下是在 ADF 中跳过视频的步骤:

  1. 获取 Metadata1 活动以获取子项列表,然后将这些子项传递给每个循环。
  2. 在每个循环中都有元数据 2 活动,它具有动态数据集并返回“项目名称”和“上次修改时间”的字段列表。然后,此元数据 2 连接到我正在使用的 If 条件活动:

@greater(activity('获取元数据2').output.lastModified,variables('PreviousModifiedDate'))

如果此表达式为真,则其中有两个设置变量活动。

注意:variables('PreviousModifiedDate')来自为管道创建的变量,我已创建LatestFile和PreviousModifiedDate作为变量,并将默认值'1753-01-01 00:00:00.000'设置为PreviousModizesDate的值)

  1. 第一个设置变量设置为 PreviousModifiedDate,第二个设置变量设置为 LatestFile。
  2. 对于连接到复制数据的每个活动,其中源是 Blob 存储(动态),接收器是 Azure SQL 数据库。
azure-pipelines azure-sql-database azure-blob-storage azure-data-factory azure-storage-account
2个回答
0
投票

我不确定为什么它不起作用,但我想建议另一种方法。 在复制活动中使用“按上次修改进行过滤”来读取文件。 您可以在 SQL 中的表中保存上次修改日期,并将其作为变量传递给复制活动。 将 ModifiedDatetimeEnd 保留为空,以获取早于 ModifiedDatetimeStart 的所有文件。

参考:https://learn.microsoft.com/en-us/azure/data-factory/connector-azure-data-lake-storage?tabs=data-factory#copy-activity-properties


0
投票
  1. 将数据从 Azure SQL 数据库增量加载到 Azure Data Lake在Azure数据工厂中使用Watermark,您可以按照这些 步骤:

    创建链接服务:

    在 Azure 数据工厂中为 Azure SQL 数据库设置链接服务 和 Azure Data Lake Storage Gen2。创建数据集:

    定义源(Azure SQL 数据库)和目标的数据集 (Azure 数据湖存储 Gen2)。配置数据集以指定 用于从源中提取数据的架构、表或查询。 创建管道:

    在 Azure 数据工厂中创建管道来编排数据 运动过程。将活动添加到管道以执行 以下任务:使用以下命令从 Azure SQL 数据库中提取数据 源数据集。转换数据(如有必要)。加载数据 使用目标数据集进入 Azure Data Lake Storage Gen2。使用 增量加载水印:

    实现基于水印的增量加载来跟踪最后一次 成功执行并仅加载自此以来的新数据或修改数据 最后一次运行。在源表中定义水印列(例如 时间戳列,指示每条记录上次更新的时间)。 将水印值(例如,最大时间戳)存储在 Azure 数据工厂可访问的持久位置,例如 数据库表或 Azure Key Vault。使用查找活动 检索最后一个水印值的管道。修改源码 查询或使用动态表达式来过滤数据 水印值(例如,仅选择时间戳为的记录 大于水印)。数据加载成功后, 将水印值更新为最新处理的时间戳。 安排管道:

    将管道配置为按计划或触发器运行 根据您所需的增量数据加载频率。 监控和错误处理:

    在 Azure Data 中实施监控和错误处理机制 工厂跟踪管道的执行状态,处理数据 验证错误,并重试失败的活动。测试和 验证:

    彻底测试管道,确保其正确处理 增量加载,更新水印值,维护数据 正直。通过遵循这些步骤并利用基于水印的 增量加载,您可以高效可靠地加载数据 Azure SQL 数据库到 Azure Data Lake Storage Gen2 工厂同时跟踪增量变化。

    https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal

    参考上面的文档

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