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

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

相关文章

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp