分布式数据库设计方案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.大型分布式数据库解决方案企业数据库的数据量很大时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响最终用户的体验;当数据量很大的时候,对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响数据库的可用性和易管理性。分区表技术让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理能力,达到优化查询性能的目的。但是分区表只能把数据分散到同一机器的不同磁盘中,也就是还是依赖于一个机器的硬件资源,不能从根本上解决问题。分布式分区视图分布式分区视图允许用户将大型表中的数据分散到不同机器的数据库上,用户不需要知道直接访问哪个基础表而是通过视图访问数据,在开发上有一定的透明性。但是并没有简化分区数据集的管理、设计。用户使用分区视图时,必须单独创建、管理每个基础表(在其中定义视图的表),而且必须单独为每个表管理数据完整性约束,管理工作变得非常复杂。而且还有一些限制,比如不能使用自增列,不能有大数据对象。对于全局查询并不是并行计算,有时还不如不分区的响应快。库表散列在开发基于库表散列的数据库架构,经过数次数据库升级,最终采用按照用户进行的库表散列,但是这些都是基于自己业务逻辑进行的,没有一个通用的实现。客户在实际应用中要投入很大的研发成本,面临很大的风险。面对海量数据库在高并发的应用环境下,仅仅靠提升服务器的硬件配置是不能从根本上解决问题的,分布式网格集群通过数据分区把数据拆分成更小的部分,分配到不同的服务器中。查询可以由多个服务器上的CPU、I/O来共同负载,通过各节点并行处理数据来提高性能;写入时,可以在多个分区数据库中并行写入,显著提升数据库的写入速度。价值所在通过分区把数据放到不同的机器中,每次查询可以由多个机器上的CPU,I/O来共同负载,通过各节点并行处理数据来提高性能。冗余的数据结构(矩阵列)消除了单点故障,任何一个机器出现故障后都不会影响系统的正常运行,数据库集群能提供不中断的服务。无共享磁盘架构节省了硬件,利用中小型的服务器取代大型服务器大幅降低了硬件的成本,系统中不再有闲置的资源,降低了系统TCO(总体拥有成本)。分区把数据分成更小的部分,提高了数据库的可用性和可管理性。根据业务的需要,访问层和数据层都可以增加,集群具有良好的扩展性。中间件宿主在数据库中的创新使集群变得更透明,数据库的管理成本,以及面向数据库的开发成本都最小化。2.数据实时复制解决方案经过分析,大多数应用系统以查询操作为主,造成数据库压力迅速增加的主要因素也是复杂的查询操作,为了能够得到同一份数据的多个副本来响应用户的查询,SQLServer提供了复制技术(Replication),主要有合并复制、事务复制、快照复制等,这些技术可以有效缓解查询的压力。伴随着企业发展的需要,企业对信息实时性要求越来越高,如股票、航空票务、连锁店甚至是一些服务系统等等,这些系统的用户希望更新的数据马上就可以查询到。SQLServer数据库的复制/订阅技术复制/订阅数技术可以实现读、写分离,数据先写到中心数据库上,写成功即返回给应用程序;通过复制将数据复制到只读服务器,查询时从只读服务器查。意味着订阅端的数据和中心数据库的数据不同步,是个异步的过程,所以数据滞后严重,数据同步的实时性得不到保障,中心数据库在正常的压力下10秒左右。当访问负荷很高或者中心数据库在整理数据时,将出现大量DML操作延迟时间比较长或者出现堵塞的情况;某些修改操作需要重新建立复制关系并初始化,这期间需要停止数据库的读取服务,规模越大的应用停止的时间越长,严重影响了数据库的可用性。结论:复制订阅技术的实时性差,初始化时对系统的影响非常大;在数据复制过程中没有采用智能的策略,数据的复制速度慢;中心数据库仍然为失败转移集群模式。构建数据库集群,节点间数据同步都是实时的,数据是一致性的,可以部署为读、写分离,也可以部署为所有节点可读可写;中间件监测到数据库变化并同步数据,数据同步完成后客户端才会得到响应,同步过程是并发完成的,所以同步到多个数据库和同步到一个数据库的时间基本相等;另外同步的过程是在事务的环境下完成的,保证了多份数据在任何时刻数据的一致性。中间件在同步数据时采用了多项智能同步策略,满足了不同类型的应用模式,可以同步数据,同步SQL语句,并行执行SQL语句,升级数据库的锁,启用数据压缩等。同步过程是在SQLServer的执行环境中进行的,整个操作是在事务的环境下完成的,解决了数据实时性问题,满足了用户对数据实时性的要求。中间件在同步数据时采取了智能同步策略,同步速度更快;提供了多种人工干预的机制,对数据库表结构的调整、批量更改数据等操的时间大幅缩减。无需搭建失败转移集群,中心数据库Cluster中闲置的一台机器被利用起来,提高了整个系统的使用率;系统支持无共享磁盘架构,可以节省共享的存储设备。连接数据库,提供专门针对数据库系统的负载均衡软件,无需使用昂贵的均衡硬件,无需程序员自己实现。提供故障检测及失败转移功能。3.数据库选择在SQL中使用Oracle链接服务器,因为是异地数据,在SQL中的更新,删除等是隐式事务,而在Oracle中是显示的,所以直接调用速度是很慢的.并且很容易崩掉。4.数据查询1秒钟时间,在几千亿条话单数据中找到用户想要的数据,在分区、并行查询、列存、集群等技术统统粉墨登场仍无法满足响应要求时,数据压缩和索引技术成为了致胜的关键。无论是使用传统的B树索引,或通用的压缩算法,都不是问题的正解,在如此大的数据量下,需要使用更加专业高效的技术方法。基于特定条件(产品型号、产品名称、起止时间等)组合的详单查询,绝大多数查询只会返回少量的结果压缩总体结构压缩的主要目的不是减少空间占用,而是提高查询性能CPU平均处理带宽3.6GB/秒(7000万行/秒/核),I/O平均处理带宽300MB/秒,通过压缩提升I/O带宽,实现CPU与I/O处理均衡,提高查询性能列内规则使用通用压缩算法LZMA:CPU处理带宽太低压缩比18.9:1,解码速度171MB/秒/核(折算后)CPU处理带宽991MB/秒,I/O处理带宽5.7GB/秒LZOP:压缩率太低压缩比7.2:1,解码速度891Mb/秒/核(折算后)CPU处理带宽2.4GB/秒,I/O处理带宽2.2GB/秒列内规则对压缩的要求压缩率不低于15:1CPU处理带宽不低于5GB/秒索引查询高选择率的特点适合选择索引传统索引空间占用大维护成本高,对装载速度影响大对索引的要求占用空间对压缩率贡献可忽略不计维护开销对装载速度无明显影响选择率接近于数据的实际选择率,远快于表扫描列内规则传统索引的不足维护成本高对数据装载速度影响极大先建模式下:索引需要同步维护,随机插入影响性能,插入过程中无法引入压缩后建模式下:需要大规模的排序,创建成本高空间占用大以B树为例,键值,ROWID二元组,按照键值顺序排列,按列压缩ROWID随机性强,难以被压缩,整体空间成本6字节/分片索引技术要点:将表按照一定行数据分成多个数据包为每个压缩包建立其中各列的摘要信息(如最大值、最小值),所有数据包上的属于特定列的全部摘要信息,构成该列的分片索引利用摘要信息,来判定对应的数据包中是否包含满足特定的查询条件的行,如确定不存在这样的行,则整个数据包无须被解压主要优点:索引在每个数据包生成之后即自动生成,无后续维护成本摘要信息空间占用小,通常不足被索引的数据的1/10采用合适的摘要信息,可以实现接近于传统索引的过滤效果最后达到的数据要求是:高压缩比、高性能,对应用完全透明支持行列混合存储水平分区支持多种方式的分区策略,支持二级分区支持并行查询和智能化分区过滤高可靠性支持多粒度备份恢复,提供在线并行备份恢复支持

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功