在前面的年度盘点产品篇和案例篇中,我们知道了过去一年的产品动态和社区用户的业务实践。但是,一个社区重要的是人,那些陪伴 NebulaGraph 一起成长起来的社区用户们,或许他们并未在意只是一个举手之劳,却实实在在地帮助 NebulaGraph 进行了产品演进。
他们是捉虫小能手
每个 NebulaGraph 的发行版除了有新增特性、优化之外,还有一些 bugfix 点,而这些 bug 有部分是来自使用 NebulaGraph 过程中大家的反馈:
- 2022.01 user14 上报了一个“int 类型字段设置 ttl 属性,过期依然可以查询到” 的问题;
- 2022.02 haoyuezheng 上报了一个“nebula-studio 导出选中点 csv 只能导出一个点”的问题,后经研发确认是字段值带有“#”引发的,并在下一个版本进行了修复;
- 2022.03 Aoi 发现 NebulaGraph Exchange GitHub 操作演示和文档不匹配,似乎丢失了一个冒号。文档同学随即核对信息之后确认了是一个 bug,立即更新了相关的文档;
- ……
每月每季度,都有热心的社区用户在论坛反馈他们遇到的问题,提交上报相关的问题到 GitHub,这是他们的论坛 ID,感谢他们的火眼金睛:
@user14 @haoyuezheng @S.HUANG @user18 @Aoi @user5 @AYAO @keyang2009 @troy @zhc @crazy @tony @DZW @dragon @0512 @svenwei @bloeeding @user11
@Endeavour @Dan @codelone @Gary @xiaobenma @longchuanren @Steven_Young @user84 @helloworld @zhixin_L1 @Alpha
这里特别感谢 @user5(神经蛙)@tony @helloworld 上报了多个 bug (///▽///)
他们是特约写手
除了前面提到过的案例篇之外,社区小伙伴们还分享了各种实践、最佳实践、有意思的 debug 过程,他们用自己的经历给他人指引了一条“明路”,绕开那些坑点。这里收录了他们的实践过程:
- 《Nebula 性能问题排查和性能调优》 上线,文中作者 jmq2020 详细讲述了遇到硬件资源受限时如何进行调优,顺带和大家介绍了一把执行计划;
- Wey 在文章《从零到一构建一个智能问答助手》中讲述了如何 DIY 一个智能问答助手,让我们知道原来 Siri 之类的语音助手是这样的;
- Wenhao 在《KV 存储分离原理和性能测评》 分析了 kv 存储分离的可行性,以及实测了 kv 分离之后的相关性能;
- 图计算框架 Plato 如何和 NebulaGraph 结合,jievince 在文章《高性能图计算系统 Plato 在 Nebula Graph 中的实践》 中给出了实践过程;
- nicole 在《基于 Nebula Graph 的 Betweenness Centrality 算法》分享了常见图算法 Betweenness Centrality;
- jievince 在《Geospatial Data 在 Nebula Graph 中的实践》 讲述了地理位置数据是如何处理,它的背后原理;
- zwnop 的知识图谱心得全在文章《基于图数据库的知识表示常用结构以及Nebula Graph数据库交互层的实现》;
- 日志数据和存储空间如何两全?tom_cruise 的文章《logrotate 在 Nebula Graph 的日志滚动实践》给了一个日志处理思路;
- milittle 是如何阅读 NebulaGraph 源码的,这些函数什么用?《查询语句 LOOKUP 的一生》凝聚着 milittle 的心得;
- NebulaGraph 的索引到底是干嘛用的?什么时候用?Wey 的《全方位讲解 Nebula Graph 索引原理和使用》无死角讲述索引的事情;
- kikimo 的《Chaos 测试下的若干 NebulaGraph Raft 问题分析》讲述了 Chaos 测试发现的 NebulaGraph Raft 中比较有意思的问题;
- Aiee 的 Session 感悟全在《非正式全面解析 NebulaGraph 中 Session 管理》中,从理论和实操两部分展开;
- nGQL 怎么用比较事半功倍?Wey 的 nGQL 系列教程的第一篇《nGQL 简明教程 vol.01 快速入门》先从常见语句讲起,让你先入门再深造;
- Schema 的设计和性能息息相关,为什么要如此设计呢?Wenzhou 的《如何设计一个高性能的图 Schema》结合实际经验娓娓道来关于图建模的那些事;
- NebulaGraph 认证考试 NGCP 通过率不足 17%,在《知道错哪了吗?NGCP 错题解析》中 lzy 从难题入手打开保过秘籍的一角;
- Wey 的《ChatGPT 加图数据库 NebulaGraph 预测 2022 世界杯冠军球队》虽然让跟风压巴西的小伙伴有所损失,但是 AI + 图计算的方法值得一试;
- yyh0808 部署安装 NebulaGraph 全家桶的经验《Mac 上使用 Docker Compose 部署社区版 NebulaGraph Dashboard + NebulaGraph 内核》,这是每位新手不能错过的教程;
- Wey 在《你的内核开发指北,新手也能搞 NebulaGraph 内核开发》不是讲 git 操作,而是从一个 feature issue 开始,串联起需求分解-模块设计-代码实现-测试-合并上线整个开发流程;
- 《当云原生网关遇上图数据库,NebulaGraph 的 APISIX 最佳实践》中,Wey 用 APISIX 实现了流量的负载均衡、TLS Termination、接口暴露等功能;
- jiaenqiu 在《基于 nebula-spark-connector_v3.0.0 实现十亿级离线 CSV 导入 Nebula 之最佳实践》留下了他的最佳实践;
- wfxxh 在《java client 2.6.2 maven shade 打包失败解决》分享了两种解决打包失败的法子,篇幅虽然短但是有用;
- Anyzm 的《隐藏在 graph-ocean 背后的星辰大海》讲述了深藏功与名的 Java ORM 工具的设计思路和使用方法;
- ACID 一直是社区热门话题,怎么做?xtcyclist的文章《在应用层实现简单的批量插入与失败后回滚功能》给出了一个思路可以先简单地在应用层实现;
- Reid 在《Nebula Importer 数据导入实践》比较了 4 种数据导入方式,并对 NebulaGraph Importer 进行压测,给出了相关的性能;
- liuqian1990 的《记一次 nebula-storaged 内存占用高解决的过程》尝试了各种方法来解决内存占用问题,最后当然是:好了;
- codelone 在《GraphX 图计算实践之模式匹配抽取特定子图》提供了 OLAP 的实现思路,满足你的业务计算需求;
- codelone 的《适配 Nebula3.1 版本与压测实践》分享了邦盛科技他们的适配经验,以及相关版本新特性讲解;
- tony 给出了一种 MyBatis 操作图数据的法子在《使用 MyBatis 操作 NebulaGraph 的实践》文章中;
- Wey 在《一文了解 Nebula Graph 上的 Spark 项目》连接多款 Spark 工具一把梭哈来了个实操;
- shixingr 数据迁移的过程都在《在开源调度项目 Dolphin Scheduler 中增加 Hive to Nebula 的任务节点(思路)》里;
- yipeng 的新手部署任务全记录在《NebulaGraph 安装教程(Intel macOS)》中;
- Wey 玩转树莓派上的图数据库被《树莓派部署 Nebula Graph ARM64》记录;
是他们以用文字为社区用户铺垫了一条通往图世界的道路,这是他们的名字:
@jmq2020 @Wey @Wenhao @jievince @nicole @zwnop @tom_cruise @milittle @kikimo @Aiee @Wenzhou @lzy @yyh0808 @jiaenqiu @wfxxh @Anyzm @xtcyclist @Reid @liuqian1990 @codelone @tony @shixingr @yipeng
这里特别感谢 Wey 高频地输出他对图数据库的所思所想,让社区用户看到更细致、全面的 NebulaGraph;
他们是解密达人
NebulaGraph 论坛活跃者一群喜欢解答他人困惑的启蒙者,他们给人指点迷津。
- 2022.02 xinxin 在首次发帖中解决了自己“studio v3.2.1 版本创建图空间报错”的问题,并获得了论坛“启蒙者”徽章;
- 2022.03 guded 在“meta 生成大量 wal,持续占用内存,大量 session 无法关闭”给出了对应的 session 处理法子;
- 2022.04 user128 则解决了“nebula 通过源码编译安装后无法启动”;
- ……
有人说 NebulaGraph 社区很活跃,是因为有这么一群人在用他们的热心来帮助他人,他们是社区的“启蒙者”也是社区不可或缺的成员;
@xinxin @spw @wuyou @zhaohaifei @lucas @kqzh @zhang @monsterXu1 @Lin @veezhang @forest-yuxl @MrSaviorBill @guded @wzyaxyy @troy @stephenhah @mathlpz @Turing @wang @Bobo @user128 @user29 @bai @user5 @wzzl
@Bobo @sword @ysjiao @huangsong2888 @Abel @liujie @smile_lty @undefined @zhixin_L1 @MuYi-方扬 @ricki @chengnan @CurvusY @user82 @liujianan
谢谢你们给其人留下了宝贵的解决方案
他们是编码者
NebulaGraph 是一款开源的分布式图数据库,自然少不了广大的开发者们将他们对图数据库、NebulaGraph 理解化做代码留在各个版本中:
- 2022.01 Shylock-Hg 在 nebula 仓库留下 #pr3610 支持了时间默认值;
- 2022.02 wh201906 的 pr#43 修复了 github-statistics 仓的一个 bug;
- 2022.03 a516072575 在 pr#3729 中新增单用户、单机器连接数据库的会话数量限制,而这个 pr 修改了 9 个文件;
- …
从内核仓库 nebula 到周边工具仓库 nebula-exchange、nebula-br,31 个仓库收录了 109 位 contributor 的 2022 年的足迹:
@Shylock-Hg @Aiee @nevermore3 @darionyaphet @Nicole00 @liuyu85cn @yixinglu @hetao92 @wenhaocs @panda-sheep @critical27 @randomJoe211 @wey-gu @cooper-lzy @SuperYoko @czpmango @heroicNeZha @frostming @QingZ11 @jievince @cangfengzhs @foesa-yang @kqzh @nianiaJR @jackwener @Sophie-Xie @Nivras @1uvu @CPWstatic @abby-cyber @xjlgod @sherman-the-tank @veezhang @HarrisChu @hebelala @NicolaCage @xigongdaEricyang @pengweisong @liwenhui-soul @zhaohaifei @MegaByte875 @dbacyj @ianhhhhhhhhe @Shinji-IkariG @jiayuehua @hezhizhen @whitewum @wayneshn @jamieliu1023 @wh201906 @defp @xiajingchun @huaxiabuluo @aminmaghsodi @FangJinhe @a516072575 @sworduo @mizy @taohammer @wuxiaobai24 @mahadia-islam @jjsimps @peczenyj @veeding @lisahui @shanlai @Liuxue-Yang @github-actions[bot] @study-day @knwng @dutor @TonyAndFriday @red-vel @svenbarnett @caton-hpg @Codelone @liuxiaocs7 @Qiaolin-Yu @spike-liu @Milittle @xtcyclist @Linary @lopn @tian-zhong @peter-rich @TommyLemon @oohx @alan890104 @codesigner @kikimo @artemijspavlovs @damuji8 @jinyingsunny @lipzhu @180909 @Reid00 @casualwind @MeeCreeps @yang-han @uniding @dependabot[bot] @Hacky-DH @z2690108 @soul-gin @LooJee @linhr @chenzuyibao @manyfeatures @yyh0808
这是今年所有贡献代码的小伙伴~~感谢你们用 C++、Python、Golang 等等语言铸造了个更稳定、好用的 NebulaGraph。
等等,好像少了什么?是哪些一人成团的小伙伴,他们维护着 nebula-contrib 下的仓。
他们是 Maintainer
社区中有一群人,他们开发了 NebulaGraph 的周边工具并开源给社区用户一起完善,他们是 Maintainer:
- 2022.04 Anyzm 开源了第一款 Java ORM 项目 graph-ocean;
- 2022.05 ToJ112 开始立项实时 Stream ETL 项目 nebula-real-time-exchange;
- 2022.06 SwordElucidator 实现了第一款 Python ORM 项目 nebula-carina;
你可以在下面仓库中找到 @Anyzm @ToJ112 @EldinZhou @FLYXH @mathlpz @SwordElucidator @CorvusYe 的痕迹
- Java ORM:graph-ocean
- Stream ETL:nebula-real-time-exchange
- 对接 DataX:nebula-datax-plugin
- Swagger Springboot Demo:nebula-swagger-demo
- 后端基础服务工程:graph-gateway
- Python ORM:nebula-carina
- Springboot 的数据库 ORM 框架:NGBATIS
最后,替社区用户赞美下 CorvusYe(NGBATIS)的作者,项目迭代快还活跃在 issue 区和大家互动交流产品进展和用法,无论是白天还是夜晚,只要你有 issue 都能第一时间得到他的反馈,谢谢你的用心,take care~~
感谢 2022 年的你们,也谢谢你读完本文 (///▽///)
要来近距离体验一把图数据库吗?现在可以用用 NebulaGraph Cloud 来搭建自己的图数据系统哟,快来节省大量的部署安装时间来搞定业务吧~ NebulaGraph 阿里云计算巢现 30 天免费使用中,点击链接来用用图数据库吧~
想看源码的小伙伴可以前往 GitHub 阅读、使用、(^з^
)-[☆ star 它] → (GitHub);和其他的 NebulaGraph 用户一起交流图数据库技术和应用技能,留下「你的名片」一起玩耍呢~