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

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

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php

查询Oracle数据库表是否被锁的实现方式

《查询Oracle数据库表是否被锁的实现方式》本文介绍了查询Oracle数据库表是否被锁的方法,包括查询锁表的会话、人员信息,根据object_id查询表名,以及根据会话ID查询和停止本地进程,同时,... 目录查询oracle数据库表是否被锁1、查询锁表的会话、人员等信息2、根据 object_id查询被