代码之家  ›  专栏  ›  技术社区  ›  jbx

如何使用Azure Datafactory v2填充星型架构

  •  2
  • jbx  · 技术社区  · 6 年前

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

    然后我有另一个feed,它与事实表相当。其中有许多标识符对应于维度表的业务键。

    Bulk Copy API to copy the data in append mode .

    因此,我的问题是:

    1. 同步维度表的最佳方法是什么。我不想删除现有数据并重新填充它,因为它会破坏我的surragate键,它将被我的事实表引用。我想用一个

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   jbx    6 年前

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

    要实现这一点,请创建一个暂存表(同一目标服务器上的相同或不同数据库),该表的结构仅与源表+PK相同。

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

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

    • 将数据放入暂存表(大容量)时的最佳性能
    • 向上插入(更新/插入)目标表的最快方法
    • 能够实现复杂的业务逻辑
    • 必要时使用SCD(缓慢改变尺寸)

    以下文章可以帮助您理解该过程并构建整个合并语句:[ https://sqlplayer.net/category/bi/data-warehousing/ ]

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