美文网首页
2018-11-23 一个公司的图数据的选型

2018-11-23 一个公司的图数据的选型

作者: Albert陈凯 | 来源:发表于2018-11-23 15:51 被阅读89次

郭柱明


注意

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


阶段一:图数据库考察

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


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为我们的单元测试集成测试提供一次性的数据库容器

相关文章

  • 2018-11-23 一个公司的图数据的选型

    郭柱明 注意 因为我之前都要使用博客记录的习惯 所以下面很多链接都链接向我自己写的博客上的 所以导致下面看起来内容...

  • 5.自动化测试工程目录的建立&&基类接口封装

    接口自动化测试架构规划 1、编程语言的选型2、编程工具的选型3、自动化测试框架的选型概念:一个架子 (数据驱动)...

  • CMDB 前端技术评审

    1、技术选型2、数据交互流图3、代码架构设计说明4、排期规划及阶段性产出时间点 1.技术选型 前端渲染 前端渲染选...

  • 数据库 | 亿级记录查询解决方案预演

    背景 之前在公司做的一个数据库测试,为后续公司技术选型提供参考。业务场景大概是:按照10万/天/每台采集设备流量预...

  • 吐槽产品选型记

    文章结合最近公司几个产品模块的替换选型过程中的苦逼与吐个槽这个活动,用一个虚拟的选型故事,分享一下产品/功能选型的...

  • 数说数据库选型

    数说数据库选型 最近在评估低资源情况下的数据存储方案的选型。选择了常见的五种数据库进行评估,其中包括MongoDB...

  • 【技术猩球】牛人分享:大数据架构师在关注什么?

    在一个大数据团队中,大数据架构师主要关注的核心问题就是技术架构选型问题。架构选型问题一般会受到哪些因素的影响呢?在...

  • 消息中间件选型分析

    消息中间件选型分析 有很多网友留言:公司要做消息中间件选型,该如何选?你觉得哪个比较好?消息选型的确是一个大论题,...

  • 分布式ID生成器

    思维导图 技术选型 数据库自增长序列 最常见的方式, 可通过主键或者其他字段生成 优点 简单,代码方便,性能可以接...

  • 2020-03-10(应该正视存储)

    早晨上班路上,想了下业务对elasticsearch的使用,最初公司选型此中间件是因为业务上数据量比较大,但又...

网友评论

      本文标题:2018-11-23 一个公司的图数据的选型

      本文链接:https://www.haomeiwen.com/subject/kgbjqqtx.html