[关闭]
@gzm1997 2018-11-08T15:46:57.000000Z 字数 1463 阅读 1645

离职交接

离职 图数据库 关系图谱


郭柱明


注意

因为我之前都要使用博客记录的习惯 所以下面很多链接都链接向我自己写的博客上的 所以导致下面看起来内容不多 其实下面内容还是有的


阶段一:图数据库考察

图数据库的考察是我进入公司开始做的第一部分工作 我们考察图数据库的历程大概是下面这样的
image_1crgtnkj772g3l31ouj1o8tbchm.png-8.2kB

  1. neo4j是由鸿波进行考差 neo4j是很完善的图数据库 但是只有他的企业版是支持集群的 但是收费 所以pass 考察的细节都在洪波那里 那时候我还没来 所以细节不清楚
  2. dgraph是我考察 细节在如下我的博客记录 官方文档也可以学习 推荐教程这个是学习dgraph最好的一个方法了 dgraph也是一个成熟的图数据库 有以下特点
    1. 支持resetful api
    2. 使用graphql+-查询语言进行查询
    3. 有多种语言的client
    4. 但是不支持自由选择底层存储 就是我们公司的高可用mongo集群的作用发挥不出来
  3. cayley是我们重点考察的图数据库 花了很多功夫 这是我对于cayley的基础知识总结 这是我后来对cayley做的一次技术分享PPT
    • 对于cayley的原理跟设计思想我有去思考的 探索出来的细节未必正确 但是思想我觉得还是可取的
    • 研究了cayley整个项目的构建方法 然后修复了cayley在持久层测试方面上的一个bug 为cayley贡献了一点代码 git commit在这里 其实这个问题包含的思想很重要的 扬哥因此还送了我一平红酒 细节请看docker在测试中的应用 后来我也用docker在开发和测试中写了另外一些demo 用法不一样基于容器的开发和测试

阶段二:开发


cayley时期

我们做了一个demo 就是基于我们的cayley图数据库来构建我们的关系图谱 从而找出用户中的最近联系的人以及可能认识的人 当时因为在设计理念以及对cayley的使用上 我跟扬哥跟莹姐之间存在分歧 所以当时每个人都按照自己的想法来写了一个自己的版本 我的版本如下
graphRelation
里面还算有不少注释


hugegraph时期

hugegraph说实话我们没接触多长时间 所以在这一阶段写的代码并不多 有一个需求就是找子图 代码在subgraph 里面我也写了部分注释

博客详情在我的subgraph博客

hugegraph时期我花了很多时间在看gremlin官方文档上 因为gremlin语法众多而且复杂 我并没有像以前翻译cayley的查询语言Gizmo那样用博客把常用查询语法记录下来 所以有点可惜 但是太多了记下来也没用 可以当官方文档是字典 使用的时候去查阅 平时只需要记住常用的查询语法即可


使用docker为测试提供一次性的数据库

docker容器目前有三个用处

我有做基于容器docker的开发和测试上一些简单的尝试 详情请看下面基于容器开发

cayley在它的单元测试跟集成测试部分就是用了docker 但是这里docker的使用跟上面有所不一样 上面是所有的部分都包含在容器内部 但是cayley的思路很特别也很有借鉴意义

cayley因为支持很多种数据库作为底层存储 所以他在每一次的单元测试以及集成测试过程中 都使用docker生成一个数据库容器 并将程序在运行过程中产生的持久层数据都放进这个数据库容器中 这样当测试结束 清除这个容器 保证了测试都进行在一个一次性的环境中 不留下任何测试数据

我为cayley修好的这个bug就是上面这个问题里面一个bug 虽然这个bug没什么太大意义 但是cayley在这里的设计思路确实非常值得我们借鉴 借助docker为我们的单元测试集成测试提供一次性的数据库容器


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注