图数据库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 successor of Titan Xexclude from comparison |
Neo4j Xexclude from comparison |
|
Description |
A Graph DBMS optimized for distributed clusters It 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 measures the popularity of database management systems |
 |
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 Commercial or Open Source |
Open Source Apache 2.0 |
Open Source GPL version3, commercial licenses available |
Open Source Server: AGPL; Client: Apache V2 |
Cloud-based Only available as a cloud service |
no |
no |
no |
Implementation language |
Java |
Java, Scala |
C++ |
Server operating systems |
Linux OS X Unix Windows |
Linux Can 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 predefined data types such as float or date |
yes |
yes |
yes oid, date, timestamp, binary, regex |
XML support Some 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 pluggable indexing subsystem, by default Apache Lucene |
yes |
SQL Support 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 Object 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 Stored procedures |
yes |
yes User defined Procedures and Functions |
JavaScript |
Triggers |
yes |
yes via event handler |
no |
Partitioning methods Methods for storing different data on different nodes |
yes depending on the used storage backend (e.g. Cassandra, HBase, BerkeleyDB) |
none |
Sharding |
Replication methods Methods for redundantly storing data on multiple nodes |
yes |
Causal Clustering using Raft protocol available in in Enterprise Version only |
Master-slave replication |
MapReduce Offers an API for user-defined Map/Reduce methods |
yes via Faunus, a graph analytics engine |
no |
no |
Consistency concepts Methods 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 Referential integrity |
yes Relationships in graphs |
yes Relationships in graphs |
no |
Transaction concepts Support to ensure data integrity after non-atomic manipulations of data |
ACID |
ACID |
Document is locked during a transaction |
Concurrency Support for concurrent manipulation of data |
yes |
yes |
yes |
Durability Support for making data persistent |
yes Supports various storage backends: Cassandra, HBase, Berkeley DB, Akiban, Hazelcast |
yes |
yes |
In-memory capabilities Is there an option to define some or all structures to be held in-memory only. |
|
|
no |
User concepts Access 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