前言:
近十年间,世界信息技术得到前所未有的发展,数据得到了前所未有的爆发。现在信息时代下一阶段发展就是数据时代,因此提出了一个数字化转型的概念,第一阶段大量的数据需要治理、优化、分类、编排,保存在不同的数据产品上面。第二阶段数据再经过治理、优化、融合、保存在不同的数据产品上面。第三阶段数据还是要经过治理、整合、转换保存在不同的数据产品。数字化转型建设过程中,数据产品的选择非常关键。但是数据种类繁多, 摆在桌子上琳琅满目一大堆选择,什么时侯我们应该选择什么样的数据产品?我们剖析数据产品的内在特性和外表特征,梳理数据库领域的关键分类标准、数据产品核心属性和指标体系、数据产品和特性、数据产品内核层次等,为行业输出标准体系建议并持续更新,助力数字化转型发展建设,形成数据产品分类和评测指标体系。
主要考虑从时间、空间、操作、使用、处理方面对数据库进行分类 ,同时也考虑产品的内在、结构等技术架构原理。
从数据库发展的时代分为层次型数据库时代、网状数据库时代、关系型数据库时代、NOSQL数据库时代、NEWSQL数据库时代。IBM创造了世界上第一个层次型数据库并用于商业,但是业务建模层次建模能力总要经历顶层回溯,技术有缺馅,于是产生了网状数据库。网状数据库也存在弊端,虽然数据对象自由互通,但是数据对象多了混乱无序、难以管理。关系型数据库横空出世,称霸江湖几十万,消灭层次和网状存在的问题,笔者看来,至今仍是关系型数据库的江湖。一天,工程师发现一些业务问题不用关系型数据库的方式解决,性能更,也能够解决问题,这就是NOSQL,全称 NOT ONLY SQL,意喻 世界上不仅只有关系型解决方法,还有其它的更好的方案。NOSQL传播一段时间,程序员和DBA怀念关系型数据的种种好处,让分布式数据库技术革命后依然保留有以前的关系型数据库特性,这就是NEWSQL。
从数据使用角度来看分为OLTP数据库、OLAP数据库、HTAP数据库。OLTP最主要面向交易,适合写多读少的场景,而OLAP最主要面向分析,适合读多写少的场景。HTAP是兼具适合交易和分析的业务场景。
从数据分析处理的方式分为ROLAP数据库、MOLAP数据库、HOLAP数据库三种方式。ROLAP对数据的处理基于全量数据的基础上,随着数据增长,处理时间线性增长。而MOLAP对数据的处理第一次处理是基于全量数据,处理后生成一个数据立方体,以后处理再去数据立方体上面去找,相对ROLAP,MOLAP方式更显灵活、轻便。而HOLAP是采用兼具ROLAP和MOLAP的特点。
从数据模型存储组织的方式分为关系型数据库、文档型数据库、健值数据库、图数据库。数据模型是计算机语言对抽象业务的理解、接入、使用,关系模型可以应用在所有的业务场景,面面俱到,不好不坏。文档模型擅长业务变化较大、需求不明确的业务场景,例如游 戏行业。键值模型更适合业务逻辑单一、数据量大的的业务场景,例如小事务的业务场景。而图模型应用复杂社交网络的问题。
从首要内存计算的偏好使用程度从低到高分为磁盘数据库【B树】、充分利用内存的数据库【LSM树】、完全使用内存的数据库【HANA】。传统的数据库大多是磁盘数据库采用B树索引,擅长读多写少的业务场景,而充分利用内存的数据库采用LSM索引,擅长写多读少的业务场景。完全使用内存的数据库尽量把全量数据加载到内存,数据库的内存大小决定业务量的大小,擅长高并发多读 的业务场景。
数据库的关键核心技术是索引和分区。索引反映了数据在计算机物理结构中的实际存储形式。从索引的目标指向性分为指定维度的数据库、固定维度数据库、维度不确定的数据库。指定维度的数据库泛指关系型、NOSQL、NEWSQL的我们常见的数据库,它们都需要一个纬度或者多个纬度做索引,根据业务的需求而设定。而固定维度数据库例如时间序列数据库只能指定时间维度做索引,按时间做好数据组织存储管理。维度不确定的数据库与众不同,由于全文模糊查找目标不确定,最后以打分的结果返回,类似搜索引擎。
指定维度的数据库: Oracle、Cassandra、HaNa
从架构组织分为中心化数据库、去中心化数据库。中心化和去中心化是对分布式数据库的两种形态。中心化架构集群里面每个节点的角色是不同的,有些节点代表大脑控制,有些节点负责身体协调,有些节点负责手脚执行。而去中心化则是每个节点里面的角色都是一模一样的。
底层数据中物理结构中的实际存储形式,分从数据单元组织分为 行数据库、列数据库、行列混合数据库。OLTP交易业务场景中必然采用行式数据,一次读取数据对象含多个不同的数据属性,OLAP分析业务场景中普通采用列式数据,一次读取数据对象含有多个相同的数据属性,方便做聚合计算。也有一些数据库有独立的行式引擎、独立的列式引擎,像OceanBase则是先行后列,行列混在一起组成一个引擎。
从数据存储物理位置分为 本地数据库、云原生数据库。在云计算之前,所有的数据库都是本地数据库。测试环境测试,我们需要安装测试数据库,生产环境上线,我们需要安装生产数据库,需要什么数据库自供自足。现在通过云端我们可以轻松几个铵钮速产生云原生数据库,支持资源自由扩展,提供健壮的商业技术支持和低的运维成本。
从代码是否开源分为开源数据库、商用数据库、商用&开源数据库,数据库毕竟是一个商品,要从市场中获取利润。代码开源也希望通过技术支持获得利润,商用更是支持数据库发展的正当理由。
从内核自主可控分为完全自主可控、半自主可控、独立自主开发,因为MySQL、Postgresql开源,通过阅读源代码掌握其精髓,在内核周边调优也就是开源的增强版, 或者深入内核进行调优是开源的升级版。增强版是半自主可控,升级版是完全自主可控,而独立自主研发抛开开源软件,完全创新开发数据库内核。




