回顾 2023,NebulaGraph 的这一年的变化

0
0
![](https://nebula-website-cn.oss-cn-hangzhou.aliyuncs.com/nebula-blog/nebulagraph-2023-product.jpg) 一年又过去了,感谢你和 NebulaGraph 一起又走过一个春夏秋冬。在这 365 天里,我们一起见证了 214 个 commit 带来的 NebulaGraph 3 个中版本的上线,它们分别是 v3.4.0、v3.5.0 和 v 3.6.0;除了内核经历了 3 个中版本的迭代之外,NebulaGraph 在 2023 年也迎来一大波新周边工具,以及已有周边工具的大更新。 由于篇幅的关系,现在我们来相对克制地了解下这 3 个版本和周边工具。 ## 2023 年 NebulaGraph 的内核变更 一直以来,稳定性和高性能在 NebulaGraph 的产品规划中都是重中之重。今年,NebulaGraph 更是把**稳定性**作为第一优先级:在功能上,引入了 Memory Tracker 功能(该功能开发者分享了一篇从原理讲起的文章[《内存管理实践之 Memory Tracker》](https://discuss.nebula-graph.com.cn/t/topic/13128));在测试上,进行了多轮的覆盖测试,同时引入了 fuzzer 等测试工具及方法,对 NebulaGraph 做了一次彻底的“全身体检",也纠正和限制了一些不符合预期的行为。 在整体上,从 v3.3.0 到 v3.6.0,NebulaGraph 的稳定性有了明显的提升;而最新的发行版 v3.6.0 版本,在性能上,针对图上常用的路径查询、多跳查询上,均有不同程度的性能提升,最高提升了 6 倍。 以下罗列了一些大家不可错过的新特性: * [`KILL SESSION`](https://docs.nebula-graph.com.cn/3.4.0/3.ngql-guide/17.query-tuning-statements/2.kill-session/) 可终止执行过慢的查询语句;[`#pr5146`](https://github.com/vesoft-inc/nebula/pull/5146) * 支持在返回语句中使用像 `v.tag` 这样的表达式;[`#pr5440`](https://github.com/vesoft-inc/nebula/pull/5440) * 支持 `UPDATE` 语句中的`json_extract`函数;[`#pr5457`](https://github.com/vesoft-inc/nebula/pull/5457) * 支持在 `EXPLAIN` 输出中使用 TCK 格式;[`#pr5414`](https://github.com/vesoft-inc/nebula/pull/5414) * DML 支持参数;[`#pr5328`](https://github.com/vesoft-inc/nebula/pull/5328) * 支持使用 `MATCH` 子句检索 VID 或属性索引时使用变量;[`pr#5486`](https://github.com/vesoft-inc/nebula/pull/5486) [#5553](https://github.com/vesoft-inc/nebula/pull/5553) * 优化 `MATCH` 语句查询不存在的属性时的性能;[`pr#5634`](https://github.com/vesoft-inc/nebula/pull/5634) * 增强了聚合函数中的属性裁剪功能;[`pr#5301`](https://github.com/vesoft-inc/nebula/pull/5301) * 提高了遍历执行器的性能;[`pr#5308`](https://github.com/vesoft-inc/nebula/pull/5308) * 优化了 `FIND ALL PATH` 性能;[`pr#5409`](https://github.com/vesoft-inc/nebula/pull/5409) * `MATCH` 支持 ID 集合;[`pr#5360`](https://github.com/vesoft-inc/nebula/pull/5360) * 重构了 `GO` planner;[`pr#5369`](https://github.com/vesoft-inc/nebula/pull/5369) * graphd 配置文件中添加了部分性能选项;[`pr#5463`](https://github.com/vesoft-inc/nebula/pull/5463) 如果你对各个 NebulaGraph 版本的具体的 release note 有兴趣,可以前往 GitHub 页面阅读各个版本的信息:[https://github.com/vesoft-inc/nebula/releases](https://github.com/vesoft-inc/nebula/releases) ## 2023 年新晋周边工具 ![image](https://docs-cdn.nebula-graph.com.cn/figures/architecture_map_2022-08-08_17-37-15.png) 除了官方出品的周边工具之外,在 [nebula-contrib](https://github.com/nebula-contrib) 组织下收录了大量社区用户贡献的实用工具。而今年,这个组织下又有了新动态: * 2 月新增 10s 拉起 NebulaGraph Docker 服务的 nebulagraph-docker-ext:[https://github.com/nebula-contrib/nebulagraph-docker-ext](https://github.com/nebula-contrib/nebulagraph-docker-ext) * 4 月新增支持 GraphQL 查询的 NebulaGraphQL:[https://github.com/nebula-contrib/NebulaGraphQL](https://github.com/nebula-contrib/NebulaGraphQL)、将查询结果转为 JSON 格式的 NebulaResultSetBoot:[https://github.com/nebula-contrib/NebulaResultSetBoot](https://github.com/nebula-contrib/NebulaResultSetBoot) * 9 月新增 Scala 客户端 zio-nebula:[https://github.com/nebula-contrib/zio-nebula](https://github.com/nebula-contrib/zio-nebula) * 10 月新增可用来做容器化测试的 testcontainers-nebula:[https://github.com/nebula-contrib/testcontainers-nebula](https://github.com/nebula-contrib/testcontainers-nebula)、基于 Plato 实现 PersonalizedPageRank、TrustRank、BeliefPropagation 三个图算法的 analytics:[https://github.com/nebula-contrib/analytics](https://github.com/nebula-contrib/analytics)、NebulaGraph Operator 的 CLI 工具 operator-cli:[https://github.com/nebula-contrib/operator-cli](https://github.com/nebula-contrib/operator-cli)、采用游戏引擎 CoCos 实现的可视化图探索工具 graph-player:[https://github.com/nebula-contrib/graph-player](https://github.com/nebula-contrib/graph-player) ## 2023 年周边工具重大变化 不像 nebula-contrib 组织下的项目从零到一,下面这些大家熟悉的周边工具在 2023 年也迎来了大的功能迭代: * 可视化工具 [nebula-studio](https://github.com/vesoft-inc/nebula-studio),在 [`nebula-studio v3.7.0`](https://github.com/vesoft-inc/nebula-studio/releases/tag/v3.7.0) 版本中对 ARM 架构进行了适配,在 [`pr#667`](https://github.com/vesoft-inc/nebula-studio/pull/667) 中优化了执行计划的可视化; * 数据导入工具 [nebula-importer](https://github.com/vesoft-inc/nebula-importer)在 v4.0.0 版本中进行了重构,极大地提高了导入性能和导入配置文件的可读性; * 数据导入工具 [nebula-exchange](https://github.com/vesoft-inc/nebula-exchange)在 v3.4.0 版本支持了对 HDFS 配置文件的读取,在 v3.5.0 中支持了对数据源做预处理,v3.6.0 的 nebula-exchange 则支持了批量的删除和更新操作,最新的 v3.7.0 中 nebula-exchange 支持根据数据源获取模板配置文件; * 大数据工具 [nebula-spark-connector](https://github.com/vesoft-inc/nebula-spark-connector) 在 v3.6.0 对 Spark 3 进行了支持; * 大数据工具 [nebula-flink-connector](https://github.com/vesoft-inc/nebula-spark-connector) 在 3.5.0 对动态表 Sink 的增删改进行了支持; * 客户端 [nebula-go](https://github.com/vesoft-inc/nebula-go) 在 v3.4.0 支持了 JSON 格式的执行计划数据返回,在 v3.6.0 支持了 HTTP/2; * 客户端 [nebula-java](https://github.com/vesoft-inc/nebula-java) 在 v3.4.0 支持了 Session ID 的获取以及可 `Ping` 指定 Session,在 v3.5.0 支持配置 `SessionPoolConfig.setReconnect()` 来设定客户端是否进行现有可用服务的重连接,在 v3.6.1 支持了 HTTP/2; * 客户端 [nebula-console](https://github.com/vesoft-inc/nebula-console) 在 v3.4.0 支持了 ARM 架构下的 Docker 镜像,在 v3.6.0 支持了 HTTP/2; * K8s 运维工具 [nebula-operator](https://github.com/vesoft-inc/nebula-operator) 在 v1.4.0 支持了备份恢复(将在 v1.9.0 发布定时备份),在 v1.5.0 支持了 mTLS、日志定时清理、init-container 等特性,在 v1.6.0 支持了 Zone 可用在云上多个可用区场景,在 v1.7.0 支持了 HPA、存储卷扩容; * 由 @CurvusY 维护的 NebulaGraph + Spring Boot 的数据库 ORM 框架 [ngbatis](https://github.com/nebula-contrib/ngbatis) 在 1.1.2 中支持了 nebula-java 的 session pool 以及使用 java 的继承关系实现数据库多标签的操作,而 v1.2.0 在 XML 中支持 `ngql + include` 的用法,拓展了 NebulaDaoBasic 的多个接口,v1.2.0-jdk17 中支持了 Spring Boot 3.x。 ## 2023 年的 NebulaGraph 和 Doris 以及 KubeBlocks 2023 年的 NebulaGrpah 不只是专注自身的发展,也同其他的开源项目紧密合作,比如:高性能实时分析数据库 Apache Doris 和云原生数据基础设施管理平台 KubeBlocks。 * [Doris#19209](https://github.com/apache/doris/pull/19209) 在这个 PR 中,知乎技术团队对 Doris 扩充图引擎 NebulaGraph,在多维分析和全文检索的基础上实现与图引擎的结合。 * [KubeBlocks#3944](https://github.com/apecloud/kubeblocks/pull/3944)、[KubeBlocks#3981](https://github.com/apecloud/kubeblocks/pull/3981) 两个 PR 完成 KubeBlocks 和 NebulaGraph 的集成,让更多的 K8s 爱好者们可以有更多的数据库部署选择。 --- 感谢你对 NebulaGraph 的关注 (///▽///) 如果你有什么需求社区还未安排上,来和[星云小姐姐](https://discuss-cdn.nebula-graph.com.cn/uploads/default/original/3X/c/f/cf5821e2e14fbd7f3ccf998852a0e3555a7c4db2.jpeg) 说道说道。
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭