图数据库概述

简介

在数据结构中, 图是顶点(Vertex)与边(Edge)的集合. 顶点与边可以有各自的属性.
在互联网的个性化推荐、知识图谱、社交网络等场景下, 用图来存储数据是直观而高效的.
图的规模可以很大, 百亿个节点, 千亿个关系.
为了存储与查询这些关系, 图数据库(Graph Database)就诞生了.
Graph Database at wiki-pedia

举个例子看一下. 图1-1是电商网站的场景.

图数据库概述_第1张图片
图1-1 好友关系&购买图

说明:
Ui:user i U i : u s e r   i
Ii:item i I i : i t e m   i
矩形是节点的属性
弧代表了不同的关系, 如人与人之间, 人与商品之间.

查询语法

  • gremlin
    见参考[5].

业界数据库

  • neo4j
    见参考[1]
  • OrientDB
    见参考[3]
  • titanDB
    他们的对比见参考[4], [6].

阿里巴巴 iGraph

阿里巴巴搜索BU出品的, 集团自用的在线图存储系统,可以通过全量、增量等形式将数据导入在线系统,提供低rt的延时.

  • 建图
    每种结点一张表, 每种关系一张表.
  • 查询
    不支持 gremlin 语法. 一种类似于多个sql拼接那样的不优雅语法.

参考

  1. neo4j 官网地址
  2. Query Language 语法
  3. Orient DB官网
  4. 简书, 主流图数据库Neo4J、ArangoDB、OrientDB综合对比:架构分析
  5. github wiki, Gremlin 查询语法
  6. Comparison Neo4j vs. OrientDB vs. Titan

你可能感兴趣的:(数据库,搜索引擎)