
数据库存储图
大数据时代的工业发展经常会用到的数据库,并不都是我们天天而耳熟能详的Hadoop、spark。实时型,时序型,关系型,文档型,键值型等等数据库五彩缤纷,趣味无限,和时代的美食的丰富度难分伯仲。当然前面那俩也不是什么数据库,都是说给外行听的故事引子。
上次在中关村创业大街的3W咖啡和几个大数据平台构架牛犊聊天,好像数据库三个字已经不再大数据的生活圈了,深感有点儿时代感不强了。带着一小丝遗憾翻翻陈年旧戏,忽然感觉有话要说,先上图(来自DB-Engines)。

像小朋友的涂鸦,分不清谁是谁了(暗笑)。数据库有这么多,各利益体对数据的割据有多么的诸侯,原来数据库江湖也不简单,什么语言框架,什么系统协议,貌似也平分秋色。
多年前被邀请参与某平台的整体构架,某平台的大老板也修炼了一些道法,讨论期间当面提了一个需求,“我们的平台要做到能接入全部的数据库类型,让用户都能自享其得。”席间,BAT某前构架两眼看着我,我苦笑:“理论上应该没问题!”,性情中人,不想中伤资金,更不想让兄弟和团队绝望。顺口说了一句“3年预算如何?”,大老板瞬间脸黑无语。 这只是一个现实的场景故事,作为构架的从业人员恐怕产品选型就已经让构架们头疼不已了,当下的数据产品选型更是让人烧坏肉脑了。数字社会有人的地方就有数据江湖,庄子说“不遣是非,与世俗处。”平常心看数据江湖吧。那么分享一下面对数据构架的产品有多少神仙,有图为证(350家):

前30名
当然,这里各路神仙没有都在,上榜排名说明不了什么,也许有一个是欧洲某国的核心数据库呢,也说不定。前十恐怕贡献最大的也是我大中华的泱泱庶民。
- 关系型数据库(RDBMS)
- 兴起于199x-200x年的时代,从C语言的二叉树、链表等数据结构遍历开始,众多数据英雄逐鹿数据原,Dbase、Foxpro、oracle、DB2等等等等。也创造了无数辉煌,时至今天还有哪路神仙没有隐退,上图(140家):
- 看这趋势想淘汰关系型的RDBMS估计尚需时日,同时也说明关系型给IT行业带来了太直接的便利和经济价值。选型,呵呵!您看着办吧。

- 键值(Key-Value型)
- 这类数据库的特点是知道Key是什么,直接用Key取得对应的值,不用像关系型数据库那样通过table-scan的方式找到对应的数据目标值。key已知的场景下非常高效。本篇只说有谁,赘述细节。

- 文档存储型
- 以MongoDB为例,其独特的数据处理方式,可以将热点数据加载到内存,故而对查询来讲,会非常快,很消耗内存;同时由于采用了BSON的方式存储数据,故而对JSON格式数据具有非常好的支持性以及友好的表结构修改性,文档式的存储方式,数据友好可见;这片江湖有47家神仙上榜如图:

- 实时数据库 RTDB
- (原文:https://blog.csdn.net/yekoufeng/article/details/82857614)
- 实时数据库是采用实时数据模型建立起来的数据库,用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调和资源分配算法。主要应用于工业监控,如:电力、石化、化工、钢铁、冶金、造纸、交通控制和证券金融等工业领域的监控。概括地讲,实时数据库系统有如下特点:
- 时间约束:
- 实时数据库是其数据和事务都有明确的时间限制的数据库。在实时系统中,具有时间约束的数据主要是来自于外部的动态数据,以及由这些数据求导出的新的数据。数据库中的数据必须如实反映现场设备的运行情况。
- 事务调度:
- 实时数据库系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果所产生的时间。事务调度既要考虑事务的执行时间,也要考虑事务的截止期、紧迫程度等因素。
- 数据存储:
- 实时数据库主要承担系统所有实时数据的存储和管理,为相关的功能提供快速、正确的实时信息。为了达到实时性,实时数据库在系统运行过程中,应常驻内存,以保证读取速度。对于实时性要求不高的数据可存放在外存储空间。因此,在实时数据库设计时,要妥善处理时间与存储空间的矛盾,以保证系统的实时性。
- 数据在线压缩:
- 在实际的数据存储中,实时数据库还要解决如何高效处理海量数据的问题。如果数据被原封不动地存储势必需要大量内存和磁盘空间以及耗费大量的时间,因此必须对实时数据进行在线压缩存储。


- 时序型数据库(Time serial DB)
- 百度百科这么介绍:时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。时间序列数据主要用在电力行业、化工行业等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。

31家如图
- 时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。时序数据库其实主要是实时数据库的数据存储部分,但是,由于它采用了新的技术,极大地扩展了数据的容量,除了数据点和时间戳之外,还提供标签和内容等对数据的描述,并且提供各种聚合查询,弥补了实时数据库的缺陷。
就先分享这么多,诸多不准确的信息,请高手指教。其实市面上应用的还有很多数据库引擎。