首页 » Big Data and AI » Database » 正文

数据驱动的基石——数据库

自1946年第一台通用计算机“ENIAC”诞生以来,围绕着计算机的软硬件的迭代就从未停止过。计算机硬件的核心逻辑元件从最初的电子管经历了晶体管、集成电路到现在的大规模集成电路时代,体积也从一个房间才能装下到现在的人手一台的手机甚至更小的嵌入式设备。

而伴随着硬件能力的提升,其中的软件的迭代更新也必不可少。在计算机软件工程领域,操作系统、编译器和数据库被称为难度最大的三大系统,其中数据库又是承载数据的基石,在如今数据大爆炸的时代,数据库产品也正经历着新一轮的变革。

悠久的历史

一般来说,数据库是指在计算机中有组织的进行数据存储和获取的系统。经常也有概念会提到数据库管理系统(DBMS,Database Management System),其实是一套和数据库进行交互的用户侧管理软件,但现在大家往往将数据库、DBMS等软件统称为数据库或数据库系统。自1960s数据库的概念被提出来,数据库的发展本身也经历多个阶段:

1960s,最早提出的navigational数据库基于树或链表的结构来对数据进行组织,最早的代表有CODASYL和IBM的IMS(Information Management System)等;

1970s,IBM的Edgar Codd第一次提出关系型数据库的概念,以表结构的形式进行数据的组织和存取,用以解决navigational 数据库的搜索困难问题,也就在这个时期IBM开始研发了目前的核心产品IBM DB2的原型。与此同时Oracle也在1978年开发出其第一款关系型数据库Oracle V1;

63a493e8b6ba1059803785c216acd8d056666fd0

▲ 关系型数据库示例

1980s,传统的关系型数据库已经能满足大部分的日常数据存储的需求,Oracle、IBM等商业化数据库也得到了蓬勃的发展。到了2000s,大家对数据的实时性要求更高,数据量也呈现出爆发式增长。而技术的发展也往往由需求驱动,由此诞生了一系列非关系型NoSQL数据库(注:SQL是指针对关系型数据库的结构化查询语言),甚至还诞生了结合关系型数据库的SQL模型和NoSQL数据库高性能的NewSQL数据库,数据库的类型根据不同的业务需求呈现百花齐放的生态。

c424d8f3fc960384331a2e6055017d4a026c2dac

▲ NoSQL数据库示例

百花齐放的数据库行业

数据库可以根据其存储结构、存储内容的类型和应用方向等多种方式进行分类。最常见的按存储结构进行分类,大致可分为关系型、非关系型和多模数据库。当然有的数据库公司可能有多种类型的数据库产品,如Oracle、Microsoft等,在此按他们最主流的产品进行划分。

8fb97295b08d6b3f7de5955a505f9362ecbe2dac

▲ 部分典型数据库按存储结构分类

关系型数据库:也是大家最熟悉的数据库之一,包含如Oracle、MySQL、IBM DB2、SQL Server等传统关系型数据库,也包含通常用于做数据分析的MPP数据库(Massively Parallel Processing,大规模并行处理)如Greenplum、Vertica、Teradata等,当然这些MPP数据库也往往被大家称之为数据仓库。另外一些NewSQL数据也依然保持了关系型数据库的这一特点。

非关系型数据库:近年来发展迅速的非关系型数据也越来越多样,如几乎每一家互联网公司都会用到的Key-Value(键值对)数据库Redis,用于高并发情形下进行缓存处理;擅长于存储树形结构的文档数据库MongoDB;近年来AI发展带来的用于处理和存储知识图谱的图数据库Neo4j、GraphDB;用于大数据批量数据处理和即时查询的列式存储;针对物联网时序场景的时间序列数据库InfluxDB等。

多模数据库:由于数据本身形态多样,兼容不同数据格式的多模数据库也越来越被大家重视。一些传统的关系型数据库或者NoSQL数据也开始支持多种数据结构的存储,如Oracle和Redis都支持文档结构的存储方式。

前面也提到数据仓库的概念,其实关于数据库和数据仓库有一个更好的定义区分就是大家经常听到的OLTP(联机事务处理,On-Line Transaction Processing)和OLAP(联机分析处理,On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要面向日常的高可用的事务处理,增删改查,例如银行交易。OLAP是数据仓库系统的主要应用场景,以查询为主,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。数据仓库本身除了传统的如Teradata、Greenplum等MPP架构,也有近年来比较火热的基于Hadoop架构/HDFS文件系统的上层查询引擎。另外,新一代基于文件的分布式搜索和分析引擎Elastic Search也成为数据分析的标配。

666d7d10cbfd3a1c1d45cd8bb92b45d423c93230

▲ OLTP VS OLAP数据库

数据库并不平坦的商业化之路

提到商业化数据库就不得提传统四大厂商Oracle、IBM、Microsoft、SAP,他们的关系型数据库曾经一度占据了商业数据库市场超90%的市场规模(来源:Gartner2016年数据)。但近年来数据类型的多样性发展,也催生了一系列其他类型的数据库,对传统商业数据进行替代或者部分替代,比如在银行领域开始尝试对一些非核心业务使用开源或者国产解决方案。这些都一定程度上抢占了国外传统数据库厂商的份额,使得其市场规模呈现不增反降的趋势。

1d2c70fb09f40b692b9e8f166d49cf74c0154f01

▲ 传统商业数据库市场规模变化 Source:Gartner, Inc)

同样在OLAP领域,传统分析型数据库市场规模也面临挑战。近年来以Hadoop技术来构建的数据仓库解决方案也蚕食了不少传统如TeraData(目前市值超50亿美金)等基于MPP架构的市场规模。

b882ac7397e81b74e616fe5253183343b10cfc44

▲ OLAP领域代表TeraData收入变化

再来看新型数据库的变现能力:成立于2007年的文档数据库MongoDB于2017年在纳斯达克上市(目前市值约80亿美金),近几年收入增长迅速,每年收入增长率均超过50%。但公司整体收入却不高,其2018年收入为2.67亿美金,这本身也和其商业模式相关。MongoDB以开源方式进入市场,迅速积累了大量用户,并于2013年推出自己的商业化版本,用更好的工具和服务来进行商业化变现,但依然有绝大多数客户使用其社区版本。由于其数据库最初的定位和设计也让它暂时无法撼动传统关系型数据库的地位。

bf9fded25e335cad7b45d9546ad7e751fce1db28

▲ NoSQL领域代表MongoDB收入变化

DB-Engines网站根据不同数据库在网页、Google Query、技术社区、人员招聘等被提到的频次对其进行综合打分做了现有数据库系统的受欢迎度排名。可以看出来传统关系型数据库如Oracle、MySQL、SQL Server等依然保持较高的搜索频度,而新型数据库/搜索引擎如Redis、MongoDB、ElasticSearch、Hive等则越来越被大家关注。而这其中如PostgreSQL、Redis、ES、Hive等大量的开源数据库/引擎近年来快速增长对商业化数据库的冲击也是影响商业数据库收入增长的重要原因之一。

3ed1477ff8fdbcdbcb9ef9757bd14bb0ee61ed13

▲ 若干典型数据库受欢迎度排名

除了独立上市,在海外软件和数据库企业被收购也是常见的一种退出方式。在数据库领域,历史上发生的数据库收购案例超过35次,而单笔最大的要数SAP以58亿美金收购美国的关系型数据库Sybase了。

3aecacb0bb3833a93d42345a605c004ede92f311

▲ 近年来大型数据库收购事件

国内外数据库差距在哪里

上文提到的绝大多数数据库都是由国外厂商甚至国外个人开发出来,能称上优秀的国产数据库寥寥无几,这其中一方面是基础软件人才的缺失导致企业技术和产品的研发能力不足,另一方面缺乏优质客户的早期陪跑也让国产数据库的升级迭代举步维艰。

IT产业发展较晚、基础软件人才缺失

1978年Oracle推出第一版数据库时,我国才刚刚恢复高考。而计算机在国内开始被大家大规模熟知也是在上世纪90年代,到现在才短短几十年的历史。近年来由于互联网的兴起带动国内IT从业人员的大幅增长,但主要的开发者还是集中在上层应用和功能性软件的开发。对于底层软件的研发难度也让大多IT企业和从业人员望而却步。

产品研发周期长

数据库是基础性软件,好比汽车的引擎一样,是系统的关键部件,具有“牵一发而动全身“的特性。这要求数据库本身有高稳定性、强容错性和高安全性,因此数据库的开发不仅仅需要大量研发人员的长期投入,往往还需要配套的严格的测试体系和优秀的顶层产品设计。不仅如此,数据库本身服务于行业应用,因此一款成熟的数据库还需要在实际场景中不断的历练打磨。传统的关系型数据库中,例如Oracle、IBM DB2等,都历经几十年才达到现在的版本。

客户数据库替换成本高

虽然有基础软件“国产自主可控”的政策推动,但国内大型银行、运营商等核心交易、计费系统长期依赖于Oracle、IBM等数据库系统。对于大型企业而言,核心系统是其业务的命脉,而数据库又是其中的基石,数据库本身的稳定性和安全性优先于一切,因此对他们而言,核心系统的完全替代并非易事。

虽然数据库国产化举步维艰,但并非没有机会,随着这些年的技术积累,国内也出现了一些优秀的数据库企业。

如达梦数据库已经在国家电网、中铁建等一大批的央企的核心系统中获得了大规模的应用,南大通用在中国银行、中国联通等大型企业也都有不错的商业落地。创业公司中如PingCap、Kyligence、柏睿、巨杉数据库、偶数科技、涛思数据等国产数据库厂商也取得了可喜的成绩。另外国内有技术实力的互联网巨头如阿里巴巴等也投入了大量人力在底层数据库上,研发了如OceanBase等优秀的数据库。

无论未来国产数据库走向如何,这些投入在底层基础软件研发的公司永远值得大家尊敬。

新的挑战带来新的机遇

纵观数据库和企业信息化软件的发展史,往往都是需求驱动技术的更新迭代。近年来随着云计算、大数据、人工智能、物联网等场景的提出和落地,对数据库的要求也越来越高,随之也带来数据库技术本身的发展。

云计算的发展让所有IT基础设施都有云化的可能,在数据库领域也有DBaaS(Database as a Service)数据库被提出,而其中比较有代表性的如AWS的RedShift,独角兽企业Snowflake等。

31aabb1bd90d2d57d9051f09132c79a96f736500

▲ DBaaS部分数据库系统举例

在大数据生态下,围绕Hadoop和新的流式计算等大数据框架有一系列新型的数据仓库方案被提出;随着人工智能领域的蓬勃发展,在需要逻辑推理的应用场景中,如风控&反欺诈、ChatBot等,知识图谱是其核心模块。而知识图谱本身的存储可以利用图数据库如Neo4j、GraphDB等来构建和存储;另外垂直行业的场景下,由于其数据本身的行业特点也可能需要特殊的数据库才能更好的支持,如刚刚完成D轮融资的InfluxDB就是应用于物联网场景的数据库。另外一些新的需求如OLAP和OLTP的同时支持;对非结构化文本甚至图片的支持,未来也可能是大家关注的方向。

在当前数据大爆炸的时代,对数据的存储和处理要求也越来越高,也将驱动新一轮的数据库系统的研发。在去国产自主可控的背景下,随着底层技术积累越来越深,国产数据库也存在着巨大的商业机会。

 

获取更多资讯,欢迎关注微信公众号: atSting