【问题标题】:Azure DataFactory Incremental BLOB copyAzure 数据工厂增量 BLOB 副本
【发布时间】:2018-08-20 18:49:14
【问题描述】:

我创建了一个管道,可以将数据从一个 blob 存储复制到另一个。如果可能的话,我想拥有增量副本,但还没有找到指定它的方法。原因是我想按计划运行它,并且只复制自上次运行以来的任何新数据。

【问题讨论】:

    标签: azure azure-data-factory azure-data-factory-2


    【解决方案1】:
    1. 如果您的 blob 名称带有时间戳,您可以按照此文档访问 copy partitioned data. 您可以使用 copy data tool 来设置管道。您可以选择翻滚窗口,然后在文件路径字段中输入 {year}/{month}/{day}/fileName 并选择正确的模式。它将帮助您构建参数。
    2. 如果您的 blob 名称没有用时间戳很好地命名,您可以使用 get metadata activity 检查上次修改时间。请参考this post

    事件触发器只是控制管道何时运行的一种方式。您也可以在场景中使用tumbling window triggerschedule trigger

    【讨论】:

      【解决方案2】:

      我假设“增量”是指添加到容器中的新 blob。没有简单的方法可以将更改复制到特定的 blob。

      因此,当按计划运行时,这是不可能自动实现的,因为“新”不是计划程序可以知道的。

      相反,您可以使用 Blob 创建的事件触发器,然后将结果(Blob 名称)缓存到其他地方。然后,当您的计划运行时,它可以读取这些名称并仅复制这些 blob。

      您有很多缓存选项。一个 SQL 表,另一个 blob。

      注意:这里的复杂之处在于尝试按计划执行此操作。如果您可以将参数调整为仅复制每个新文件,那将非常非常简单,因为您只需复制创建触发器的 blob。

      另一种选择是在创建时使用触发器将 blob 复制到临时/暂存容器,然后使用计划将这些文件移动到最终目的地。

      【讨论】:

      • 好的,是的,我的意思是向容器中添加了新的 blob。我想也许时间戳可能有用。当然需要将它保存在某个地方,然后由管道使用
      • @RasmusChristensen 您可以使用时间戳,但是您必须扫描每个条目以与您还必须存储的上次运行时间进行比较。
      猜你喜欢
      • 2019-01-23
      • 2018-02-28
      • 2020-07-06
      • 2016-10-02
      • 2023-01-31
      • 2021-12-21
      • 2016-05-07
      • 2020-12-22
      • 1970-01-01
      相关资源
      最近更新 更多