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