Azure 数据工厂增量 BLOB 复制
Azure DataFactory Incremental BLOB copy
我制作了一个管道,用于将数据从一个 blob 存储复制到另一个。如果可能的话,我想要增量复制,但还没有找到指定它的方法。原因是我想 运行 按计划执行此操作并且只复制自上次 运行.
以来的所有新数据
我假设 'incremental' 是指将新的 blob 添加到容器中。没有简单的方法可以将更改复制到特定的 blob。
因此,当 运行 在调度中时,这不可能自动实现,因为 'new' 不是调度程序可以知道的。
相反,您可以使用 Blob 创建的事件触发器,然后将结果(Blob 名称)缓存在其他地方。然后,当您的计划运行时,它可以读取这些名称并仅复制那些 blob。
您有很多缓存选项。一个 SQL Table,另一个 blob.
注意:这里的复杂之处在于试图按计划执行此操作。如果您可以调整参数以仅复制每个新文件,那将非常非常简单,因为您只需复制创建触发器的 blob。
另一种选择是使用触发器将创建时的 blob 复制到 temporary/staging 容器,然后使用计划将这些文件移动到最终目的地。
- 如果您的 blob 名称使用时间戳命名得当,您可以按照此文档 copy partitioned data. You could use copy data tool 来设置管道。您可以 select 翻滚 window 然后在文件路径中输入 {year}/{month}/{day}/fileName 并选择正确的模式。它将帮助您构建参数。
- 如果你的 blob 名称没有用时间戳命名,你可以使用 get metadata activity to check the last modified time. Please reference this post.
事件触发器只是控制管道何时应该 运行 的一种方法。您也可以在您的场景中使用 tumbling window trigger or schedule trigger。
我制作了一个管道,用于将数据从一个 blob 存储复制到另一个。如果可能的话,我想要增量复制,但还没有找到指定它的方法。原因是我想 运行 按计划执行此操作并且只复制自上次 运行.
以来的所有新数据我假设 'incremental' 是指将新的 blob 添加到容器中。没有简单的方法可以将更改复制到特定的 blob。
因此,当 运行 在调度中时,这不可能自动实现,因为 'new' 不是调度程序可以知道的。
相反,您可以使用 Blob 创建的事件触发器,然后将结果(Blob 名称)缓存在其他地方。然后,当您的计划运行时,它可以读取这些名称并仅复制那些 blob。
您有很多缓存选项。一个 SQL Table,另一个 blob.
注意:这里的复杂之处在于试图按计划执行此操作。如果您可以调整参数以仅复制每个新文件,那将非常非常简单,因为您只需复制创建触发器的 blob。
另一种选择是使用触发器将创建时的 blob 复制到 temporary/staging 容器,然后使用计划将这些文件移动到最终目的地。
- 如果您的 blob 名称使用时间戳命名得当,您可以按照此文档 copy partitioned data. You could use copy data tool 来设置管道。您可以 select 翻滚 window 然后在文件路径中输入 {year}/{month}/{day}/fileName 并选择正确的模式。它将帮助您构建参数。
- 如果你的 blob 名称没有用时间戳命名,你可以使用 get metadata activity to check the last modified time. Please reference this post.
事件触发器只是控制管道何时应该 运行 的一种方法。您也可以在您的场景中使用 tumbling window trigger or schedule trigger。