传统数据库缺陷
来源:互联网 发布:新版淘宝二手手机回收 编辑:程序博客网 时间:2024/05/17 20:11
(1) 并行关系型方案
多个独立的关系数据库服务器,访问共享的存储资源池。
优势:采用多个关系数据库服务器、多个存储,与原有的架构相比扩展了存储和计算的能力。
劣势:计算与存储分离,数据访问存在竞争和带宽瓶颈;支持的关系数据库服务器数量有限;只能向上扩展不能横向扩展。
适用范围:适合复杂的需要事物处理的应用。
(2) Hadoop方案
有大量独立的服务器通过网络互连形成集群,每台服务器有独立的存储;
优势:计算与存储融合,支持横向扩展,有更好的扩展性;
劣势:解决数据冲突时,需要节点间协作。
适用范围:数据仓库和离线数据分析;大规模在线实时应用。
(1) 软件架构(扩展性):
关系型:扩展时需要静态停机扩展,数据需要重新分布;容错能力不存在中间结果,出错时需要重新执行查询。
Hadoop:扩展能力动态无缝扩展,自动扩展;容错能力只需要重新运行出错的子任务。
(2) 数据模型:
关系型:二元关系模型;静态数据模型。
Hadoop:非结构化或者多维MAP模式;动态可变数据模式
(3) 分析方式:
关系型:SQL查询语言
Hadoop: 广泛的数据分析,包括SQL,M/R,Rlauguage,数据挖掘,预测性分析。
存储类型
数据存储
数据读取
数据压缩
行存储
数据按行存储∃ ∃ ∃ 表中每行记录的所
有属性在物理空间上存储在一起
查询时将一行的所有属性读出∃ 产生
大量I/O负载
对于行中所有记录, 采用统一的压缩
方式
列存储
数据按列存储, 表中同一属性在同一
列中
只访问查询涉及到的列∃ ∃ ∃ 大量降低
系统I/O
数据类型一致、特征相似∃ ∃ ∃ 高效压
缩
在hadoop出现以前,在对海量数据分析时一般都是采用关系型数据库中进行,如faceboo库的数据仓库,完全是由一个Oracle实例来执行的,但是这些传统的关系型数据库中都存在着扩展问题和性能问题。可扩展性主要表现在表空间不足的问题,如果要对表空间进行扩容,这需要新增机器,需要将这些数据库中的数据同步等问题。
性能问题主要表现在,传统的关系型数据库中,都存在对数据库事务一致性的要求,而在数据挖掘或者数据分析过程中,并不需要严格要求数据库事务特征和对读一致性的要求。
在国内,为了解决海量数据的问题,在2004年开始使用基于Oracle产品构建企业级的数据仓库(EDW),并于2007年、2008年和2009年三次利用Oracle RAC10g和Oracle RAC 11g产品对数据仓库进行了升级和扩容,将数据仓库部署在全球领先的RAC(Real Application Clusters)系统。这个系统集成了集群管理软件和存储管理软件,当系统规模增加时,用户可以按照需要进行扩展系统,以保证性能。但是RAC存在着单机管理复杂,对硬件要求相对较高的问题。甚至在系统规划较差时性能不如单节点,还可能存在增加软件成本(如果使用高配置的服务器,Oracle按照CPU个数进行收费),对操作人员要求较高的问题。
传统数据库是以数据块来存储数据,简单来说,你的表字段越多,占用的数据空间就越多,那么查询就有可能要跨数据块。在大型系统中一张表有上百个字段,并且表中的数据上亿条也有可能。因此会带来数据库查询的瓶颈。数据库中表的记录数是多少对查询的性能有非常大的影响。而一般的解决办法是分表或分库,用来平衡数据库运算的压力,那么又会带来新的问题,如:分布式事务、全局唯一ID的生成、跨数据库查询等。
如果采用一种基于列存储的模式,由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的。按照列存储每个字段的数据聚集存储,可以动态增加,并且列为空就不存储数据,节省存储空间。每个iduan 的数据按照聚集存储,能大大减小读取的数据量,查询时的命中率就会提高,使查找更为直接,无需考虑分库]分表,来提高命中率、减少IO等瓶颈。
Hbase数据库支持数据自动切分存储,并支持高并发读写操作,使得海量数据存储自动具有更强的扩展性。
Hadoop 本身就支持通过JDBC 从数据库中抽取数据。大部分数据库系统有批量导出、导入功能。无论是哪种情况,将整个数据库中的数据经常性地或者以增量的方式导入到Hadoop 中来都是很容易的。由于数据库系统存储的数据减少,数据库系统的软件授权成本也会得到降低。图1是Hadoop 与关系型数据库协同处理计算任务的应用场景。其中,关系型数据库系统用来处理实时数据,从而保证交易过程中的数据一致性。如果要求同一个数据库系统从
大容量数据中生成复杂的分析报表是极其耗费计算资源的,降低了系统的性能和其处理实时数据工作的能力。
Hadoop 被设计用来存储海量数据、按任意方式处理海量数据以及按需向任意系统传递数据。数据可以经常性地从关系型数据库系统导出到Hadoop 中,关系型数据库系统可以经过调整,专门用来处理交互式任务,而复杂的分析工作就可以按离线的方式交由Hadoop 来完成,对实施系统没有任何影响。
- 传统数据库缺陷
- 传统的HMTL的缺陷
- 传统防病毒技术缺陷分析
- 传统咨询的五个致命缺陷
- 传统向量空间模型的缺陷
- android 数据库缺陷!!!!
- 传统数据库的操作
- hadoop与传统数据库
- 传统JDBC操作数据库
- 传统数据库的瓶颈?
- 传统数据库安全性问题
- 传统数据库ACID
- 传统采用Client/Server架构的软件的缺陷
- 传统一号信令系统的呼叫流程及其缺陷
- 传统一号信令系统的呼叫流程及其缺陷
- 网络拥塞控制(五) 传统TCP存在的缺陷
- 网络拥塞控制(五) 传统TCP存在的缺陷
- 网络拥塞控制---传统TCP存在的缺陷
- box2d
- 安装HIVE遇到问题整理
- 软件工程
- 数据挖掘十个经典算法
- android 完整地操作数据库--日记本实例
- 传统数据库缺陷
- 组网粗游记(三)
- stm32移植FreeRTOS——port.c: Internal fault: [0xafc2db:400524]
- CSS 层叠样式表 基础知识
- 自己总结了下memcached安装部署的过程,包括出错的时候的对策
- 录屏软件小记
- 开发人员最难于打理的九项工作
- android 抽屉类slidingdrawer源码解析及运行调试
- drbd配置