我有一些源提要,我想使用Azure Data Factory v2将数据提取到用于OLAP的传统星型模式数据库(Azure SQL数据库)中。
大多数源Feed都对应一个维度,因此除了内部代理键之外,它们都映射到我的数据仓库数据库中的架构。
然后我有另一个供稿,该供稿与事实表非常相似。那里的许多标识符与维表的业务键相对应。
用于复制活动的Azure Data Factory v2文档建议尽可能使用(默认) Bulk Copy API to copy the data in append mode 。
所以我的问题是:
同步维度表的最佳方法是什么?我不想删除我现有的数据并重新填充它,因为它将破坏我的代理密钥,这些密钥将由我的事实表引用。我当时正在考虑使用 upsert 存储过程,该过程检查行是否已存在,并执行更新操作而不是插入操作。这会很慢吗?有没有更好的方法(也许以某种方式使用preCopy脚本?)。
在填充事实表时,我想查找维度的所有相应ID(代理键),然后在插入数据之前将所有业务键转换为这些ID。建议采用什么方法来实现这一目标?再一次,存储过程可能会做,但恐怕它很慢。有更好的方法吗?
答案 0 :(得分:0)
我(和我的一些朋友)知道的最好方法是合并数据。
要实现此目的-创建一个临时表(同一目标服务器上的相同或不同数据库),该临时表具有与源表+ PK相同的结构。 因此,ADF中的过程应分为两个步骤:
采用这种方法,您将继续:
以下帖子可以帮助您了解流程并构建整个MERGE语句:[https://sqlplayer.net/category/bi/data-warehousing/]
这是一个很常见的情况,所以您给了我一个新博客文章的想法。谢谢。
希望对您有所帮助。