图数据库对比:Neo4j vs Nebula Graph vs HugeGraph
本文系腾讯云安全团队李航宇、邓昶博撰写
图数据库在挖掘黑灰团伙以及建立安全知识图谱等安全领域有着天然的优势。为了能更好的服务业务,选择一款高效并且贴合业务发展的图数据库就变得尤为关键。本文挑选了几款业界较为流行的开源图数据库与 Nebula Graph 进行了多角度的对比。
图数据库介绍
Neo4j
Neo4j 是目前业界广泛使用的图数据库,包含社区版本和商用版本,本文中使用社区版本。
HugeGraph
HugeGraph 是百度基于 JanusGraph 改进而来的分布式图数据库,主要应用场景是解决百度安全事业部所面对的反欺诈、威胁情报、黑产打击等业务的图数据存储和图建模分析需求。具有良好的读写性能。
Nebula Graph
Nebula Graph 是一款开源的分布式图数据库,采用 shared-nothing 分布式架构,擅长处理千亿节点万亿条边的超大规模数据集,从而更好地服务企业级应用。
测试硬件环境
性能对比
我们使用不同量级的图从入库时间,一度好友查询,二度好友查询,共同好友查询几个方面进行了对比,结果如下:
可以看到在导入性能上,数据量小的时候 Nebula Graph 的导入效率稍慢于 Neo4j,但在大数据量的时候Nebula Graph 的导入明显优于其他两款图数据库;在 3 种查询场景下, Nebula Graph 的效率都明显高于 Neo4j,与 HugeGraph 相比也有一定的优势。
查询语言对比
从查询语句的角度出发,Gremlin 比较复杂,nGQL 和 Cypher 比较简练,从可读性角度出发,nGQL 比较类 SQL 化,比较符合大家的使用习惯。
可视化对比
在可视化方面,所有的平台都还只处于可用状态,Nebula Graph 的选择性扩展在团伙挖掘中是一个加分项,但是在二度结果展示流畅度,展示结果自定义展示方面还有优化空间。
在比较了多款业内主要使用的开源数据库后,我们从性能,学习成本和与业务的贴合程度多个角度考虑,最终选择了性能出众,上手简单,能大幅提高业务效率的 Nebula Graph 图数据库。
本文首发于 Nebula Graph 论坛,阅读本文的你有任何疑问,欢迎前往论坛和作者进行讨论,原帖传送门:https://discuss.nebula-graph.com.cn/t/topic/1013
图数据库对比:Neo4j vs Nebula Graph vs HugeGraph的更多相关文章
- Neo4j 导入 Nebula Graph 的实践总结
摘要: 主要介绍如何通过官方 ETL 工具 Exchange 将业务线上数据从 Neo4j 直接导入到 Nebula Graph 以及在导入过程中遇到的问题和优化方法. 本文首发于 Nebula 论坛 ...
- 第十一章 Net 5.0 快速开发框架 YC.Boilerplate --图数据库模块Neo4j
在线文档:http://doc.yc-l.com/#/README 在线演示地址:http://yc.yc-l.com/#/login 源码github:https://github.com/linb ...
- (五)图数据库数neo4j据备份与恢复
1.备份方式 neo4j目前有三种备份方式: (1)java在线备份,通过java程序可在neo4j启动状态下备份数据,也可远程备份(社区版本目前不支持) (2)neo4j-admin工具,可在neo ...
- NoSQL四种——kv存储(memcache,Riak),列存储(Cassandra,Hbase),文档类(mongoDB,CouchDB),图数据库(neo4j)
见:https://software.intel.com/sites/default/files/Configuration_and_Deployment_Guide_for_Cassandra_on ...
- 【图数据库】Neo4j初次部署踩坑
1.从http://we-yun.com/index.php/blog/versions-56.html或者https://neo4j.com/下载neo4j安装包 2.配置NEO4J_HOME变量, ...
- COSCon'19 | 如何设计新一代的图数据库 Nebula
11 月 2 号 - 11 月 3 号,以"大爱无疆,开源无界"为主题的 2019 中国开源年会(COSCon'19)正式启动,大会以开源治理.国际接轨.社区发展和开源项目为切入点 ...
- 图数据库 Nebula Graph 在 Boss 直聘的应用
本文首发于 Nebula Graph 官方博客:https://nebula-graph.com.cn/posts/nebula-graph-risk-control-boss-zhipin/ 摘要: ...
- 图数据库 Nebula Graph 的数据模型和系统架构设计
Nebula Graph:一个开源的分布式图数据库.作为唯一能够存储万亿个带属性的节点和边的在线图数据库,Nebula Graph 不仅能够在高并发场景下满足毫秒级的低时延查询要求,而且能够提供极高的 ...
- 图数据库HugeGraph源码解读 (1) —— 入门介绍
HugeGraph介绍 以下引自官方文档: HugeGraph是一款易用.高效.通用的开源图数据库系统(Graph Database,GitHub项目地址), 实现了Apache TinkerPop3 ...
随机推荐
- react - 多层级嵌套路由支持
routerCofing配置 { path: '/route1/someModel', children: [ { path: '/route2', component: RouteBase.Cps1 ...
- OpenVINO学习系列1
OpenVINO介绍 OpenVINO是英特尔推出一套基于深度学习的计算机视觉加速优化框架,支持其它机器学习平台模型的压缩优化.加速计算等功能. 自发布以后就得到开发者的青睐,其强大的模型优化与压缩能 ...
- 【每日一个小技巧】Python | input的提示信息换行输出,提示信息用变量表示
[每日一个小技巧]Python | input的提示信息换行输出,提示信息用变量表示 在书写代码的途中,经常会实现这样功能: 请输入下列选项前的序号: 1.选择1 2.选择2 3.选择3 在pytho ...
- python3.1for循环及应用
#给定范围,进行循环for i in range (0,5): print(i) #对序列进行遍历list1=[1,2,3,4,5]for i in list1: print(i+1) #对元组进行遍 ...
- python2.2 elif多条件判断
#案例:存款大于100万,买宝马:大于50万买丰田:大于20万买二手车:小于20万自行车! cunkuan=60#elif多条件判断,else:不满足elif执行其他命令if cunkuan>1 ...
- OS实现流程草稿
实现一个OS需要现在网上搜索 不要在Windows环境下写 nasm等汇编编译器的语法 bois中断函数使用 内存分布 描述符 实模式与保护模式 从实模式到保护模式比较难,可以从网上找一些代码能运行自 ...
- 基于Socket访问西门子PLC系列教程(二)
本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...
- JVM系列之:再谈java中的safepoint
目录 safepoint是什么 safepoint的例子 线程什么时候会进入safepoint safepoint是怎么工作的 总结 safepoint是什么 java程序里面有很多很多的java线程 ...
- 内存总是不够?HBase&GeoMesa配置优化了解一下
概况: 生产环境HBase集群内存经常处于高位(90%),而且GC之后也是内存依然处于高位,经分析内存全部由集群的regionserver进程所持有,,经常重启之后,大概3-4天就会保持在高位.由上述 ...
- java 多态一
一 多态的概述 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学 生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个事物的多种形态.如Studen ...