编程学习网 > 数据库 > 2020开源数据库行业状态报告
2020
05-19

2020开源数据库行业状态报告


数据库市场


首先看下Gartner去年的数据:


  • 全球数据库管理系统收入约为460亿美元
  • 总体同比增长约18%
  • 云数据库占了这一增长的68%


这里的 “云数据库”  定义可能有些争议:有些人用 “云数据库” 来指代在云服务上运行的任何数据库,有些仅指在云提供商的数据库即服务(DBaaS)中运行的数据库。但无论哪种方式,这种增长与趋势都说明:数据库行业的游戏规则已经变了。


在未来五年甚至十年内,即使用最激进的方式估算,全部业务都运行在云上是不现实的。实际上如果以行业增长为模型,即使未来5年内20%的内部数据库是自建部署的,而80%的数据都在云中(已经是一个很激进的数字),这仍是一个250亿美元的市场。


混合与多云环境


很多公司并未采用单一的云厂商,他们的大多数业务都运行在混合环境和多云环境中。调查数据显示,有61%的企业已经拥有混合环境。



很多公司的业务部署,都采用了可移植性的战略,以确保它们可以在不同的环境中运行。Run Anywhere/Run Everywhere 已成为未来应用程序设计的必要条件。


开源数据库市场增长


数据库是一个很大的市场,并且会越来越大。云和开源数据库的增长速度甚至超出了行业平均水平,由于公开信息很少,目前很难得到具体的相关数字。Gartner对整个市场发表了一些报告,却并未具体讨论规模和成长。像Oracle这样的公司也并未透露其与开源数据库有关的特定收入。


通过不同的公司、云提供商、分析师等提供的可用市场数据来估计,这一细分市场的年收入在7-8亿美元之间。这包括从云提供商处购买开源软件数据库。


开源数据库的增长率远高于行业平均水平,总体看来约为45-50%。一些供应商增长更迅速,MongoDB报告在第三季度,他们的Atlas DBaaS占其总收入的40%(去年同期为21%)。Atlas在最近一个季度的收入增长了185%以上。


从商用到开源


开源数据库增长的两个重要因素:

  • 新应用程序的开发
  • 来自传统商用数据库的迁移


目前很多公司的大型复杂业务仍运行在传统商用数据库上,考虑到导致迁移风险与成本,商用与开源共存的现象很普遍。

比如:SQL Server+MySQL或Oracle+MySQL。



值得注意的是,并非所有的迁移都是简单的后端数据库替换,更多的是关于整个技术堆栈的替换,并且涉及从上到下的重做。

例如,从Oracle迁移到MongoDB 可能需要使用完全重新设计的云原生应用来替换整个原有架构,这里可以看到对复杂应用程序所做了更大的调整。


谁在推动当前的开源和云数据库增长?


一句话答案:开发人员。



过去,DBA或基础架构团队通常会努力整合,并降低所使用技术的复杂性。这使许多公司过于依赖单一的商用数据库产品(比如 Oracle 或者 SQL Server全家桶)但现在这种情况已经成为历史,更多优秀专业的数据库产品被设计出来。开发人员和架构师越来越多的倾向于选择这些新技术,多数据库的趋势日益明显。



在当前的数据库环境中,开发人员有着比以往更多的选择。我们已经在很多大型公司中看到了相同的模式。



各个开发团队选择了不同的技术。而DBA、SRE、SA等角色将接管并长期支持这些技术。当然这会使公司内部形成极其复杂的技术矩阵。


随着使用的熟练和效率的提升,基础架构团队逐渐成为“产品开发团队”,构建自动化的工具和架构,以支持变化迅速的技术堆栈。复杂的环境可能导致许多问题,而且难以整合到单个数据库技术中,但这是未来一个重要趋势。


2020年最受欢迎的开源数据库


下表对比了3个来源的数据:Percona调查问卷、DB-Engines排名、Stack-Overflow调查问卷。


尽管存在一些差异,但在不同的调查和来源中,最受欢迎的开源数据库排名大致相似。



DB-engines显示,开源与商业数据库的差距正在缩小:



根据DB-engines的数据,以下是根据总体受欢迎程度的排名。截至2020年3月,MySQL的流行度仍是PostgreSQL和MongoDB的2倍。



Stack-Overflow 每年都会进行大型开发人员调查(2019年有90,000名受访者)。以下是开源数据库 2018-2019年之间的使用率差异。



1、MySQL数据库速览



MySQL可以用一字概括,稳:


  • 具有最大的安装基础,DB-Engines排名比下一名高出2倍以上,如果算上所有分支版甚至可以超过oracle,无愧为最流行的开源数据库。
  • 尽管占有率很大,但许多公司都在运行各种不同的MySQL。
  • Oracle本身有数量可观的MySQL Enterprise(与Community社区版相比有一些功能差异,并且是付费的)。
  • Percona也具有适用于MySQL自己的版本,该版本100%的开源,并且包含增强功能和企业功能。
  • 也有许多公司运行自己的定制版本。



MySQL的优点:

  • 庞大的安装基础
  • 易于上手
  • 长期的追溯与完善
  • 第三方服务的全面覆盖
  • 替代方案丰富
  • 良好的社区贡献


适用的场景:

  • 大量用于后端的第三方应用程序
  • Web应用程序
  • 电子商务:零售客户群通过MySQL支撑了爆发式增长的业务
  • 新应用程序开发一直是MySQL的最佳选择


MySQL社区:

  • 自从MySQL被收购Oracle之后,在稳定性和功能上都大大增强
  • Percona之类的公司已经在性能、可扩展性和功能方面为MySQL带来了全新的改进
  • Facebook、阿里巴巴、腾讯和其他公司为社区贡献了许多代码和功能
  • 生态系统中的新公司也在积极参与贡献力量。例如,PlanetScale等公司提供的Vitess横向扩展方案。


对MySQL未来的看法:

  • 会持续对现有功能进行完善与改进,但不会有大规模的创新、飞跃。
  • MySQL社区将致力于使其对开发人员更具吸引力,包括增加新功能、对开发人员更友好


注意事项:

  • 对于大型的老旧应用,MySQL并不是很好的迁移目标
  • MySQL和MariaDB之间仍然存在差异(它们是不同的)
  • 人才紧缺,真正的专家总是不容易找到
  • 一直在稳定而渐进的创新,但没有全面的增强


2、PostgreSQL数据库速览



PostgreSQL已有23年的历史了,在过去的几年中,PG出现了大规模的普及和增长。DB-Engines显示其受欢迎度在过去四年中翻了一番。无论是云厂商的数据,还是分析师的经验都证明了这一爆炸性增长。


PostgreSQL的大部分增长来自老旧业务的迁移。PG良好的开放性也促进了其使用率的增长,可以在第三方程序、硬件和系统中进行嵌入、修改和加强。



PostgreSQL的优点:

  • PostgreSQL是完全开放的,其背后没有任何公司实体,这使其成为一个真正的开放项目。
  • 开放的许可使它易于根据需要进行部署、嵌入和修改。
  • 具有完善的功能和完整的存储过程语言。
  • 对于大多数传统数据库开发人员和DBA而言,学习和提升更容易。
  • 有很多企业扩展和功能选项可用。
  • 在服务支持和DBaaS上有很多选择空间


适用的场景:

  • 旧版数据库迁移,PG在整合企业功能和过存储过程语言方面做得非常出色,这使其成为非常流行的迁移目标。
  • PostgreSQL的丰富功能集和强大特性,是业务构建新的OLTP应用的好选择。
  • GIS应用程序:PostgreSQL中的地理空间支持非常强大。
  • 边缘和嵌入式系统:许可证的开放性使其成为嵌入第三方项目、产品和系统的绝佳选择。(比如很多国产数据库)


PostgreSQL社区:

  • PostgreSQL社区是强大而热情的。
  • 主流云厂商、第三方提供商(如Percona,EnterpriseDB,CrunchyData,2ndQuadrant,Pivotal)和大型企业都对PostgreSQL有所贡献。
  • 提供支持和服务的公司很多,其中很多公司在标准PG数据库上提供增强功能。


对PostgreSQL未来的看法:

  • 目前PostgreSQL受重视程度很高,前途光明,预计会持续增长。
  • PostgreSQL的开放许可能导致更多“兼容”产品,用户有被锁定风险。
  • 注意,并非所有的PostgreSQL产品都是真正的开放,有些只是“开放源代码兼容(open source compatible)”。


注意事项:

  • 并非所有PG服务提供者都是开放的,DB选型前要注意,以确保可移植性。
  • 一些第三方扩展和附加组件的使用需要额外的工作量
  • 组件的支持程度很依赖其作者
  • 很多功能对于精通传统关系概念的人来说更容易学习,但对新入门者却不易掌握。


3、MongoDB 速览



在2020财年第三季度的财务业绩中,MongoDB宣布总收入为1.094亿美元,同比增长52%。其中MongoDB Atlas收入占第三季度总收入的40%,同比增长超过185%。Atlas拥有庞大的用户体量,截至2019年10月31日,已有超过15,900名客户使用。


MongoDB收入增长的因素有很多:功能扩展、价格上涨和产品变更。但仅凭收入很难衡量MongoDB的总体使用率。DB-engines可以看到一些增长,但并没有上面公开的收入和客户数量显示的那么多;Stack-Overflow 调查显示MongoDB使用率较为平坦;Percona与MongoDB相关主题的Web流量同比增长了20%以上。



MongoDB的优点:

  • 灵活的模式,NoSQL将模式控制权交给开发人员
  • 将文档数据无缝转换为JS/Go/Python/Java本地对象,而不是SQL数据结构。
  • MongoDB的高可用性设计一开始就围绕副本集构建,轻松实现了无停机维护和自动故障转移。
  • 内置水平扩展支持最多数百个分片,是通用数据库中最好的大数据解决方案。


适用的场景:

  • Web(尤其移动端) 能够同时实现“big”和“fast” ,将模式控制权交给开发人员,减少迁移迭代时间。
  • 游戏(尤其移动端) 存储灵活、强扩展能力以及更易用的分片
  • MongoDB灵活的文档存储非常适合快速发展变化的业务要求,使其成为许多SaaS业务的流行后端DB。


MongoDB社区:

  • IPO前:很多黑客与贡献者支持,更多的开放性。
  • IPO后:官方的MongoDB认证,极客精神缺失。
  • 与其他数据库相比,MongoDB社区的控制更严格。


MongoDB未来的看法:

  • MongoDB开发的精力正在远离核心数据库服务。
  • MongoDB Inc的前身是10gen,旨在成为在线服务的完整平台。目前的MongoDB在Atlas服务中添加了文本搜索,云自动化,移动集成等功能,但这些都是封闭源。
  • 由于主要功能都投入在Atlas中首发,使用MongoDB的企业是否会转移业务到其云平台么?


注意事项:

  • SSPL不是公认的开源许可证,并非所有人都认可MongoDB真正开源。
  • SSPL允许和禁止的内容存在不确定性,可能阻碍社区和第三方的使用。
  • 专注于Atlas作为其平台,存在被Atlas绑定的风险。
  • MongoDB是一个生态系统受到严格控制、限制性很大的开源项目。这意味着社区贡献以及第三方服务支持会逐渐落后。


4、MariaDB 速览


DB-Engines显示MariaDB在过去几年中取得了显著增长,但它的普及率不到MySQL的1/10。MariaDB在很多Linux发行版中是默认的,这有助于其在社区中的发展,但目前尚未取得重大的商业成功。

使用MySQL和MariaDB混合环境的公司的数量有所增加,但这通常不是战略决策导致,而是更多的偶然情况。MariaDB在云中的增长速度较慢,人们往往倾向于使用MySQL。

尽管MariaDB的增长正在全球范围内进行,但我们发现在北美以外地区(尤其是在欧洲和亚洲)增长的速度要快得多。


MariaDB的优点:

  • MariaDB趋向于创新突破,提供了很多有趣的新功能来尝试解决各种问题。
  • 一直保持与MySQL的兼容性,MySQL用户更容易迁移并开始使用它。
  • MariaDB基金会非常乐于助人,专注于社区。
  • 列数据库允许混合使用,推动“智能交易(Smart Transactions)”。


适用的场景:

  • 快速开发,开发人员都喜欢MariaDB的简单易用和一些功能。
  • 与其前身一样,MariaDB在运行Web应用中享有很高的声誉。
  • Oracle的替代品:MariaDB试图将自己定位为Oracle的替代品,但在这个领域仍然落后于PostgreSQL。


MariaDB社区:

  • MariaDB分为MariaDB基金会和MariaDB公司。基金会负责基本代码,并通过赞助和其他方式提供资金。这两个实体并存,很难将它们分开。
  • MariaDB有大量用户,他们已经部署并热衷于使用MariaDB来处理各种工作,公司的知名度和数量也没有MySQL/PostgreSQL的那种规模,提供一些企业可以选择赞助的付费功能。
  • 看好MariaDB前景并为之投资的公司很多,如Booking.com,Microsoft,阿里巴巴,腾讯和IBM。


对MariaDB未来的看法:

  • MariaDB确实在为企业领域的竞争做准备,特别针对金融等行业。
  • 他们一直在试图避免成为MySQL的衍生产品。
  • MariaDB正在努力推出自己的GA版DBaaS。
  • 随着MariaDB进入企业领域,他们正在删除一些更具实验性的功能,从而专注于提供更精简,稳定的企业服务。


注意:通常很难将MariaDB基金会与MariaDB Corp.分开。


注意事项:

  • MariaDB不再完全与MySQL完全兼容,一旦迁移过来,就很难后退。
  • 但核心RDBMS与MySQL的重叠仍然很大,因此两个数据库之间的选择更取决于个人偏好。
  • 过去增加的新功能可能导致一些异常和问题。目前精简了很多,以实现更多企业应用。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取