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

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

相关文章

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现