分布式数据库设计方案Word下载.docx
《分布式数据库设计方案Word下载.docx》由会员分享,可在线阅读,更多相关《分布式数据库设计方案Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
![分布式数据库设计方案Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/22/8904bfbc-f82a-46f6-a46b-0cac13fa6ee7/8904bfbc-f82a-46f6-a46b-0cac13fa6ee71.gif)
对于全局查询并不是并行计算,有时还不如不分区的响应快。
库表散列
在开发基于库表散列的数据库架构,经过数次数据库升级,最终采用按照用户进行的库表散列,但是这些都是基于自己业务逻辑进行的,没有一个通用的实现。
客户在实际应用中要投入很大的研发成本,面临很大的风险。
面对海量数据库在高并发的应用环境下,仅仅靠提升服务器的硬件配置是不能从根本上解决问题的,分布式网格集群通过数据分区把数据拆分成更小的部分,分配到不同的服务器中。
查询可以由多个服务器上的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:
1
CPU处理带宽不低于5GB/秒
索引
查询高选择率的特点适合选择索引
传统索引
空间占用大
维护成本高,对装载速度影响大
对索引的要求
占用空间对压缩率贡献可忽略不计
维护开销对装载速度无明显影响
选择率接近于数据的实际选择率,远快于表扫描
列内规则
传统索引的不足
维护成本高
对数据装载速度影响极大
先建模式下:
索引需要同步维护,随机插入影响性能,插入过程中无法引入压缩
后建模式下:
需要大规模的排序,创建成本高
以B树为例,<
键值,ROWID>
二元组,按照键值顺序排列,按列压缩
ROWID随机性强,难以被压缩,整体空间成本>
6字节/
分片索引
技术要点:
将表按照一定行数据分成多个数据包
为每个压缩包建立其中各列的摘要信息(如最大值、最小值),所有数据包上的属于特定列的全部摘要信息,构成该列的分片索引
利用摘要信息,来判定对应的数据包中是否包含满足特定的查询条件的行,如确定不存在这样的行,则整个数据包无须被解压
主要优点:
索引在每个数据包生成之后即自动生成,无后续维护成本
摘要信息空间占用小,通常不足被索引的数据的1/10
采用合适的摘要信息,可以实现接近于传统索引的过滤效果
最后达到的数据要求是:
高压缩比、高性能,对应用完全透明
支持行列混合存储
水平分区
支持多种方式的分区策略,支持二级分区
支持并行查询和智能化分区过滤
高可靠性
支持多粒度备份恢复,提供在线并行备份恢复支持
THANKS!
!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考