hugegraph 是一款易用、高效、通用的开源图数据库系统(graph database), 实现了 apache tinkerpop3 框架及完全兼容 gremlin 查询语言, 具备完善的工具链组件,助力用户轻松构建基于图数据库之上的应用和产品。hugegraph 支持百亿以上的顶点和边快速导入,并提供毫秒级的关联关系查询能力(oltp), 并可与 hadoop、spark 等大数据平台集成以进行离线分析(olap)。
hugegraph 典型应用场景包括深度关系探索、关联分析、路径搜索、特征抽取、数据聚类、社区检测、 知识图谱等,适用业务领域有如网络安全、电信诈骗、金融风控、广告推荐、社交网络和智能机器人等。
本系统的主要应用场景是解决百度安全事业部所面对的反欺诈、威胁情报、黑产打击等业务的图数据存储和建模分析需求,在此基础上逐步扩展及支持了更多的通用图应用。
主要特性
hugegraph 支持在线及离线环境下的图操作,支持批量导入数据,支持高效的复杂关联关系分析,并且能够与大数据平台无缝集成。 hugegraph 支持多用户并行操作,用户可输入 gremlin 查询语句,并及时得到图查询结果,也可在用户程序中调用 hugegraph api 进行图分析或查询。
本系统具备如下特点:
- 易用:hugegraph 支持 gremlin 图查询语言与 restful api,同时提供图检索常用接口,具备功能齐全的周边工具,轻松实现基于图的各种查询分析运算。
高效:hugegraph 在图存储和图计算方面做了深度优化,提供多种批量导入工具,轻松完成百亿级数据快速导入,通过优化过的查询达到图检索的毫秒级响应。支持数千用户并发的在线实时操作。 - 通用:hugegraph 支持 apache gremlin 标准图查询语言和 property graph 标准图建模方法,支持基于图的 oltp 和 olap 方案。集成 apache hadoop 及 apache spark 大数据平台。
- 可扩展:支持分布式存储、数据多副本及横向扩容,内置多种后端存储引擎,也可插件式轻松扩展后端存储引擎。
- 开放:hugegraph 代码开源(apache 2 license),客户可自主修改定制,选择性回馈开源社区。
本系统的功能包括但不限于:
- 支持从多数据源批量导入数据(包括本地文件、hdfs 文件、mysql 数据库等数据源),支持多种文件格式导入(包括 txt、csv、json 等格式)
- 具备可视化操作界面,可用于操作、分析及展示图,降低用户使用门槛
- 优化的图接口:最短路径(shortest path)、k 步连通子图(k-neighbor)、k步到达邻接点(k-out)、个性化推荐算法 personalrank 等
- 基于 apache tinkerpop3 框架实现,支持 gremlin 图查询语言
- 支持属性图,顶点和边均可添加属性,支持丰富的属性类型
- 具备独立的 schema 元数据信息,拥有强大的图建模能力,方便第三方系统集成
- 支持多顶点 id 策略:支持主键 id、支持自动生成 id、支持用户自定义字符串 id、支持用户自定义数字 id
- 可以对边和顶点的属性建立索引,支持精确查询、范围查询、全文检索
- 存储系统采用插件方式,支持 rocksdb、cassandra、scylladb、hbase、mysql、postgresql、palo 以及 inmemory 等
- 与 hadoop、spark graphx 等大数据系统集成,支持 bulk load 操作
- 支持高可用 ha、数据多副本、备份恢复、监控等
组件
- hugegraph-server: hugegraph-server 是 hugegraph 项目的核心部分,包含 core、backend、api 等子模块;
- core:图引擎实现,向下连接 backend 模块,向上支持 api 模块;
- backend:实现将图数据存储到后端,支持的后端包括:memory、cassandra、scylladb、rocksdb、hbase 及 mysql,用户根据实际情况选择一种即可;
- api:内置 rest server,向用户提供 restful api,同时完全兼容 gremlin 查询。
- hugegraph-client:hugegraph-client 提供了 restful api 的客户端,用于连接 hugegraph-server,目前仅实现 java 版,其他语言用户可自行实现;
- hugegraph-loader:hugegraph-loader 是基于 hugegraph-client 的数据导入工具,将普通文本数据转化为图形的顶点和边并插入图形数据库中;
- hugegraph-spark:hugegraph-spark 能在图上做并行计算,例如 pagerank 算法等;
- hugegraph-studio:hugegraph-studio 是 hugegraph 的 web 可视化工具,可用于执行 gremlin 语句及展示图;
- hugegraph-tools:hugegraph-tools 是 hugegraph 的部署和管理工具,包括管理图、备份/恢复、 gremlin 执行等功能。
所属公司
百度在线网络技术(北京)有限公司
相关资料
hugegraph开源地址:https://github.com/apache/incubator-hugegraph开源时间:2018年8月
评论
0
0