透过指标,盘点热门开源数据库

2023-12-12 01:59

本文主要是介绍透过指标,盘点热门开源数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2a751efc034624a313e285190f47bf51.png

近些年来,软件开源化趋势愈发明显,作为基础软件的数据库及相关产品首当其冲。很多国产数据库大厂,也纷纷迈向开源之路。本文从开源项目的指标入手,总结如何分析一款开源产品及当前国际、国内主流数据库及周边产品的开源表现如何。希望未来,有更多优秀开源产品/项目诞生。

1. 开源指标及分析

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

1).Github指标

  • Star

    可解释为`关注`或者`点赞`。当点击 star,表示喜欢这个项目或者通俗点可以把他理解成朋友圈的点赞吧,表示对这个项目的支持。

  • Fork

    克隆出一份属于自己的版本。可以对这个副本进行修改完善,当觉得没问题了,可以尝试发起 pull request 给原项目作者。

  • Commit

    当前分支的提交,commits表示提交数。

  • Pull request(pr)

    一种通知机制。你修改他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。合并到主干版本的动作称为Merge PR。

  • Issue

    项目的问题讨论,对应issues表示问题讨论数。

2).Github用户角色

Apache 软件基金会(Apache Software Foundation,ASF)在开源软件界大名鼎鼎。ASF 能保证旗下 200 多个项目的社区活动运转良好,得益于其独特的组织架构和良好的制度。

8219e1badb67e209eef238867750599f.png

  • 用户 (User)

    通过使用社区的项目构建自己的业务架构的开发者都是Apache的用户。

  • 贡献者 (Contributor)

    帮助解答用户的问题,贡献代码或文档,在邮件列表中参与讨论设计和方案的都是 Contributor。

  • 提交者 (Committer)

    贡献多了以后,就有可能经过 PMC 的提议和投票,邀请你成为 Committer。成为 Committer 也就意味着正式加入 Apache了,不但拥有相应项目的写入权限还有 apache.org 的专属邮箱。成为 Committer 的一个福利是可以免费使用 JetBrains 家的全套付费产品,包括全宇宙最好用的 IntelliJ IDEA 。

  • PMC

    Committer 再往上走就是 PMC,这个必须由现有 PMC 成员提名。PMC 主要负责保证开源项目的社区活动都能运转良好,包括 Roadmap 的制定,版本的发布,Committer 的提拔。

3).指标分析

针对上述Github指标及内部统计数据,可将指标进行分类。本文统计中,后三类指标都是以最近的一个月的数字为参考。

  • 项目维度:stars、forks

    上述指标,,反映项目整体活跃程度。

  • 开发者维度:PMC member、Committer、Contributor

    上述指标,反映开发者生态是否健康,是否形成有层次梯队的开发者队伍。

  • 开发活跃度:Active/Merge/Open Pull Request

    上述指标,反映开发者活跃程度,是否有规模化开发者参与其中。

  • 使用者维度:Active/Close/New Issue

    上述指标,反映使用者活跃程度,是否规模化使用并有问题可反馈。同时,问题是否及时得到解答并关闭。

  • 代码维度:authors、commits、files、additions、deletions

    上述指标,反映代码修改的活跃度,包括参与修改人数、提交数、修改文件数、新增及删除代码数量。后两个指标相比还可间接反馈出软件重构度。

2. 全球数据库开源情况

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

此章节几张图均来自db-engines.com,其反馈是数据库流行程度。从开源与商业整体对比来看,在今年的早些时候,开源已超越商业数据库。

3e9cfc7da11b0e87c61081b1de3099d7.png

下面图则从产品梳理与流行度评分两个维度,对比商业与开源产品的对比。

0e650010ea407e1971e41258ad39add6.png

针对不同数据库类别,开源与商业的占比也差距很大。

86dc4630a0ce6565fb68c2d57a2ff91a.png

下图则是列举最为流行的开源数据库,想必这几款产品大家都很难熟悉。这里有个有趣的现象,就是这些开源协议。这主要是受到近期开源产品商业化策略导致的。以MongoDB、Redis、ES为代表的产品,纷纷修改了开源协议。

8f64c71c8c3c154bb781538c6c21523e.png

3. 国内数据库开源情况

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

国内数据库的开源情况,与国际差别很大。最近一两年来,国内各大数据库厂商逐步推进开源策略。下图是从墨天轮社区中,整理的Top国内开源数据库产品。这里面包括了阿里、华为等云大厂,也包括PingCAP、TAOS这样的明星初创企业。

818ed16e57064a25772c536310dc8bcb.png

从国内开源数据库来看,TiDB也为一骑绝尘,其托管的三个项目累计star数接近4w,遥遥领先于其他产品。仅次于TiDB的是TDengine,作为后来者star达到1.7w,成绩也不错。相比较而言,几个大厂的产品,要么开源时间不长,要么运营还需加强,整体表现有待提升。从Contributors角度,也大体印证了这个特点。

c18d436b26771acea0ed0b53093290d0.png

进一步从开发者、使用者及代码层面对比,也大体符合上面的规律。特别是TiDB,开发者活跃、用户众多、代码变化也很大,可以说2~3年基本就完成一次重构。

ae8224c668561416baba4b15db76a481.png

4. 国内数据库中间件开源情况

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

数据库中间件,在过去几年中发展非常迅速,很好地解决互联网公司的众多场景。但近些年来,随着分布式数据库的兴起,数据库中间件似乎有所沉寂。但正如我之前文章谈到的,在很多用户场景下,数据库中间件仍然大有可为。特别是随着,数据库碎片化、数据使用深化,对数据计算的要求越来越高,这些都为数据库中间件带来利好。这里收集了国内外主流的数据库中间件,发现些有趣的问题。以shardingsphere、vitess形成头部玩家,这两个产品的的关注度均超过1w。其中vitess较早实现商业化,估值不错;近期国内shardingsphere也走出商业化的一步,令人期待。其他产品,有的star数也不少,但整体活跃度不高,这点可从后面数据看出。这里有个新增的力量,阿里的polardb-x,我也将其归入此类。因开源时间不长,目前活跃度不高。

2a90d2ba537be3aef487b4b50df5bbcd.png

承接上文,对比这些数据库中间件产品的开发、用户及代码情况,则差距更为明显。基本上shardingsphere三倍于vitess,其余产品除dble外基本都处于停滞状态。dble背后有厂商-爱可生支持,尚有一定的活跃度,但无法与前两者对比。特别是shardingsphere,基本上可代表数据库中间件的事实标准,无论从开发活跃度、用户使用量还是代码迭代更新的速度,都遥遥领先于其他产品。

295077d9262e6511643772af81811920.png

5. Apache典型开源项目情况

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

Apache作为全球最为知名的开源软件基金会,旗下孵化出大量优秀的基础软件。这里罗列了大家常见的一些apache项目,其中也包括国内有代表性的shardingsphere、pulsar、kylin等项目。

48a6b5e9d08616c3d9e5d69a89876eec.png

从产品活跃度来看,国内项目的活跃度要优于国外项目,这也是国内庞大开发人口基数的优势,同时也是近些年来开源项目逐步走向国际佐证。相信未来,开源软件将成为大势所趋,人心所向。

35b4cea7d676298812a54d551af49594.png

f4ecb0e3bfab1ef9c8cab09ff816dcc8.png

韩锋频道:

关注技术、管理、随想。

长按扫码可关注

这篇关于透过指标,盘点热门开源数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/482845

相关文章

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、