未来的数据库是什么样子?

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-2-10 13:30:53 | 显示全部楼层
注1:本文仅仅是一个思考过程,观点仅供参考。
注2:给出定理没有推导过程的行为都是耍流氓。
先给出结论:未来数据库是多种多样的,但是,数据库依然是它原来的样子。
1.什么是数据库?
    只要接触过数据库的人,都大概都是数据库是什么?一个数据存取系统。当然,随着发展逐渐增加了很多定语,比如:一个高可用的高扩展的兼容多种数据模型的云原生数据库系统。为了隔离物理和应用之间的依赖问题,增加了数据模型,模式等;再进一步,为了保证数据安全,增加了故障恢复,备份,复制等机制;再进一步,为了保证并发访问的数据可靠性,增加了事务,隔离级别等机制;为了满足不同的负载模型,处理OLTP,OLAP,以及当下很火的HATP这样的特性;为了适配更多的数据模型,出现了半结构化,结构化,图,空间等特种数据库。总的来说,数据库的发展如同在池塘中间扔一个石头,荡起了一圈一圈涟漪。
    如果要全面地了解数据库的概念,建议精读《数据库系统概论》,人大王珊老师版本或者北大翻译的国外这本都可以:https://www.db-book.com。
2.数据库的发展?
    从时间上来看,数据库是计算机领域的一个组成部分,发展历史自然随着计算机的发展一起。现在算起来,从1970关系模型提出来到现在也有50多年了,当然国内要稍微再晚一点点,而且本身计算机领域我们都要晚,几乎都是跟着国外节奏。从一开始的软硬件,到后面的操作系统,浏览器,再到基础软件,再到业务系统,再到巨头企业,早期的国内互联网仿佛是一场“洋务运动”。   所以,数据库这块,到目前为止,都是DB2和Oracle统治了这个宇宙,至少统治了“商业数据库”这个不太小的“小宇宙”。
    更尴尬的是,国产数据库的发展是一个令人着急的事情,和国足的情况有得一拼。随着“宇宙第一”的国产数据库越来越多的出现,不出意外的话,我们在数据库行业的实力在大幅提升,万人捞鱼害还怕水深?
    在基础理论上面,数据库的数据模型,事务模型,并发模型,访问机制等几乎都处于一个不断前行的状态,这里的前行不包括那些一直想着弯道超车的选手。关于扩展性问题,分布式和数据库的结合体是这两年最火的话题,无限的水平扩展带来性能和容量的“完美提升”,一条康庄大道摆在我们面前,“5G数据库”即将统治宇宙。相比之下,IBM这些巨无霸显得冷静得许多,默默地完善数据库的特性,兼容更多的数据类型,支持更多的场景特性,比如分析和机器学习相关的特性。
     在商业市场中,数据库作为底层应用从来都是求稳不求新的设施。不管是刚成立的创业公司,还是百年传统企业,对于数据库的选型方面,成熟和可靠是准入首要条件。当然,这不是一个“闭关锁国”的“晚清”心态,我更欣赏那些在自身业务成熟,企业发展走上正轨后,不断加大对基础设施的持续迭代的投入的企业。数据对于一个企业可以带来致命性的打击,没有退路的革新显得很不明智。所以,大部分企业现在都在积极探索,默默观望,认真学习那些第一个吃螃蟹的人的“成功经验”。
    国内有一个厂商:达梦。培养了一批又一批的数据库人才,值得赞扬。
    还有一些厂商,培养了一批又一批数据库忽悠人才,值得“表扬”。
3.数据库的应用场景
    目前对于数据库应用场景比较大的场景划分:OLTP,OLAP和HATP。滑稽的是,作为混合模式的HATP其实非常完美的包括了所有的应用场景,任何一个应用系统,肯定多多少少会出来短事务和分析查询。那区分OLTP和OLAP的意义何在?当然,一方面TP数据基本上都可以满足一些常规的统计分析,类似BI;另一方面,当下特别火热的AI类分析系统,大量的数据聚合,排序等分析类操作,AP是面向的这一类更面向分析系统提供数据存取服务的场景定义。换句话说,在大数据技术体系中,随着hadoop,spark的体系发展,数据库希望能力越过ETL来直接提供数据服务,也就是用一个分布式数据库去替换一个分布式存储。无论这个选择是否合理,回过头去最开始的问题,任何一个应用系统都会有这样的需求吗?显然绕了一圈后,就可以轻松说服对方:你的系统肯定也存在一些分析场景,而HATP可以完美覆盖。是不是很神奇?
    举个例子:每个家庭都有锅,有的是煮饭的,有的是炒菜的,偶尔炖炖汤,现在有一个既可以炒菜,又可以炖汤,还可以烧烤的万能锅,以后只需要一个锅就好了。”ALL IN ONE”!
4.云和数据库
    另一个问题就是云,云原生数据库,Cloud Native。。。虚拟化也发展很多年了,无论是半虚拟化还是全虚拟化;无论是虚拟机还是容器技术,都在不断地细化隔离进程资源,从而实现资源的有效利用和云服务能力。有一句话比较赞同,具备云特性的服务,就是云原生的。换句话说,云原生不是准入门槛,而是对服务本身的描述,比如服务的扩展能力,容错能力,交付能力等。
    对于数据库是否上云,除了和一般应用程序要考虑的改造问题外,数据库作为有状态的服务,还要考虑数据安全,存储,高可用和故障恢复问题,当然还有非常重要的是性能损耗问题。个人看法,如果出发点是思考数据库是否上云,建议慎重;如果出发点是考虑是否在云上建设数据库服务,建议是需要。看起来是一回事?其实有本质区别,前者更容易成了为了上云而上云,特别是单独把数据库上云的情况,必然会做出一些妥协。后者则是基础云先行,从应用到中间件到数据库服务,全线做云化适配和改造,结合微服务和大中台两极化发展,无论未来是平衡态还是处于某一端,对于数据库来说,弹性服务能力显得应变能力更好。
5.数据库原来的样子
    当潮水退去,相信数据库会回归本质,成为它原来的样子。在存储管理,索引,查询优化,并发,锁,事务,故障恢复这些数据库自身应该去解决问题上不断深耕。当然随着硬件的发展,未来的处理器,存储计算,内存计算的发展,数据库相应的实现也会随之变化。最终,数据库依然是一个数据存取系统,提供可靠的高效的数据存储和查询服务,仅此而已。而基础理论突破才是关键,比如数据模型,事务控制,CAP等。如果存储服务可以无限扩展而不用牺牲性能,分布式意义何在?分布式计算的网络开销和调度消耗,与其带来的扩展能力如何兼得?未来,业务系统会越来越大,还是会越来越小,继而是需要“小而美”的数据库,还是需要“大而全”的“数据库中台”?或者是共存?无论是哪一个路线,对于数据库基础要求,从未发生变化。
6.数据库的未来
    计算机行业日新月异,新技术不断出现,老技术不断淘汰。Cobol程序员80岁还要出来维护代码,可见快速迭代带来的断层很明显。开发语言的快速变化让刚入行的从业人员十分茫然。而操作系统,编译原理,数据库这些底层服务,变化相对要慢一些,带来的影响确更大更深远。未来的数据库,依然会不断进化:
    多模型化。数据模型是数据库的基础,也是理论核心。关系模型称霸这么多年,不断有新的数据结构出来挑战,比如json,xml,object,图,空间等,未来数据库会支持更多类型的数据模型,同时也期待更好的数据模型出现,
    场景选型。依据系统所处的场景,数据类型,数据规模,访问模型等特性来选择合适的数据库会更普遍,选择一个合适的数据库比选择一个万能的数据库更明智。这里云化的优势会比较明显,云数据库的可变性更强,可以适配不同场景,规模,负载的应用场景。这里有个未知数,关于复杂化分析型场景,数据库能不能占据一定比例还是有待观望的。
    数据集成。从业务系统运行开始,数据库就开始不断积累,越来越大,到达存储瓶颈时,就产生了拆分、扩展需求。数据仓库,实时系统和分析系统这三者之间数据集成问题,将是亟待解决的问题,涉及到数据同步,类型转换等问题。可能存在一个处于数据系统之间,企业之间,行业之间的“数据总线”,连接这些数据源,如同人的大脑一样,有一个递进的思考过程。
回复

举报 使用道具

4

主题

8

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-2-10 13:31:25 | 显示全部楼层
冷静,睿智,理性,中立的好文。
[赞同]
回复

举报 使用道具

您需要登录后才可以回帖 登录 | 立即注册
快速回复 返回顶部 返回列表