免费开放《图数据库JanusGraph实战》教程,速领!

免费开放《图数据库JanusGraph实战》教程,速领!

作者:胡佳辉(家辉)  日期:2019年4月22日 CSDN博客:https://blog.csdn.net/gobitan

 

JanusGraph是一个优秀的开源分布式图数据库,支持与各类大数据系统集成,目前已经在很多大型公司生产环境使用,但除了官网之外,其他开放的资料比较少,初学者入门学习起来困难较大。

从去年下半年开始,我一直在用业余时间将学习JanusGraph的笔记整理成《图数据库JanusGraph实战》,以期在2019春年节前后为广大图数据库爱好者推出!但由于作者近几个月实在太忙,耽误了进度,至今也未完成。本想等忙完空了之后,整理完成再推出,但恐时间太长,耽误大家的学习,辜负大家的期望。因此,经过慎重决定,现将当前未完成的版本及时推出!

《图数据库JanusGraph实战》当前版本为0.3.0,我将该文档放在"图数据库与图计算"QQ群(463749267)文件中,后续若有更新,我也会更新在那里。

《图数据库JanusGraph实战》的目录如下:

1 引言8

1.1 目的8

1.2 背景8

1.3 参考资料8

1.3.1 参考书籍8

1.3.2 参考网址8

1.4 术语8

 

2 图数据库基础8

2.1 图数据库基本概念8

2.1.1 什么是图数据库8

2.1.2 属性图8

2.2 数据库的分类9

2.3 图数据库与图计算9

2.3.1 图数据库与图计算的区别9

2.3.2 主流图数据库介绍9

2.3.3 图数据库的派系9

 

3 JanusGraph入门10

3.1 JanusGraph简介10

3.1.1 JanusGraph概述10

3.1.2 JanusGraph与Tinkerpop的关系11

3.1.3 JanusGraph与Neo4j的对比11

3.2 JanusGraph架构11

3.3 JanusGraph安装12

3.3.1 JanusGraph安装说明12

3.3.2 TinkerGraph内存图数据库13

3.3.3 Windows下JanusGraph+Berkeley+ES安装13

3.3.3.1 版本选择13

3.3.3.2 安装包下载13

3.3.3.3 安装与配置13

3.3.3.4 基本使用14

3.4 Linux下JanusGraph的安装15

3.4.1 Linux下JanusGraph的安装说明15

3.4.2 Linux下JanusGraph的安装步骤15

3.4.3 JanusGraph的启动15

3.4.3.1 启动ElasticSearch15

3.4.3.2 JanusGraph的基本使用15

 

4 JanusGraph建模16

4.1 图数据库建模16

4.1.1 图数据库的基本模型16

4.2 定义JanusGraph Schema17

4.2.1 顶点标签17

4.2.1.1 顶点标签的概念17

4.2.1.2 顶点标签的创建17

4.2.1.3 顶点标签的查看17

4.2.1.4 顶点标签的修改18

4.2.1.5 顶点标签的删除18

4.2.1.6 删除整个graph18

4.2.2 边标签18

4.2.2.1 边标签的概念18

4.2.2.2 边标签的创建19

4.2.2.3 边标签的查看19

4.2.2.4 边标签的删除19

4.2.3 属性键19

4.2.3.1 属性键的类型19

4.2.3.2 属性的基数20

4.2.3.3 属性键的创建20

4.2.3.4 属性键的查看20

4.2.3.5 属性键的修改20

4.2.3.6 属性键的删除20

4.3 自动创建Schema20

4.3.1 模型快速查看20

4.4 ID管理21

 

5 Gremlin查询语言21

5.1 Gremlin概述21

5.2 Graph Structure API23

5.2.1 创建23

5.2.2 其他23

5.2.2.1 查看当前图23

5.2.2.2 查看图的features23

5.2.2.3 给图添加变量25

5.3 Graph Process API25

5.4 Gremlin console25

5.4.1 Gremlin帮助25

5.5 图事务26

5.5.1 提交事务26

5.5.2 回滚事务26

5.5.3 查询事务26

5.6 Gremlin增删改查26

5.6.1 创建顶点26

5.6.1.1 创建无标签的顶点26

5.6.1.2 创建带标签的顶点26

5.6.1.3 创建带标签和属性的顶点26

5.6.2 查看顶点27

5.6.2.1 查看所有顶点27

5.6.2.2 根据标签查看顶点27

5.6.2.3 根据属性查看顶点27

5.6.2.4 根据id查看顶点27

5.6.2.5 查看顶点的标签27

5.6.2.6 查看顶点的属性键值对27

5.6.2.7 查看顶点的所有信息27

5.6.2.8 根据标签和属性一起查27

5.6.3 创建边28

5.6.3.1 创建边28

5.6.3.2 查看边28

5.6.4 顶点属性28

5.6.4.1 添加或更新属性28

5.6.4.2 查看所有属性值28

5.6.4.3 查看单个属性值28

5.6.4.4 查看多个属性值28

5.6.4.5 删除某个属性28

5.6.5 边属性28

5.6.5.1 添加/更新边属性28

5.6.5.2 查看边属性28

5.6.6 删除28

5.6.6.1 删除所有的顶点28

5.6.6.2 删除所有的边29

5.6.7 退出29

5.7 Gremlin谓词29

5.7.1 常规谓词29

5.7.1.1 group29

5.7.1.2 Limit/tail29

5.7.1.3 range29

5.7.1.4 between29

5.7.1.5 skip30

5.7.1.6 as30

5.7.1.7 select30

5.7.1.8 project30

5.7.1.9 order30

5.7.1.10 统计count/sum/max/min/mean30

5.7.1.11 and/or/not/is30

5.7.1.12 where30

5.7.1.13 union30

5.7.2 特有谓词3

5.7.2.1 next30

5.7.2.2 toList/toSet/toBulkSet31

5.7.2.3 fill31

5.7.2.4 fold/unfold31

5.7.2.5 path31

5.7.2.6 by31

5.7.2.7 dedup31

5.7.2.8 repeat31

5.7.2.9 join31

5.7.2.10 local31

5.7.2.11 choose31

5.7.2.12 option32

5.7.2.13 match32

5.7.2.14 constant32

5.7.2.15 sideEffect32

5.7.2.16 aggregate32

5.7.2.17 inject32

5.7.2.18 coalesce32

5.7.2.19 optional32

5.7.2.20 both/bothV/bothE/otherV32

5.7.2.21 emit32

5.7.2.22 cyclicPath()32

5.7.2.23 Gremlin’s scientific calculator math32

5.7.2.24 Lambda函数33

5.7.2.25 filter33

5.7.2.26 sack33

5.7.2.27 store34

5.8 其他搜索谓词34

5.9 Gremlin语言变体34

 

6 JanusGraph索引34

6.1 图索引34

6.1.1 索引的状态34

6.1.2 复合索引Composite Index35

6.1.2.1 创建索引35

6.1.2.2 查看索引状态35

6.1.2.3 更新索引状态35

6.1.2.4 索引分析36

6.1.2.5 多字段索引37

6.1.2.6 唯一性索引37

6.1.2.7 相等索引38

6.1.3 混合索引Mixed Index39

6.1.3.1 创建索引39

6.1.3.2 查看状态40

6.1.3.3 索引重建40

6.1.3.4 检查索引40

6.1.3.5 添加索引到新建的键40

6.2 标签约束40

6.3 以顶点为中心的索引41

6.4 索引重建Reindexing41

6.4.1 MapReduce索引重建41

6.5 索引禁用与删除41

6.5.1 索引查看41

6.5.1.1 查看所有顶点索引41

6.5.1.2 查看所有边索引41

6.5.2 索引禁用42

6.5.3 索引删除42

 

7 JanusGraph数据库管理42

7.1 JanusGrap管理系统42

7.2 JanusGraph后端存储42

7.2.1 Oracle Berkley DB42

7.2.2 Apache Cassandra42

7.2.3 ScyllaDB42

7.2.4 Apache HBase42

7.2.5 后端存储的选型问题42

7.3 JanusGraph后端索引43

7.3.1 后端索引概述43

7.3.1.1 一般索引43

7.3.1.2 文本索引43

7.3.1.3 空间索引43

7.3.1.4 索引使用例子43

7.3.1.5 支持的数据类型43

7.3.2 Elastic Search44

7.3.3 Apache Solr44

7.3.4 Apache Lucene44

7.4 JanusGraph部署模式44

7.4.1 嵌入式44

7.4.2 单机模式44

7.4.3 集群模式44

7.5 JanusGraph+HBase+ElasticSearch安装44

7.5.1 版本选择44

7.5.2 软件下载44

7.5.3 JanusGraph+HBase独立模式+单机ElasticSearch44

7.5.3.1 JanusGraph安装44

7.5.3.2 ElasticSearch安装45

7.5.3.3 HBase安装45

7.5.3.4 安装验证46

7.5.4 Hadoop+HBase伪分布式模式46

7.5.5 Hadoop+HBase完全分布式模式46

7.6 JanusGraph+Cassandra+ElasticSearch46

7.6.1 Cassandra安装46

7.7 JanusGraph配置与日志46

7.8 JanusGraph备份与恢复46

7.9 JanusGraph导入与导出46

7.9.1 csv导入47

7.9.2 自定义导入类47

7.9.3 bulk load47

7.9.3.1 storage.batch-loading47

7.9.3.2 id分配优化47

7.9.3.3 优化读写47

7.9.4 GraphML47

7.9.4.1 导入47

7.9.4.2 导出47

7.9.5 GraphSON47

7.9.5.1 导入47

7.9.5.2 导出47

7.9.6 Gryo48

 

8 JanusGraph开发48

8.1 嵌入式模式48

8.1.1 Graph Structure API48

8.1.2 graph traversal方法49

8.2 JanusGraph Server50

8.2.1 Windows环境50

8.2.2 Linux环境51

8.2.2.1 Cassandra+ES(默认)51

8.2.2.2 Berkeley+es51

8.3 Java开发(Gremlin-Driver)52

8.4 Python开发(Gremlin-Python)52

8.5 REST开发(HTTP)53

8.5.1 JavaWebsocket53

8.5.1.1 工程搭建53

8.5.1.2 maven引用53

8.5.1.3 代码53

8.5.2 定制Gremlin-Server的配置文件53

8.6 JanusGraph认证53

8.7 JanusGraph与Spark集成53

8.7.1 插件安装53

8.7.2 配置54

 

9 JanusGraph图计算54

9.1 Hadoop与JanusGraph集成54

9.1.1 Hadoop伪分布式环境搭建54

9.1.2 启动JanusGraph54

9.1.3 Spark图计算54

 

10 JanusGraph可视化54

10.1 可视化概述54

10.2 Graphexp集成55

10.2.1 源码安装方式55

10.2.2 Docker安装方式55

10.3 Gephi插件集成55

10.3.1 下载与安装55

10.3.2 集成55

 

11 JanusGraph集群56

 

12 应用案例分析56

 

13 性能优化56

 

13.1 explain56

13.2 profile57

13.3 clock/clockWithResult57

 

本人保留《图数据库JanusGraph实战》的版权,未经许可,不得用于商业目的。如需合作,可加作者微信(cddennishu)。如教程对您有用,想感谢作者,欢迎打赏,谢谢!

你可能感兴趣的:(5.,大数据)