首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于数据整合的设计模式/名称

用于数据整合的设计模式/名称
EN

Software Engineering用户
提问于 2018-05-29 12:46:38
回答 2查看 235关注 0票数 1

我对编码很陌生,我不知道我想做什么叫做什么,我想找出答案,这样我就可以做更多的研究,而不是重新发明轮子。我寻找诸如data consolidation/combine input之类的东西,但是结果要么太模糊,要么我添加了一种语言的名称,我得到了不相关的库(例如javascript:)。

我想要做的是整合来自不同来源的数据:

  • 我有不同的数据来源(比如说组织)

  • 我正在努力整合这些资源,这样我就可以对每件事都有一个独特的表示

  • 源可能对每件事情都有不同的值(例如sourceA可能有组织名称为“MyFunny App”,而sourceB可能有"MyFunny")。

  • 因此,我需要一些逻辑来合并数据(即保留哪个源?)

我并不是要求合并规则,因为我知道这确实是特定于用例的,其中的一部分可以通过normalization (规范化的值更有可能匹配,冲突更少)来完成,但是我认为任何做这种工作的人都必须执行一些常见的任务(

)。

赋值:

-增加缺失的值

-对于相互冲突的/现有的价值,请尝试解决

-根据为每个值定义分数的一些标准进行解析

-选择得分最高的值

调试:

-跟踪所有数值(原始/标准化)及其来源/分数

-有日志显示每件东西在通过每个源时是如何被修改的

做了我想做的事情--有一个特定的名字?他们是否有任何设计模式来更有效地做到这一点?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2018-05-29 14:06:39

该问题中描述的数据合并可以使用语义web/链接数据和相关的RDF存储技术进行大规模的处理。

其主要思想是将包含所有源元数据的原始数据添加到RDF图(或多个图) "数据湖“中。在此之后,可以使用规则引擎和/或推理引擎将所提取的(“输出”)数据具体化到相同的图中,为数据源和所需的输出数据提供本体(在任何情况下,如果源不同,就需要这种或另一种形式的输出数据)。或者,也可以通过查询(取决于更具体的情况)从原始数据动态计算。

所有上述情况(丢失值、冲突值、跟踪所有值等)都通过这种方式进行ETL (提取、传输、加载)。

语义技术的一个优点是使用开放世界假设和“任何人都可以谈论任何事情”(AAA原则)。这意味着,技术可以非常灵活地利用来源信息或问题中提到的一些分数和规则来解决冲突。

一些简短的解释可以找到,例如在这些幻灯片,大卫布斯博士。

另外一个术语(除了数据整合和ETL)就是企业信息集成():它面临类似的挑战。

这个问题没有具体说明“有效”意味着什么。无论是进程的速度还是调整数据源的效率。语义技术可以更好地对齐,尽管现代的RDF存储和图形数据库是相当有效和有能力的。

请注意,这只是一种可能的技术。技术的选择可能会受到许多细微差别的影响,而开发团队更熟悉的并不是最后的差别。

票数 1
EN

Software Engineering用户

发布于 2018-05-29 15:39:04

据我所知,您需要一个级别的抽象化抽象化

这种抽象是每个事物的唯一表示。

然后,对于每个源,您将需要这个抽象的具体化。

这样,您将能够在相同的行为下重新组合不同的数据,并以相同的方式对待它们。

如果你需要一个更具体的答案,请为你的问题提供更多的背景。

票数 -1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/371731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档