JanusGraph快速入门

本文介绍JanusGraph图数据库,探讨其在大规模图数据处理的优势,包括实时遍历和分析查询。涵盖JanusGraph的基本原理、部署场景、使用方法及一个Java项目示例,演示如何构建、查询图数据。

笔者由于工作中需要用到图数据库,所以花2小时研究了下Janus Graph这个开源项目,下面是一些学习心得,如果后面使用有更多启发再更新,如有错误,欢迎纠正。

学习一门技术最标准的方式是从官网入门:https://docs.janusgraph.org/

然后搞清楚以下问题即可:

  1. 是什么?为什么出现?
  2. 基本原理
  3. 怎么使用
  4. 再深入理解原理

1.JanusGraph是什么

本质问题是图数据库是什么?

JanusGraph旨在支持当需要的存储和计算能力超出了单台计算机所能提供的范围的图处理。 包括对图数据进行实时遍历和分析查询,这是JanusGraph的基本优势。

关键词是:图数据、实时遍历、实时查询和分析。

事实上,很多数据不再是关系型数据了,比如,人的关系网络,物联网,物流、交通等。对这种数据进行查询就像对树进行深度或广度遍历,只是图不仅包括树,更像是森林。

下面是笔者绘制的Janus图的基本数据组成:https://docs.janusgraph.org/basics/schema/

图的组成

2.基本原理

2.1.存储

Janus支持的存储有

Apache Cassandra
Apache HBase
Oracle Berkeley DB Java Edition

存储和索引是分开的:

Elasticsearch
Apache Solr
Apache Lucene

以hbase为例:Janus只支持等值查询,将索引属性的值做一个hash,然后分段存储在多个regionserver,这样可以避免查询热点。

2.2.部署场景

https://docs.janusgraph.org/basics/deployment/
部署
当单独以Janus Server模式部署时,客户端与服务器进行交互可以选择:

  1. HTTP方式
  2. WebSocket方式
  3. 或者2者的组合

3.怎么使用

查询
对图的操作,最频繁的就是查询和分析,下面是一个demo项目。

demo

我们采用集成在应用里的方式,建一个java项目。

导入依赖

    <properties>
        <java.version>1.8</java.version>
        <janusgraph.version>0.5.1</janusgraph.version>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.janusgraph/janusgraph-core -->
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-core</artifactId>
            <version>${janusgraph.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.janusgraph/janusgraph-berkeleyje -->
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-berkeleyje</artifactId>
            <version>${janusgraph.version}</version>
        </dependency>

        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-driver</artifactId>
            <version>${janusgraph.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.janusgraph/janusgraph-inmemory -->
        <dependency>
            <groupId>org.janusgraph</groupId>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值