【问题标题】:How can I copy dynamic data from on prem sqlserver to azure datawarehouse如何将动态数据从 prem sql server 复制到 azure 数据仓库
【发布时间】:2018-01-17 23:29:08
【问题描述】:

我创建了一个链接服务,该服务从本地获取数据并将其存储到 azure blob,但我的数据是动态的,如何构建一个管道,将更新后的表放入 blob 并将该 blob 传输到azure 数据仓库,我需要这种方式,以便我的所有表都实时同步到 azure 数据仓库中。

【问题讨论】:

  • 对此有任何答案吗??

标签: azure azure-data-factory azure-sqldw


【解决方案1】:

您可能正在寻找的是将数据增量加载到您的数据仓库中。

下面描述的过程是documented here。它假定您将整个源表定期快照到 blobstorage 中。

  1. 您需要选择一列来跟踪表中的更改。
    • 如果您只是追加而不更改现有行,则主键将完成这项工作。
    • 但是,如果您必须处理现有行中的更改,则需要一种方法来跟踪这些更改(例如,使用名为“timestamp-of-last-update”的列 - 或任何更好、更简洁的名称) .
      • 注意:如果您没有这样的列,您将无法跟踪更改,因此无法增量加载数据。
  2. 对于给定的快照,我们对源表中添加或更新的行感兴趣。此内容称为与快照关联的 delta。一旦计算出增量,就可以使用调用存储过程的复制活动将其插入到您的表中。 Here您可以找到有关如何完成此操作的详细信息。
  3. 假设选定列的值只会随着源表中行的添加/更新而增长,因此有必要通过快照跟踪其最大值。此跟踪值称为水印This page 描述了一种将水印持久保存到 SQL Server 中的方法。
  4. 最后,您需要能够根据存储的最后一个水印计算给定快照的增量。 The basic idea is to select the rows where the elected column is greater than the stored watermark.您可以使用 SQL Server(如参考文档中所述)执行此操作,也可以使用 HDInsight 上的 Hive 执行此过滤。
  5. 一旦将增量插入数据仓库,请不要忘记使用所选列的最大值更新水印。

【讨论】:

  • 我想使用 ADF V1 执行此操作,您给出的步骤已详细说明,但不能解决我的目的,另外假设我使用 ADF V2 如何使用增量复制将 1k+ 表复制到 ADW因为它为每个表构建过程
  • 目前我正在查看的是 ADF V1 复制预览技术,它有一个清理脚本,我可以在其中指定我的日期时间值 A/Q,数据将被清理并将新值插入其中它,每一次。因此,我将在这里构建 2 条管道,其中 1 条将运行一次并复制每个数据,第二条将在第 1 条之后运行,它将每天 A/Q 的数据删除到日期时间列并每天重新插入当天的这些值。还有比 ADF V1 的 A/Q 更好的方法吗?
  • 对不起,我不习惯 ADF V1,所以我的知识在这里没有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2019-02-14
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多