|探索图数据库在数据资产可视化中的应用( 四 )


可选无模式、全模式或混合模式下 。 支持许多高级特性 , 诸如ACID事务、快速索引 , 原生和SQL查询功能
可以JSON格式导入、导出文档
若不执行昂贵的JOIN操作的话 , 如同关系数据库可在几毫秒内可检索数以百计的链接文档图
劣势:
坑很多
性能和可扩展性不好
索引:
侧重文档数据库 , 主要还是SB树索引导致 , 空间浪费比较大;插入节点与另外两个数据库(neo4j和ArangoDB)相差无几 , 但是在插入关系中另外两个数据库都做了优化 , OrientDB无优化 , 就挂了;在图论计算力上性能优异 , 但是在遍历中还是优化不够 , 被甩开 。
JanusGraph
开源 JanusGraph是一个可扩展的图数据库 , 可以把包含数千亿个顶点和边的图存储在多机集群上 。 它支持事务 , 支持数千用户实时、并发访问存储在其中的图 。
优势:
分布式部署 , 因此 , 支持集群
可以存储大图 , 比如包含数千亿Vertices和edges的图
支持数千用户实时、并发访问 。
集群节点可以线性扩展 , 以支持更大的图和更多的并发访问用户 。
数据分布式存储 , 并且每一份数据都有多个副本 , 因此 , 有更好的计算性能和容错性 。
支持在多个数据中心做高可用 , 支持热备份 。
通过集成大数据平台 , 比如Apache Spark、Apache Giraph、Apache Hadoop等 , 支持全局图数据分析、报表、ETL
集成ElasticSearch、Apache Solr、Apache Lucene等系统后 , 可以支持全文搜索
在计算层上可使用Spark做计算 , 这点优于Neo4j和OrientDB
即可OLAP也可OLTP , 可以执行批处理和实时处理
开源 , 基于Apache 2 Licence
支持各种后端存储系统 , 目前标准支持以下四种 , 当然也可以增加第三方的存储系统:

  • Apache Cassandra?
  • Apache HBase?
  • Google Cloud Bigtable
  • Oracle BerkeleyDB
劣势:
新图形数据库
可视化工具缺乏(可继承第三方工具Cytoscape、Gephi等)
2.关系型数据库和图数据库的区别
与传统关系型数据库相比 , 图数据库的优势
优秀的查询性能
相对于关系型数据库 , 图数据库产品在设计上避免大量的join操作 , 提供快速的查询 。 图数据库则天然把关联数据连接在一起 , 无需耗时耗内存的Join操作 , 可以保持常数级时间复杂度 。
灵活的数据建模和查询语言 , Schema-less
多数图数据库没有预设的schema , 借助底层的存储机制 , 能够更加灵活的变更结构
灵活的图查询语言 , 轻松实现复杂关系网络的分析
灵活的数据模型可以适应不断变化的业务需求
易于理解 , 更加敏捷
相对于关系型数据库的二维表格 , 图的组织形式更接近于现实世界 , 易于理解
可以很自然的表达现实世界中的实体及其关联关系(对应图的顶点及边)
关系型数据库在遍历关系网络并抽取信息的能力非常弱 , 图数据库则为此而生
基于图算法提供强大分析能力
PageRank/社区发现算法等
图数据库的功能是传统关系型数据库的一个拓展 , 相比较关系型数据库仅支持表结构 , 图数据支持的图结构更为灵活 。 图数据库在基于图的数据增加、删除、查询、修改等方面做了不同于其他数据库的设计 。 在图数据的操作抽象上 , 采用基于顶点的视角 , 比如顶点通过其所有处、边访问其邻接顶点 , 这一类的操作也是图数据库系统设计的核心 。
图数据库与关系型数据库优劣比对
优势
a) 用户可以面向对象的思考 , 用户使用的每个查询都有显式语义;
b) 用户可以实时更新和查询图数据库;
c) 图数据库可以灵活应对海量的关系变化 , 如增加删除关系、实体等;


推荐阅读