一、为什么用图数据库?
实践项目中,三个方面应用图数据库:
1,教育领域的个人知识图谱的自动数理,形成个性化的知识图谱和课程推荐。
2,停车场的闲置车位自动寻址的路径推算。
3,社交平台人物关系网的建立与内容推荐引擎。
“农夫过河”小故事
二、什么是 Amazon Neptune?
Amazon Neptune 是一项快速、可靠且完全托管的图形数据库服务,可帮助您轻松构建和运行适用于高度互连数据集的应用程序。Neptune 的核心是一个专门打造的高性能图形数据库引擎。此引擎经过优化,可存储数十亿个关系并能以毫秒级延迟进行图形查询。Neptune 支持常见的图形查询语言 Apache TinkerPop Gemlin 和 W3C 的 SPARQL,可让您构建查询,高效地浏览高度互连数据集。Neptune 支持图形用例,例如建议引擎、欺诈检测、知识图形、药物开发和网络安全。
https://docs.aws.amazon.com/zh_cn/neptune/latest/userguide/intro.html
(一)与关系型数据库对比
编程语言:Gremlin(哥布林)
存储:实体(Entity)和边(Realtions)
它具备:给定一个起始点,给定一个终点,自动寻址;
通过边不断找下级关联;
(二)怎么存储数据?
Marko 是个实体,lop是个实体,create 是条边,边带有权重等属性。
(三)怎么向数据库中添加数据?
利用Gremlin.Net,创建Subject(人实体),给定标记和属性:
g.addV('person').property('name','Jack')
(四)怎么在数据库中查询数据?
利用Gremlin.Net,创建查询命令,找出Jack的朋友
g.V().has('name','Jack').out('friend').values('name')
(五)数据收集与应用流程
三、AWS Neptune安装
1,找到Neptune服务,创建数据库
2,在Neptune相同VPC下创建EC2服务器,用于Gremlin.Net代码运行的客户端。
3,配置EC2能够访问Neptune
https://docs.aws.amazon.com/zh_cn/neptune/latest/userguide/access-graph-gremlin-console.html
4,SSH 到EC2
5,C# 代码运行
6, API 参考
http://tinkerpop-gremlin.cn/
源码案例,请联系作者。