图数据库与带有链接/桥表的 RDB

问题描述

我在欺诈/AML(反洗钱)领域工作,我们正在探索使用图形数据库来挖掘隐藏的连接和链接。我最近阅读了相当多的图形数据库(主要是 neo4j,但我认为不同产品的概念相似?),据我所知,它们似乎非常适合这个领域。问题是我很难从技术管理层那里获得支持,因为他们似乎认为我们可以用我们现有的数据报告模型做同样的事情,它在 Hadoop 中,本质上是一个数据仓库有在核心表之间提供多对多链接表的特定表(我相信 Kimball 称它们为“桥接”表?)。

在某种程度上,它们似乎提供与图形数据库中的关系表相同的功能。鉴于我们已经在 Hadoop 中构建了链接表,图形数据库是否会为我们可能想做的事情提供任何性能优势(例如客户 A 如何连接到客户 B),或者我们是否在很大程度上否定了任何性能优势?通过构建所有链接表来构建图形数据库

解决方法

在类似的硬件平台上,在执行“路径之间”查询时,关系数据库永远无法跟上构建良好的图形数据库。从不。

每个图形数据库产品都有自己的内部存储表示,但它们的基本设计都是为了存储节点和边,并支持跨这些节点和边的导航查询。如果不添加新的图形支持功能,关系数据库将难以提供类似图形的功能。

使用原生图形数据库的另一个优点是图形查询语言专门设计用于支持查询之间的路径。在Objectivity/DB,一个大规模可扩展和可分布的对象/图形数据库中,我们可以使用DO查询语言找到两个实体之间的所有路径,以毫秒或秒为单位相隔指定的度数。 DO 查询可能如下所示:

Match p = (:Account { accountId = "1234"})
          -[*..100]->
          (:Account { accountId = "5678"})
          return p;

这里,我们要说的是:查找从帐户 1234 到帐户 5678 的所有路径 (p),其中它们相距 1 到 100 度。

在关系数据库中创建和执行相同的查询会复杂得多(不向数据库添加图形特征)并且在关系数据库中执行这样的查询会占用更多资源(内存,cpu,I/O).

如果您有机会为您的项目探索图形数据库,请确保您了解您的可扩展性和数据分布要求。这些信息是选择正确产品的关键。

免责声明:我是客观性现场运营总监。