【问题标题】:What are the ways to join foreign key for fact table in ETL package?ETL包中事实表的外键加入方式有哪些?
【发布时间】:2015-05-20 14:54:12
【问题描述】:

我是一名 SSIS 开发人员,这是我在设计包时遇到的问题。

人们使用哪些方法来获取事实表和维度表的外键?假设您的暂存数据库和数据仓库不在同一台服务器中,那么跨数据库的简单 T-SQL 连接不是一种选择。

我现在的做法是将 StagingDB 中的数据加载到数据仓库中的临时表中,然后他们在那里执行 T-SQL 连接以获取外键。

在 SSIS 包中,我们有 Lookup 组件,但如果你有超过 10 个键加入,我不认为这是一个选项

想知道我在这里有什么选择?谢谢!

【问题讨论】:

  • 我们使用您描述的暂存表。您有什么想要改进的地方吗?
  • 根据我的经验,我发现您现在的操作方式比查找组件的性能更高。话虽如此,您的问题目前措辞的方式过于宽泛,不太可能产生明确的“答案”。正如 Eric 所问,您是否正在尝试克服某个特定问题?
  • 因为我们公司正在将 SQL server 转换为 PDW(Microsoft Parallel Data Warehouse),虽然我不是该项目的开发人员,但我听说 PDW 有一些限制,例如不支持临时表

标签: sql sql-server tsql ssis


【解决方案1】:

根据我的经验,我发现使用暂存表和 SQL 来查找外键,就像您现在所做的那样,比查找组件的性能更高。

临时表不必是临时表。您可以指定一个永久表作为“暂存”表,然后使用 sql 移动到目标表。只需确保在每次 ETL 运行之前截断表即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2012-04-27
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多