团队
介绍
我们是光大科技有限公司智能云计算部运维服务团队数据库项目组,致力于集团、科技数据库运维工作。将不定期与大家分享原创技术文章和相关实践经验,期待与大家共同探讨和进步。
数据库定义
数据库是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库发展历史
图片来源“墨天轮”
图片来源“中国信息通信研究院”
数据无处不在,人们先后通过结绳、刻石、文字、打孔卡等记录数据,在计算机发明之后,可经过其电子化编码后转化为数据,从而推进了数据记录和分享的高速发展。
数据库管理技术经历了三个阶段:
人工管理阶段:
20世纪50年代中期 ,无直接存储设备,无操作系统,无共享,数据冗余大,应用程序自己控制。
文件管理阶段:
20世纪50年代后期–60年代中期,共享性差,冗余度大,检索慢。
文件管理阶段:
20世纪60年代后期–至今, 在数据库技术领域,数据库所使用的典型数据模型有层次数据模型(Hierarchical Data Model)、网状数据模型(Network Data Model)和关系数据模型(Relational Data Model),其中,关系数据模型则是以“二维表”(或称为关系)的方式表示数据记录之间的联系。
1964年,世界上第一个数据库系统IDS(Integrated Data Storage,集成数据存储)诞生于通用电气公司。IDS是网状数据库,奠定了数据库发展的基础。
1968年,世界上第一个层次数据库系统IMS(Information Management System,信息管理系统)诞生于IBM 公司,是第一个大型商用的数据库系统。
1970年,IBM 的研究员Edgar F.Codd发表了A Relational Model of Data forLarge Shared Data Banks 论文,提出了关系数据模型的概念,奠定了关系数据模型的理论基础。
1978年,Larry Ellison在为美国中央情报局做一个数据项目的时候,敏锐地发现关系数据库的商机。几个月后,Oracle 1.0诞生了,经过短短十几年,Oracle公司的数据库产品不断发展成熟,成为了数据库行业的巨头。
参考来源网名\”追术小白\”的
《数据库发展的三个阶段及特点》
信创推动国产数据库发展
信创产业发展史更是一部国内基础软硬件企业成长史。
长期以来,我国对非国产IT产品的依赖程度较高,底层架构标准及上层生态构建的话语权较弱,导致了较为被动的局面。
信创即信息技术应用创新,是我国IT产业自主创新、发展升级的长久之计。
在信创背景下,国产软硬件产业迎来了新一轮的爆发增长,上下游各方因素携手共建基于我国自主的产业标准,IT产业格局或将迎来重构。
2008年微软黑屏事件,2013年棱镜门事件(掀起了去IOE浪潮)、2018年芯片漏洞事件、2019年苹果Siri事件等促进了信创行业发展,同时也推进了国产数据库的快速发展。
国产数据库发展
目前已经有194个国产数据库,按照不同维度,可以有多种分类方式,参考墨天轮《2020,国产数据库崭露峥嵘的发轫之年》,国产数据库也可以划分为四个流派。
学院派:
国产数据库发展的40年,最初源于国家的引导、支持和扶持,在这一阶段,国产数据库的研发始于高校,直至今日,源自高等院校和科研院所的几大数据库公司仍然是国产数据库的重要参与力量,这几家分别是人大金仓、武汉达梦、南大通用等。
互联网派:
随着近年互联网和开源技术的蓬勃发展,互联网企业以高度的热情参与到了数据库的建设中来。不管是自主研发,还是借助开源,互联网解决了自身应用的问题,并且依托云平台,展开了云数据库的应用推广。例如阿里巴巴的PolarDB、OceanBase,腾讯的 TDSQL、TBase等。
创业派:
数据库领域生机勃发的另外一支力量是新兴的独立数据库创业企业,由于行业的未来引人瞩目,资本开始青睐这个行业,技术创业者和资本的结合,催生了一系列的新兴数据库企业,这其中包括巨杉、PingCAP、偶数、星环、柏睿、、星瑞格、易鲸捷等。这其中的创业核心多数来自于 Oracle、IBM、Intel、HP、EMC等国际企业。
企业派:
在独立的数据库企业和互联网企业之外,头部科技企业也参与到了数据库核心技术攻关中,这其中就包括华为、中兴、浪潮等,华为在2019年推出了 GaussDB,中兴推出GoldenDB,而浪潮则是推出了K-DB。深谙企业级服务之道的头部科技企业的介入,让数据库和商业市场运作彻底消除了隔膜,迎来了加速奔跑的时代。
数据库架构演进
关系型数据库架构
单机架构
主从架构
单机架构没有高可用、负载均衡、故障转移等功能。
主从架构属于数据库存储级别冗余解决方案,提高了数据安全级别。
例如:MySQL主从、Orace DG等。
集群
集群架构一定程度提高了实例级别高可用。
例如:Oracle RAC,达梦DMDSC等。
读写分离
例如:Oracle ADG,MySQL Proxy,达梦DMRWC等。
分库分表
例如:Oracle sharding,MySQL Route等。
NoSQL数据库架构
虽然关系型数据库具有较好的稳定性、安全性、完整性,但是仍不能满足所有需求,关系型数据库的性能和访问承载能力,在面向单一数据节点的企业级应用时代是无可挑剔的。但在访问量和数据量急剧膨胀的今天,关系型数据库已经很难再像以前那样成为如此巨大规模系统的底层支撑,甚至成为了应用系统的瓶颈所在。
关系型数据库主要有以下几点不足:
① 高并发读写性能低
例如:Oracle RAC一定程度提高了并发能力,由于多个实例共享一个存储,随着实例数增加,性能提升并不明显,甚至会出现性能下降,而分区表,sharding等技术对性能提升也是有限的。
② 不适合存储半结构和非结构类型数据
关系数据库所采用的二维表格数据模型不能有效地处理多维数据,不能有效处理互联网应用中半结构化和非结构化的海量数据,如Web页面、电子邮件、音频、视频等。
③ 容量有限
当一个应用系统的用户量和访问量与日俱增的时候,传统的关系型数据库却没有办法简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。
随着关系型数据库的不足之处暴露得越来越明显,NoSQL的出现成为了有益补充。不过NoSQL并非为了取代关系型数据库,而是指Not Only SQL,提供了在SQL之外的另一种选择。
常见的NoSQL数据库分为:
键值型数据库、列族数据库、文档数据库、图形数据库等。
键值型数据库:
国外有Redis,Memcached,国内有TcaplusDB?、Tendis?、Haisql_memcache?。
适用于内容缓存,如会话、配置文件、参数等;频繁读写、拥有简单数据模型的应用,扩展性好,灵活性好,大量操作时性能高,但数据无结构化,通常只被当做字符串或者二进制数据,只能通过键来查询值。
例如:
Redis单机
redis主从
redis哨兵
redis集群
列族数据库:
国外有Bigtable、HBase、Cassandra,国内有GeminiDB?、iBASE?。
适用于分布式数据存储与管理,以列族式存储,将同一列数据存在一起,可扩展性强,查找速度快,复杂性低,但功能局限,不支持事务的强一致性。
例如:
HBase架构
文档数据库:
国外有MongoDB、CouchDB,国内目前还没有文档数据库。
适用于存储面向文档或类似半结构化的数据,数据结构灵活,可以根据 value 构建索引,缺乏统一查询语法。
例如:
MongoDB主从
MongoDB副本集
MongoDB分片
图形数据库
国外有Neo4j、InfoGrid,国内有TGDB?、Alibaba GDB?、GeaGraph?等。
适用于社交网络、推荐系统,专注构建关系图谱,支持复杂的图形算法,但是复杂性高,只能支持一定的数据规模。
NewSQL架构
由于关系型数据库和NoSQL数据库各有优缺点,很难用一种关系型数据库或NoSQL数据库满足所有需求。
而NewSQL 提供了与 NoSQL 相同的可扩展性,而且仍基于关系模型,还保留了极其成熟的 SQL 作为查询语言,保证了ACID事务特性。
NewSQL其实就是NoSQL的发展过程中增强对SQL、OLTP的支持,因为原来NoSQL放弃这些换取性能还是不够。
NewSQL 也是在传统关系型数据库上集成了 NoSQL 强大的可扩展性。
传统的SQL架构设计基因中是没有分布式的,而 NewSQL 生于云时代,天生就是分布式架构。
例如:
TiDB等
数据库排行榜
DB-Engines数据库排行榜
排名数据主要依据某种数据库在Google、Bing 、Yandex等搜索引擎上搜索到的数目,专业技术讨论中提到该数据库的次数,专业网站中使用的频率,全球性职场社交平台LinkedIn及Upwork,twitter等社交平台的相关度。
图片来源https://db-engines.com/en/ranking
全球较为权威的DB-Engines的统计排名
排行前两名仍是来自甲骨文的Oracle和MySQL数据库,虽然自提出去IOE已经过去很多年,但Oracle数据库的地位在很多场景下仍是无可撼动。
其中Oracle数据库版本生命周期如下:
Release Schedule of Current Database Releases (Doc ID 742060.1)
Oracle 12C体系结构如下:
墨天轮国产数据库流行度排行榜
参考来源网站
https://www.modb.pro/dbRank
DB-Engines虽然是全球权威数据库排行榜,由于国内Google、Bing 、Yandex、LinkedIn、twitter等使用并不多,所以DB-Engines排行数据并不适用于国内,国内可以查看墨天轮数据库排行榜。
排名规则如下:
墨天轮国产数据库流行度排行于2019年6月推出,通过50个左右维度的数据来考察近200个国产数据库的流行度排行,每月1日更新排行数据,用于体现国产数据库的流行度。
主要根据如下数据来计算出数据库当月的得分:
搜索引擎,引入百度、必应、谷歌以及微信公众号文章(搜狗)当月搜索条目数,趋势指数引入百度指数、360趋势数据,通过搜索数据库关键字得到当月指数或趋势,12月在原信通院大数据产品能力评测的基础上,新增TPC-C、TPC-DS、TPC-H以及电信行业能力评测四项指标,以体现数据库产品在特定场景下的基准达标,以及性能和稳定性。
数据库生态对于产品成功至关重要,排行榜加入生态体系指标,包含社区平台、高校合作、培训认证、开放文档、代码开源、介质下载共六个维度,以体现厂商对数据库产品的可持续发展战略,开放开源、人才培养和共建行业的理念。
目前共有194个国产数据库参与排名。
2022年1月国产数据库排行榜,前十名分别是:TiDB、OpenGauss、达梦、OceanBase、GaussDB、TDSQL、PolarDB、GBase、人大金仓、AnalyticDB。
国产数据库又可以分为以下八大类:
关系型、文档、键值、宽列存储、图形、分布式、云原生、时序 。
按照不同类型排名分别如下:
关系型数据库前10名
openGauss、达梦、GBase、人大金仓、EsgynDB、神州通用、KunDB、RapidsDB、AliSQL、Goldilocks。
键值型数据库排名
国产数据库目前只有3个键值型数据库,分别是TcaplusDB、Tendis、Haisql_memcache。
宽列存储数据库排名
国产数据库目前只有2个宽列存储数据库,分别是GeminiDB、iBASE。
图形数据库排名
国产图形数据库前十名分别是:TGDB、Aibaba GDB、GeaGraph、Galaxybase、Nebula Graph、PandaDB、TuGraph、gStore、GDM、StellarDB。
分布式数据库排名
国产分布式数据库前十名分别是:TiDB、OceanBase、GoldenDB、SequoiaDB、万里开源、StarDB、HotDB、Hubble、LightDB、uniDB。
云原生数据库排名
国产云原生数据库分别是:GaussDB、TDSQL、PolarDB、AnalyticDB、OushuDB。
时序数据库排名
国产时序数据库前十名分别是:TDengine、DolphinDB、MatrixDB、CTSDB、Alibaba TSDB、CeresDB、Lindorm、CloudTable、Baidu TSDB、YonTimesDB。
作者:陈举超
往期
回顾
带你揭开WIFI的面纱
监控的分布式探索
使用Maven插件快速发布Docker镜像
金融行业云运维管理能力平台之分布式缓存平台
公众号:EBCloud
赶快扫码关注我们吧!
原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/32775.html