数据仓库是跨技术共享客户数据的良好解决方案吗?

Is a data warehouse a good solution for sharing customer data across technologies?

我希望能够以降低基础架构整体复杂性的方式在我们所有业务领域共享数据。

问题

我们的问题是我们目前有 4 个主要应用程序都连接到我们的 CRM 应用程序 (Microsoft Dynamics 2011):

我们公司的决策者目前希望将我们的 CRM 升级到最新版本,然后随着新升级的发布(每 2-3 年)保持最新。我们几乎所有的应用程序都与 Microsoft Dynamics 严格集成,因此每次升级都非常昂贵且有风险。我想设计另一种方法来降低这种费用和风险。

研究

2006 年,Roger Sessions 撰写了一篇名为通往企业架构的更好途径 (here) which outlines ways to better Business IT systems. One of the central themes in his discussion is reducing complexity, and by arranging die in different ways, he shows that you can exponentially reduce the complexity of systems by partitioning technologies into segments rather than letting any technology connect to any other technology. Jeanne Ross has a great presentation on this topic as well (here) 的文章,她谈到了拥有共享核心数据的数字化平台和业务领域之间的服务,以降低整个系统的复杂性并提高响应当前和未来业务需求的敏捷性。

结论

当我反思 Sessions 和 Ross 的经验教训时,我相信如果我们想要每 2-3 年对技术进行一次大修,就需要将 Microsoft Dynamics 从我们的架构中心中移除。我们只需要将它替换为允许我们的核心数据(主要是客户数据)在应用程序之间共享的东西。我知道数据仓库通常用于聚合整个组织的数据。这行得通吗?

我知道数据仓库主要用于报告,所以我不知道直接连接到数据仓库是否理想。但是,每个应用程序都不需要能够更新数据仓库中的任何数据。他们只需要能够获取他们的 ID,以便在每个应用程序的数据库中建立全局数据仓库实体(客户)和各种特定于单元的实体之间的关系。

问题

这三个选项中的哪一个可以满足我的需求:(1) 所有应用程序都直接连接到的数据仓库,(2) 通过通宵更新将数据提供给每个特定于应用程序的数据库的数据仓库,或 (3)还有别的吗?

谢谢

您所追求的是数据集成架构 - 这不一定意味着数据仓库。您描述的模式称为 "hub and spoke,",它非常常见 - 我想说您绝对是在解决您描述的集成问题的正确轨道上。

This page 更深入地探讨了这个问题和模式,其中还有一个部分介绍了数据仓库和数据集成之间的差异。您已经注意到,您知道数据仓库通常用于报告 - 这是真的,而且它们也大量用于分析,正如 link 所讨论的那样。它们传统上是商业智能工作的数据源。这可能意味着他们并不总是关注您感兴趣的数据类型——即您的系统需要运行但可能对报告或分析目的不感兴趣的操作数据。或者,它们可能无法以对您的需求有帮助的方式运行 - 例如,如果您需要更快地更新应用程序,传统的隔夜 ETL 加载可能不是最佳解决方案。

所有这些都是说数据仓库绝对可以用作数据中心 - EDW 成为您的 "master data" 源,需要对 EDW 数据进行任何数据质量处理 运行,以及 ETL流程将更正后的数据返回到各种来源 - 但研究数据集成主题可能比数据仓库主题更好,即使两者有很多相似之处并且可以重叠。

如果您创建的数据仓库没有任何商业智能要求,它可能无法很好地发挥数据仓库的作用。一个非常合适的数据 integration/master 数据解决方案可能无法解决您对数据仓库的所有未来需求。同样,如果您在研究数据仓库最佳实践后创建传统数据仓库,它可能无法满足您的数据集成要求,或者无法以最佳方式满足这些要求。正如 link 所建议的,将两个想法分开:解决您的数据集成问题,如果您将来想要一个数据仓库,您可以使用您的数据集成解决方案来帮助填充它。