一、HugeGraph简介
最近在搞好友推荐方便的工作,选择了图数据的方法,使用并学习了HugeGraph,再次记录一下。
HugeGraph是百度在2018年中旬开源的一款图数据库(Graph Database)系统,可以存储海量的顶点(Vertex)和边(Edge)。实现了Apache ThinkerPop 31框架,支持Gremlin图查询语言2。HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并及时得到图查询结果。也可以再用户程序中调用hugeGraph API进行图分析或查询。
二、HugeGraph特性
HugeGraph支持在线及离线环境下的图操作,支持批量导入数据,支持高效的负责关联关系分析,并且能够与大数据平台无缝集成。
HugeGraph具备如下特点:
- 基于ThinkerPop 3框架实现,支持Gremlin查询语言;
- 支持从TXT、CSV、JSON等格式的文件中批量导入数据;
- 具备独立的Schema元数据信息,方便第三方系统集成;
- 具备可视化操作界面,降低用户使用门槛;
- 存储系统采用插件方式,支持RocksDB、Cassandra、ScyllaDB、HBase及Mysql等多种后端;
- 优化的图接口,最短路径、K步连通子图、K步到达邻接点等;
- 支持属性图,顶点和边均可添加属性,支持丰富的属性类型;
- 可以对边和顶点的属性建立索引,支持精确查询、范围查询、全文检索;
- 支持4种顶点ID策略,之间ID、自动生成ID、用户自定义字符串ID和用户自定义数据ID;
- 支持与Hadoop、Spark GraphX等大数据系统集成,支持Bulk Load操作。
三、HugeGraph框架模块
- HugeGraph-Server: HugeGraph-Server是HugeGraph项目的核心部分,包含Core、Backend、API等子模块;
- Core:图引擎实现,向下连接Backend模块,向上支持API模块;
- Backend:实现将图数据存储到后端,支持的后端包括:Memory、Cassandra、ScyllaDB、RocksDB、HBase以及Mysql