周边工具
这个宝藏 org !有超多 NebulaGraph 实用工具~
01 关于 Nebula Contrib
Nebula Contrib 是由 NebulaGraph 社区贡献者(包括社区用户、独立开发者、合作伙伴)共同创建和维护的生态项目集合。为了解决实际使用中的小麻烦、探索新玩法,或者单纯想让大家用得更顺手,他们开发了相应的项目,并秉持“众人拾柴火焰高”的开源精神,将其贡献给社区,合入到 Nebula Contrib 中,NebulaGraph 官方会为这些项目提供一定的指导与支持,但主力军仍是这群可爱的社区贡献者。
02 Nebula Contrib 里的超赞项目
graph-ocean
👍项目发起人:@Anyzm
🔗GitHub:https://github.com/nebula-contrib/graph-ocean
📕graph-ocean 是一基于 nebula-java 客户端的 ORM 框架,其诞生源于实际业务中的痛点:Anyzm 就职于奇富科技,早期使用 NebulaGraph(v1.0.0) 时,Java 客户端是用枚举来呈列用到的 Tag 和 Edge 数据,而将 API 解析成 nGQL 的过程中也强依赖枚举,对业务代码侵入性强。因此 Anyzm 借鉴 JPA(Java Persistence API) 注解思想,设计了一套轻量级注解,将实体映射到数据库元素。
基于注解将实体与 NebulaGraph 的顶点、边、属性自动映射,实现对象与图数据的双向转换。
提供核心 API,支持顶点/边的增删改及查询操作,无需手动编写 nGQL 语句,直接操作 Java 对象即可。
实体对应的元数据在首次解析后缓存,避免重复运行反射计算实体与 schema 的映射关系。
🥳一些小彩蛋
奇富科技是 NebulaGraph 最早期的用户之一,在使用过 Neo4j、AgensGraph、JanusGraph 后,奇富科技于 2020 年 6 月使用刚发布的 NebulaGraph. 如今,NebulaGraph 仍被广泛应用于奇富科技的反欺诈、图挖掘、大数据血缘、图+大模型等多个核心场景。
大家熟悉的论坛活跃用户@江一旺(Puto 交流群热心答疑助手@awang )也来自奇富科技,他也在 Nebula Contrib 下贡献了一款针对 JetBrains 的 Console 工具——nebula-console-intellij-plugin 2,支持 nGQL 语法高亮和关键字自动补全、数据表格分页显示、关系图展示等,可方便快捷操作 NebulaGraph.
NgBatis
👍项目发起人:@CurvusY
🔗GitHub:https://github.com/nebula-contrib/ngbatis
📕NgBatis 是针对 NebulaGraph+ Springboot 的数据库 ORM 框架。包含了一些类似于 mybatis-plus 的单表操作,另外还有一些图特有的实体-关系基本操作。该项目的初衷是尽可能地减少日常开发中或重复或繁琐的工作。
开箱即用,实现与 Springboot、Springcloud 的快速集成
实现 GQL 与 Java 代码分离,使用 XML 统一管理
使用模板引擎,解决 nGQL 参数拼接繁琐、容易写错的问题
实现 ResultSet 与 Java 对象根据属性名自动转换
单表基本增、删、改、查以及分页
本地 Session 管理,降低资源消耗
🥳一些“小彩蛋”
大叶老师是生物学专业,大三开始去计算机系蹭课,后来又上了计算机培训班,毕业后如愿成为一名程序员,目前是笃笃科技 founder. 产品名为星影——图数据库客户端,提供可视化操作界面,让用户可以通过图形化的方式,对图数据库进行操作,目前支持且唯一支持 NebulaGraph. 在《NebulaGraph + DeepSeek 轻松看懂《哪吒2》人物关系》中,非常漂亮的《哪吒2》人物关系可视化效果就出自星影。
💡以上两个项目都是基于 Java 的 NebulaGraph ORM,如果你习惯用 JPA ,可以选择 nebula-ocean, 如果更习惯 MyBatis 进行开发,并希望你的问题得到快速反馈与解决(大家都开玩笑说大叶老师住在 GitHub 和技术交流群里,回复速度极快),那么 NgBatis 将是最佳选择。
NebulaGraph MCP Server
👍项目发起人:@PsiACE
🔗GitHub:https://github.com/nebula-contrib/nebulagraph-mcp-server
🥳PsiACE 在 MCP 开源后,就快速将 MCP 集成至 LlamaIndex,随后开发了 NebulaGraph MCP Server. 它可以将 NebulaGraph 的功能暴露为标准化的工具接口,从而让大模型轻松调用 NebulaGraph 数据,实现一系列的图探索任务。PsiACE 将其贡献给社区,供大家更轻松地探索 NebulaGraph + AI 的无限可能。
- 多种传输方式:
支持 stdio 和 SSE 两种传输模式,满足不同开发和部署场景的需求。
- 基础图探索能力:
图空间(Graph Space)列出:允许模型查询可用的图空间。
模式(Schema)查询:支持查询指定图空间的模式定义。
查询执行(Query Execution):支持通过 MCP Server 执行 NebulaGraph 查询。
- 内置算子模板:
- 实现了路径搜索和邻居发现等常用操作的模板,方便语言模型按需调用这些工具,快速获取图数据的初步洞察(Insight)。
🥳小预告
PsiACE 近期一直在做 NebulaGraph 的 GenAI 相关工作,后续会将许多经验与工作进展分享到社区,大家可以大大的期待一下~
还有这些⬇️
nebula-jdbc :JDBC 驱动,可使用 JDBC API 来操作 NebulaGraph
nebula-carina:NebulaGraph Python ORM,简化 Web、AI 开发
nebula-norm:NebulaGraph Golang ORM,只用实例对象即可进行图数据查询
DataX-nebula:阿里云 DataX 插件,批量离线导入导出 NebulaGraph 数据
nebula-bench:基准工具箱,使用LDBC 数据集测试 NebulaGraph
nebula-node :Node.js 客户端,少量代码即可在 Node 里跑 NebulaGraph
nebula-net:数据工具,将 MySQL 集群中的数据实时同步到 Nebula Graph
……
Nebula Contrib 里每个项目都非常棒~但由于篇幅原因,本文仅挑选部分项目进行介绍,访问下方链接探索更多有趣的项目:
https://github.com/nebula-contrib/
03 成为 Contributor
许多小伙伴经常和星云仔说:“我也想成为 contributor,但感觉好难啊。”
其实,这门槛真的比你想象中低得多~谁说贡献就一定要去啃内核、改存储引擎?
NebulaGraph 的内核上手难度确实不低,但围绕它的生态工具、应用扩展、周边适配,才是社区最需要、也最容易上手贡献的领域!这就是 Nebula Contrib 存在的意义——让每个人的小想法、小优化,都能汇聚成照亮他人的光芒。
你的贡献,如此多样:
开发一个小工具:就像 NgBatis、nebula-carina 那样,用你熟悉的语言把它实现出来!一个数据迁移脚本、一个可视化插件… 解决一个具体的小痛点,就是巨大的价值!
写写文档,润润色: 发现某个项目的 README 不够清晰?某个功能的使用说明有歧义?上手写!文档贡献是社区最最最欢迎的~
帮忙捉虫: 试用 Contrib 里的项目,发现哪里运行不正常?或者有性能可以优化的地方?提交一个清晰的问题报告 (Issue),详细描述你的发现,甚至提出改进思路,就是在帮项目变得更好!如果能顺手提交一个修复的 PR (Pull Request),那就更棒了~
不限于 GitHub ,你还可以:
分享你的使用经验: 把你使用 NebulaGraph 的经验写成博客、在社区论坛分享,也欢迎来 nMeetup 上做个 lightning talk~
答疑解惑: 在论坛或微信群里,看到有人遇到了你曾经解决过的问题?伸出援手,耐心解答!维护一个友好、活跃的社区氛围。
04 Ending
Nebula Contrib 是 NebulaGraph 社区创造力和协作精神的生动体现。从提升开发体验的工具,到探索前沿应用的桥梁,这里的每一个项目都凝聚着社区伙伴的智慧~
欢迎你加入这个有爱的 org,让 NebulaGraph 更强大(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ