1.传统数据库的优劣势
数据库技术产生于20世纪60年代末期,是计算机领域中最重要的技术之一,是一种比较理想的管理技术。
数据库(Data Base)可以看作是与现实世界有一定相似的模型,是认识世界的基础,是集中、统一存储和管理某个领域信息的系统,它根据数据间的自然联系而构成,数据较少冗余,且具有较高的数据独立性,能为多种应用服务。
而传统的数据库是指关系型数据库,如MySQL、Oracle、SqlServer等。
1.传统数据库的优势
●灵活性和建库的简单性:从软件开发的前景来看,用户与关系数据库编
程之间的接口是灵活与友好的。
目前在多数RDDMS产品中使用标准查询
语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。
与关系数据库接口的应用软件具有相似的程序访问机制,提供大量标准
的数据存取方法。
●结构简单:从数据建模的前景看,关系数据库具有相当简单的结构(元
组),可为用户或程序提供多个复杂的视图。
数据库设计和规范化过程也
简单易行和易于理解。
由于关系数据库的强有力的、多方面的功能,已
经有效地支持许多数据库纳应用。
●易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)
大大减低了数据冗余和数据不一致的概率。
2.传统数据库的劣势
●数据类型表达能力差:从下一代应用软件的发展角度来看,关系数据
库的根本缺陷在于缺乏直接构造与这些应用有关的信息的类型表达能
力,缺乏这种能力将产生以下有害的影响,例如:大多数RDBMS产品
所采用的简单类型在重构复杂数据的过程中将会出现性能问题;数据
库设计过程中的额外复杂性;RDBMS产品和编程语言在数据类型方面
的不协调。
大多数现代的RDBMS产品已成熟地用于商务和财政方面,而这些领域不要求很高和很复杂的数据模型。
虽然这些产品多多少少克服了
一些以上所述的缺点,但从理论上看关系数据模型不直接支持复杂的
数据类型,这是由于第一范式的要求,所有的数据必须转换为简单的类型,如整数、实数、双精度数和字符串。
对于工程应用来说,这种不能支持复杂数据类型的典型结果就是需要额外地分解数据结构工作,这些被分解的结构不能直接表示应用数据,且从基本成分重构时也非常繁琐和费时间。
●复杂查询功能差:关系数据库系统的某些优点也同时是它的不足之
处。
虽然SQL语言为数据查询提供了很好的定义方法,但当用于复杂信息的查询时可能是非常繁琐的。
此外,在工程应用时规范化的过程通常会产生大量的简单表。
在这种环境下由存取信息产生的查询必须处理大量的表和复杂的码联系以及连接运算。
除非这些查询以固定的例行程序方式提供,否则用户就必须对SQL非常熟悉,以便适当地浏览数据库,查出所需的信息。
然而,一旦查询方式按固定例行程序方式进行,用户最终就进行应用软件的常规维护。
但应用或人机接口软件的变化又可能要求经常修改例行的查询,数据库结构的变化也可能导致例行查询程序以及应用或人机接口软件的失效。
由于这些原因,关系数据库系统的维护开销可能是很大的。
由于关系数据库不能提供足够的构造能力及性能方面的原因,在进行较复杂的数据库设计过程中,不可能将许多工程问题直接分解成一些简单的部分。
由于缺乏直接指针存取方法,所以查询有关的信息需要花费时间。
●支持长事务能力差;由于RDBMS记录锁机制的颗粒度限制,对于支持
多种记录类型的大段数据的登记和检查来说,简单的记录级的锁机制是不够的,但基于键值关系的较复杂的锁机制来说却很难推广也难以实现。
●环境应变能力差:在要求系统频繁改变的环境下,关系系统的成本高
且修改困难。
在工程应用中支持"模式演变"(schema evolution)的功能是很重要的,而RDBMS不容易支持这种功能。
另外,关系数据库和编程语言所提供的数据类型的不一致,使得从一个环境转换到另一个环境时需要多至30%的附加代码。
2.主流的数据仓库及其优劣势
1.Teradata
Teradata近几年一直处于数据仓库领导者地位,我行数据仓库也采用Teradata产品。
Teradata数据仓库产品线丰富,能够适应各种规模的数据仓库。
产品主要是集成的专用数据库设备(集成了服务器、存储、操作系统和数据库),有单节点系列(面向开发和测试)、1系列(面向大规模数据存储分析)、2系列(面向部门级数据仓库)、4系列(采用固态硬盘,面向高速分析)、5系列(面向企业级数据仓库)。
Teradata的数据仓库解决方案齐全,以前一直走“高端策略”,在大规模企业级数据仓库客户中占有绝对优势。
不过,在其他产品的竞争下,逐渐向中端客户领域扩展。
产品优势:
●大数据量处理性能较强
●可线性扩展,实现投资保护
●数据库易于管理和维护
●第三方软件产品丰富
产品不足:
●专用设备,环境搭建复杂,扩展时停机时间较长
●混合负载控制存在问题
●各系列产品互联困难
●价格较高
Oracle Exadata
Oracle是数据库产品的领军人物,占据全球关系型数据库市场的48%。
Exadata是其推出的数据仓库产品,通过专用的集成设备、大容量并行网格结构及Exadata Smart Flash Cache技术实现了处理高并发工作负荷的能力,产品中还增加了分区管理功能、列存储压缩等技术,大幅提高了数据处理性能,能够支持各种规模的数据仓库应用。
产品优势:
●事务类任务处理性能较好
●混合负载控制较好
●兼容Oracle产品和工具,易于使用
产品不足:
●大数量处理性能上存在不足
●部署和管理复杂,且扩展能力差
●价格和维护成本较高
2.IBM Netezza
IBM最初使用DB2提出数据仓库解决方案,并提供了独立数据库软件和数据库机的解决方案,但产品技术优势不明显,且未给予足够重视,市场逐渐萎缩。
为弥补不足,2010年IBM收购了专业的数据仓库厂商Netezza,希望利用Netezza 的技术来与Teradata、Oracle等产品抗衡。
Netezza提供集成的数据库设备Twinfin解决方案,利用专利“流式数据处理架构FPGAs”技术(硬件芯片),在数据通过磁盘时可以将无关数据快速过滤,解决了传统数据仓库产品的服务器和存储间数据流瓶颈问题,实现高性能数据处理。
产品优势:
●针对数据分析设计,性价比高
●兼容Oracle语句及主流BI工具
●系统易于管理和维护
●刀片式架构,扩展简单
产品不足:
●混合负载控制存在不足
●流技术主要适用于趋势分析,对于精确分析略显不足
3.Sybase
Sybase提供独立的数据库软件Sybase IQ 和集成的数据仓库设备两种解决方案,Sybase IQ 的核心技术是“列存储”,此技术被证明更适合于数据仓库。
首先,数据仓库一般只访问记录的部分字段,因此磁盘访问时可以不读取整条记录,只读取需要的字段,大大减少了I/O;其次,“列存储”可以获得比传统数据库更高的压缩比,在海量数据仓库中能节省大量空间;最后,由于查询中的选择条件是通过列来定义的,因此整个数据库能够实现自动索引。
产品优势:
●“列存储”技术
●混合负载控制较好
●并行查询及扩展能力强
●集成数据挖掘工具,适合实时分析
产品不足:
●列存储的一些问题(如载速度、复杂查询等方面较差)
●硬件厂商和第三方软件支持力度正在减弱
4.GreenPlum
GreenPlum近几年异军突起,以其独特的技术与传统数据仓库产品相抗衡。
2010年被EMC收购后,产品线进一步完善,提供独立的数据库软件和集成的数据仓库设备两种解决方案。
GreenPlum将SQL和MapReduce功能整合到统一的数据处理框架中,利用MPP架构的并行计算能力满足大规模数据存储和处理需求。
产品的一大特色是可与任何基于MapReduce的外部产品协同工作,容易实现当下流行的“云计算”架构;另一大特色是用户可以自行选择开放平台PC服务器搭建海量数据处理环境,降低数据仓库的TCO。
产品优势:
●支持行列混合存储,消除了单独行存储和列存储的缺陷
●可在线扩容和维护,无需停机
●数据加载速度快,可实现实时分析
●基于PosgreSQL开发,工具和应用资源丰富
●符合“云计算”发展方向
产品不足:
●使用开放平台实现,稳定性相对较差
●大数据量在节点间重分布时,其非专用网络设计易导致性能瓶。