gpt4 book ai didi

azure-sql-database - 如何使用 Azure Datafactory v2 填充星型模式

转载 作者:行者123 更新时间:2023-12-04 17:41:01 25 4
gpt4 key购买 nike

我有一些源提要,我想使用 Azure 数据工厂 v2 将数据提取到传统星型模式数据库(Azure SQL 数据库)中以用于 OLAP 目的。

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

然后我有另一个与事实表非常对应的提要。里面有很多标识对应维度表的业务键。

复制事件的 Azure 数据工厂 v2 文档建议尽可能使用(默认) Bulk Copy API to copy the data in append mode .

所以我的问题是:

  1. 同步维度表的最佳方法是什么。我不想删除我现有的数据并重新填充它,因为它会破坏我的代理键,它将由我的事实表引用。我正在考虑使用 upsert 存储过程,它检查该行是否已经存在,并执行更新而不是插入。这是不是会很慢?对此是否有更好的方法(也许以某种方式使用 preCopy 脚本?)。

  2. 填充事实表时,我想查找维度的所有相应 ID(代理键),并在插入数据之前将所有业务键转换为这些 ID。实现这一目标的推荐方法是什么?同样,存储过程可能会做,但恐怕它很慢。对此有更好的方法吗?

最佳答案

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

要实现这一点 - 创建一个暂存表(同一目标服务器上的相同或不同数据库),其结构与源表 + 仅 PK 相同。因此,ADF 中的过程应分为 2 个步骤:

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

采用这种方法,您将保持:

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

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

这是一个很常见的场景,所以你给了我一个新博文的想法。谢谢。

希望对你有帮助。

关于azure-sql-database - 如何使用 Azure Datafactory v2 填充星型模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54509101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com