提问人:Lukas 提问时间:5/5/2022 更新时间:5/5/2022 访问量:65
与体系结构匹配的类似数据源
Similar data sources matching architecture
问:
问题:
我正在开发一个系统,它需要自动组合 3 个不同的数据源。
因此,假设我们有 3 种类型的对象:
对象 A(来自源 A):
int Id
string Name
int ObjectB_Id
对象 B(来自源 B):
int Id
string Name
int ObjectC_Id
对象 C(来自源 C):
int Id
string Name
这些对象中的每一个都由它们自己独特的来源提供,这些来源可能随时发送新数据。
所有这些都保存在它们自己的本地数据集(A、B 和 C)中。
目标:我需要有一个组合数据集,如下所示:
int Id
int? ObjectA_Id
int? ObjectB_Id
int? ObjectC_Id
它填充了来自所有对象的 ID。如果源 A、B 或 C 发送任何新数据,则需要使用新的或更新的匹配项自动更新此数据集。 对象可以通过通用名称字段进行匹配,或者如果对象具有外部对象 ID,也可以使用此字段(在本例中为 ObjectB_Id、ObjectC_Id)。
我的第一个想法是这样的,随之而来的是一个问题:
我的解决方案的常见情况:
- 源 C 发送一个新的对象 C。它与数据集 A 中的对象 A(按名称)匹配,但无法与任何对象 B 匹配,并且它是 放置在组合数据集中,尽管数据不完整。
- 源 B 发送新的对象 B。它与数据集 C 中的对象 C 匹配(按 ObjectC_Id),但无法与任何对象 A 匹配(假设名称略有不同)。然后,将其与组合数据集中的任何项目进行比较,并发现它可以通过公共ObjectC_Id属性与上一个条目建立连接。这 2 个条目将合并到数据集中。
此解决方案的问题:
- 来自每个 source 需要其他数据集可用于匹配 - 所以如果 源 C 发送新的更新,然后尝试与两个数据集匹配 A 和 B 要求从数据库中获取它们。(所有 这些可能包含 ~200k 记录)。这是非常缓慢的。
答: 暂无答案
评论