所以我正在尝试实现数据保险库。 我对集线器建模有些困难。 我有两个不相互通信的系统。我想知道如何在集线器中表示来自不同来源的相同项目。
在我们的订购系统中,它会生成一个数字来区分客户。 因此,假设我们有一个名为“Bob”的客户,他需要我们在5个地点提供服务。因此,我们将这5个地点视为独立客户。因此,我们获得了5个不同的客户ID(10004-10008)。到目前为止,Data Vault中很容易出现问题。
现在棘手的部分在于我们的运营系统。我们有一个复合业务密钥。因此,我们为每个位置获得一个唯一的客户名称“bob”和序列号(1-5)。所以(bob,1)是唯一的,但我们也可以有一个(joe,1)。
在我们的运营系统中,无法输入订购系统的ID。在我们的订购系统中,(bob,1)信息直到(bob,1)已经创建之后才会被填写。
所以时间表可以是这样的 Bob进来说我需要5个位置。订购系统给他ID(10004-10008)。 一周后,他在我们的操作系统中创建(bob,1),(bob,2)......(bob,5) 那么也许2周后我们会在订购系统中看到(10004,bob,1),(10005,bob,2)。
如何处理这种情况?
由于
答案 0 :(得分:0)
Data Vault文献说,您将每个密钥存储在集线器中,并使用相同的链接进行套利。也许您可以通过自动填充链接在ETL中部分解决此问题。
是否无法将业务密钥从其位置拆分?您似乎将不同的核心业务概念连接到您可能希望拆分为DV中的多个集线器的相同密钥中。 (客户,客户所在地)
答案 1 :(得分:0)
我可能会在原始数据仓库中创建两个与源系统对齐的中心,然后在业务仓库中创建单个中心,在其中您应用必要的业务规则来构建客户的单个中心视图。这样,您可以完全保留源系统的语义,但是仍然可以通过尝试合并数据集来为业务增加价值。
如上所述,也可以使用一些相同的链接。