如何使用Azure Datafactory v2



我有一些源提要,我想使用Azure data Factory v2将数据提取到传统的星型架构数据库(Azure SQL数据库)中,用于OLAP目的。

大多数源提要都对应于一个维度,因此它们映射到我的数据仓库数据库中的模式,而不是内部代理键。

然后我有另一个提要,它与事实表非常对应。那里的许多标识符对应于维度表的业务键。

复制活动的Azure Data Factory v2文档建议尽可能使用(默认)批量复制API以附加模式复制数据

所以我的问题是:

  1. 同步维度表的最佳方法是什么。我不想删除我现有的数据并重新填充它,因为这会破坏我的代理密钥,而我的事实表会引用这些密钥。我想使用upstart存储过程,它检查行是否已经存在,并进行更新而不是插入。这会很慢吗?有没有更好的方法(也许在某种程度上使用preCopy脚本?)。

  2. 在填充事实表时,我希望查找维度的所有相应ID(替代键),并在插入数据之前将所有业务键转换为这些ID。实现这一目标的建议方法是什么?同样,存储过程也可以,但我担心它很慢。有更好的方法吗?

我(和我的一些朋友)知道的最好的方法是合并数据。

要实现这一点,请创建一个临时表(同一目标服务器上的相同或不同数据库),该表仅具有与源表相同的结构+PK。因此,ADF中的过程应分为两个步骤:

  1. 截断目标(暂存)表
  2. 将源中的所有数据插入暂存
  3. 运行包含MERGE语句和其中所有必需逻辑的存储过程

有了这种方法,你会保持:

  • 将数据放入暂存表(大容量)时的最佳性能
  • 更新(更新/插入)目标表的最快方法
  • 实现复杂业务逻辑的能力
  • 需要时应用SCD(渐变尺寸)
  • 减少磁盘操作量

以下帖子可以帮助您理解流程并构建整个MERGE语句:[https://sqlplayer.net/category/bi/data-warehousing/]

这是一个非常常见的场景,所以你给了我一个新博客的想法。Thx。

我希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新