图数据库基础简介 -KDnuggets


图graph数据库因其在处理来自各种来源的大量非结构化数据中的应用而广受赞赏。让我们谈谈图数据库如何工作以及它们的实际用途是什么。
图数据库是一种不可思议的工具,可用于快速解析人类可以轻松使用的信息。通过以一种允许我们轻松地在图上表示信息的方式存储数据,我们可以更快地了解数据并获得原本可能没有的见解。它还可以很好地用作高性能线程数据结构(如Twitter)的数据库。
 
图数据库如何工作?
具有讽刺意味的是,作为非关系数据库,图主要用于多关系数据“路径”的概念。

主要由两个部分组成:

  • 节点:这是实际的数据本身。它可以是youtube视频的观看者人数,阅读过推文的人数,甚至可以是诸如人们的姓名,地址等基本信息。
  • 边缘:这说明了两个节点之间的实际关系。有趣的是,边缘还可以拥有自己的信息,例如两个节点之间关系的性质。类似地,边缘也可能具有描述所述数据流的方向。


图数据库中使用的信息基本上可以是任何东西,并且如您从上面的结构中可以看到的那样,在基本层次上绘制和理解非常简单。
看一个更具体的示例,如您在下图中所看到的,图数据库不仅可以描述一群人之间的复杂关系,而且可以描述他们的兴趣,喜好,他们的友谊和生意。当然,这里的天空(和硬件)是极限,构建图数据库时您会变得非常复杂。

 

图数据库的示例
虽然图数据库没有像其他NoSQL数据库那么受欢迎,但是在谈论NoSQL时,有一些已经成为相当标准的:

  • Neo4j:世界上顶级的图数据库之一,它是开源的,并且有趣地基于Java构建。它也有自己的语言,称为Cypher,与声明性SQL语言类似,但适合图。除了Java,它还支持流行的语言,例如Python,.NET,JavaScript等。
  • Neo4j非常适合诸如数据中心管理和欺诈检测之类的事情。
  • RedisGraph:RedisGraph实际上是Redis内置的图模块,本身就是键值NoSQL数据库。由于Redis本身是基于内存中的数据结构构建的,因此RedisGraph可以将数据存储在Ram中。这将导致具有快速查询和索引的高性能图数据库。
  • RedisGraph还使用Cypher,如果您想以程序员或数据科学家的身份获得更大的数据库灵活性,那么该功能非常有用。主要用途是需要真正快速的性能的任何应用程序。
  • OrientDB:有趣的是,OrientDB混合了不同类型的数据模型,并支持图,文档存储,键值存储和基于对象。话虽如此,所有关系都使用图模型存储,该图模型使用数据库之间的直接连接。
    与前两个图数据库非常相似,OrientDB也是开源的,并且与Neo4j一样,它是用Java编写的(尽管不幸的是,它不使用Cypher)。OrientDB背后的想法是用于需要多个数据模型的地方,因此针对数据一致性进行了优化,并降低了数据复杂性。