导读
知识图谱是近来很火的概念,很多领域都希望能用知识图谱解决一些问题。在零售领域其实也有使用知识图谱的场景,比如阿里使用知识图谱进行商品智能导购以及商品“巡检”,而我想试验着把知识图谱应用到精准营销的场景。先抛开知识图谱复杂的概念不谈,先来了解下图数据库——janusGraph。
目前比较火的图数据库一个是Neo4j,它是原生的图数据库,即查询存储都自己完成,但是社区版只支持单机;而JanusGraph是从Titan fork而来,支持多种数据存储平台,如hbase、cassandra等;多种全文检索平台,如solr或者es;多种前端展示组件;以及多种API交互模式。
由于公司有现成的大数据环境,因此还是想基于HBase或者Cassandra作为存储引擎。
1 介绍
JanusGraph由于底层可以自由选择存储引擎并搭配全文检索,因此适用于大规模图数据的存储和计算,支持基于事务的在线交互与离线分析。JG的优势:
- 支持大规模的图结构,支持分布式集群
- 支持高并发的图操作
- 支持全局图分析以及批处理
- 支持geo、范围查询、全文检索等
- 集成ThinkerPop、Gremlin
- 多种知识图谱的性能配置
- 以节点为中心的索引查询
- 对不同的存储引擎提供加速优化
- 基于Apache license 2
如果基于HBase作为存储引擎,还能保证:数据的可靠性、扩展性与一致性。
2 安装
2.1 单机版
janusGraph支持多种部署模式,比如单机版本gremlin、graph server、hbase可以安装到同一台机器。此时启动的时候只需要配置存储引擎为HBase就可以了:
JanusGraph graph = JanusGraphFactory.build()
.set("storage.backend", "hbase")
.open();