图数据库对比·201808

图数据库Benchmark. https://github.com/socialsensor/graphdb-benchmarks

Benchmark: PostgreSQL, MongoDB, Neo4j, OrientDB and ArangoDB. https://www.arangodb.com/2015/10/benchmark-postgresql-mongodb-arangodb/ 可以参考这篇文章看测试哪些项目。

 

 

 

Neo4j  in this article is specified to Community Neo4j.  

 

 

 

 

 

  • Disadvantages
    • Data Volumn
      • The biggest disadvantage of Neo4j is the data Volumn it can supported. For Community Neo4j doesn't support Distrbution, but Enterprise one does.To achieve High Avalable goal, users need to implement distribution by their selfs.
  • Advantages
    • Multiple Labels
      • An Entity supports multiple labels(types), which is very suitable for our geo data.
    • Visualization

 

任务困难

资料欠缺

 

JanusGraph 和 HugeGraph之间的比较


HugeGraph

  • Domestic database with chinese documents
  •  

 

JanusGraph
janusgraph-spark

      没有任何成系统的资料。
      早期Spark一共有四个模块:(1)核心(2)Sql(3)流处理Spark Stream(4)图计算模块GraphX
     I haven't found any  useful things to talk about 'Spark Janusgraph' on the top 2 pages of Google and JanusGraph official docs, except some articles about connecting the two on google.
   Though throuh my using experience on GraphX,   we can infer that  Spark can load data from JanusGraph as a Graph[Vertex,Edge] object which is a datastruct provided by GraphX.  It is also the way HugeGraph used to deal with the data of JanusGraph. Then a graph object can be parsed into VertexRDD and EdgeRDD,  Spark Sql and Spark Stream can deal with RDD. 

 

gremlin> graph = GraphFactory.open('conf/hadoop-graph/read-cassandra.properties')
gremlin> g = graph.traversal().withComputer(SparkGraphComputer)
gremlin> g.V().count()

从stackoverflow上的代码来看, 是把spark作为一个 计算器 配置到JanusGraph里, 是JanusGraph有选择的依赖Spark的关系。  

 

 

 

Comparison
Name Trinity(Graph Engine) Neo4j Community OrientDB JanusGraph HugeGraph
Documention very few abundant abundant few  
Distribution Support yes no   yes yes
Visualization Tool no yes yes no yes
Popularity Ranking 16 1 4 11  
Server operating systems Linux
Windows
Linux
OS X
Solaris
Windows
All OS with a Java JDK (>= JDK 6) Linux
OS X
Unix
Windows
 
Data scheme yes schema-free and schema-optional schema-free  yes  
APIs and other access methods RESTful, HTTP API
 
Java API,
RESTful HTTP/JSON API,
Tinkerpop technology stack with Blueprints, Gremlin, Pipes
Java API,
TinkerPop Blueprints,
TinkerPop Frames,
TinkerPop Gremlin
 
Supported programming languages C#
C++
  All common languages Clojure
Java
Python
 
Replication methods     Master-master replication yes  
Concurrency  yes   yes yes  
           

 

Trinity中的边作为Node的属性存在,本身不能具有属性;JanusGraph和Neo4j的边本身是一个对象,可以具有属性。

 

Reference

https://db-engines.com

System Properties Comparison Graph Engine vs. JanusGraph vs. Spark SQL

 

 

 

  Supporting Distributed  Need to pay for Distribution  
       
       
       
       
       
       
       

 

 

Name JanusGraph infosuccessor of Titan  Xexclude from comparison Neo4j  Xexclude from comparison  
Description A Graph DBMS optimized for distributed clusters infoIt was forked from the latest code base of Titan in January 2017 Open source graph database  
Primary database model Graph DBMS Graph DBMS  
DB-Engines Ranking infomeasures the popularity of database management systems ranking trend
Trend Chart
Score 0.54
Rank #163   Overall
  #11   Graph DBMS
Score 40.92
Rank #22   Overall
  #1   Graph DBMS
 
Website janusgraph.org neo4j.com www.sequoiadb.com
Technical documentation docs.janusgraph.org/­latest neo4j.com/­docs www.sequoiadb.com/­en/­index.php?m=Files&a=index
Developer Linux Foundation; originally developed as Titan by Aurelius Neo4j, Inc. Sequoiadb Ltd.
Initial release 2017 2007 2013
Current release   3.3.5, April 2018  
License infoCommercial or Open Source Open Source infoApache 2.0 Open Source infoGPL version3, commercial licenses available Open Source infoServer: AGPL; Client: Apache V2
Cloud-based infoOnly available as a cloud service no no no
Implementation language Java Java, Scala C++
Server operating systems Linux
OS X
Unix
Windows
Linux infoCan also be used server-less as embedded Java database.
OS X
Solaris
Windows
Linux
Data scheme yes schema-free and schema-optional schema-free
Typing infopredefined data types such as float or date yes yes yes infooid, date, timestamp, binary, regex
XML support infoSome form of processing data in XML format, e.g. support for XML data structures, and/or support for XPath, XQuery or XSLT. no   no
Secondary indexes yes yes infopluggable indexing subsystem, by default Apache Lucene yes
SQL infoSupport of SQL no no SQL-like query language
APIs and other access methods Java API
TinkerPop Blueprints
TinkerPop Frames
TinkerPop Gremlin
TinkerPop Rexster
Cypher query language
Java API
Neo4j-OGM infoObject Graph Mapper
RESTful HTTP API
Spring Data Neo4j
TinkerPop 3
proprietary protocol using JSON
Supported programming languages Clojure
Java
Python
.Net
Clojure
Elixir
Go
Groovy
Haskell
Java
JavaScript
Perl
PHP
Python
Ruby
Scala
.Net
C++
Java
PHP
Python
Server-side scripts infoStored procedures yes yes infoUser defined Procedures and Functions JavaScript
Triggers yes yes infovia event handler no
Partitioning methods infoMethods for storing different data on different nodes yes infodepending on the used storage backend (e.g. Cassandra, HBase, BerkeleyDB) none Sharding
Replication methods infoMethods for redundantly storing data on multiple nodes yes Causal Clustering using Raft protocol infoavailable in in Enterprise Version only Master-slave replication
MapReduce infoOffers an API for user-defined Map/Reduce methods yes infovia Faunus, a graph analytics engine no no
Consistency concepts infoMethods to ensure consistency in a distributed system Eventual Consistency
Immediate Consistency
Causal and Eventual Consistency configurable in Causal Cluster setup
Immediate Consistency in stand-alone mode
Eventual Consistency
Foreign keys infoReferential integrity yes infoRelationships in graphs yes infoRelationships in graphs no
Transaction concepts infoSupport to ensure data integrity after non-atomic manipulations of data ACID ACID Document is locked during a transaction
Concurrency infoSupport for concurrent manipulation of data yes yes yes
Durability infoSupport for making data persistent yes infoSupports various storage backends: Cassandra, HBase, Berkeley DB, Akiban, Hazelcast yes yes
In-memory capabilities infoIs there an option to define some or all structures to be held in-memory only.     no
User concepts infoAccess control User authentification and security via Rexster Graph Server Users, roles and permissions. Pluggable authentication with supported standards (LDAP, Active Directory, Kerberos)

 

 

https://www.sohu.com/a/199849366_505818

 

你可能感兴趣的:(图数据库)