常用处理数据库大数据访问的方法

1、负载均衡技术

 

负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。

 

实现原理

 

实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载采取有效的均衡策略,来调整每次连接到哪个数据库。

 

实现多据库数据同步

 

对于负载均衡,最重要的就是所有服务器的数据都是实时同步的。这是一个集群所必需的,因为,如果数不据实时、不同步,那么用户从一台服务器读出的数据,就有别于从另一台服务器读出的数据,这是不能允许的。所以必须实现数据库的数据同步。这样,在查询的时候就可以有多个资源,实现均衡。比较常用的方法是Moebius for SQL Server集群,Moebius for SQL Server集群采用将核心程序驻留在每个机器的数据库中的办法,这个核心程序称为Moebius for SQL Server 中间件,主要作用是监测数据库内数据的变化并将变化的数据同步到其他数据库中。数据同步完成后客户端才会得到响应,同步过程是并发完成的,所以同步到多个数据库和同步到一个数据库的时间基本相等;另外同步的过程是在事务的环境下完成的,保证了多份数据在任何时刻数据的一致性。正因为Moebius 中间件宿主在数据库中的创新,让中间件不但能知道数据的变化,而且知道引起数据变化的SQL语句,根据SQL语句的类型智能的采取不同的数据同步的策略以保证数据同步成本的最小化。

 

 

数据条数很少,数据内容也不大,则直接同步数据

数据条数很少,但是里面包含大数据类型,比如文本,二进制数据等,则先对数据进行压缩然后再同步,从而减少网络带宽的占用和传输所用的时间。

数据条数很多,此时中间件会拿到造成数据变化的SQL语句, 然后对SQL语句进行解析,分析其执行计划和执行成本,并选择是同步数据还是同步SQL语句到其他的数据库中。此种情况应用在对表结构进行调整或者批量更改数据的时候非常有用。

 

优缺点

 

(1) 扩展性强:当系统要更高数据库处理速度时,只要简单地增加数据库服务器就 可以得到扩展。

(2) 可维护性:当某节点发生故障时,系统会自动检测故障并转移故障节点的应用,保证数据库的持续工作。

(3) 安全性:因为数据会同步的多台服务器上,可以实现数据集的冗余,通过多份数据来保证安全性。另外它成功地将数据库放到了内网之中,更好地保护了数据库的安全性。

(4) 易用性:对应用来说完全透明,集群暴露出来的就是一个IP

 

 

 

2、数据库的读写分离

 

实现原理

读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。

 

 

 

实现方法

 

在MS Sql server中可以使用发布定义的方式实现数据库复制,实现读写分离,复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。SQL SERVER复制技术类型有三种,分别是:快照复制、事务复制、合并复制。SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。

 

优缺点

 

(1)数据的实时性差:数据不是实时同步到自读服务器上的,当数据写入主服务器后,要在下次同步后才能查询到。

(2)数据量大时同步效率差:单表数据量过大时插入和更新因索引,磁盘IO等问题,性能会变的很差。

(3)同时连接多个(至少两个)数据库:至少要连接到两个数据数据库,实际的读写操作是在程序代码中完成的,容易引起混乱

(4)读具有高性能高可靠性和可伸缩:只读服务器,因为没有写操作,会大大减轻磁盘IO等性能问题,大大提高效率;只读服务器可以采用负载均衡,主数据库发布到多个只读服务器上实现读操作的可伸缩性。

 

 

 

参考资料:    数据库大数据访问的解决方法      http://www.studyofnet.com/news/379.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据常⽤数据库汇总 通常数据库分为关系型数据库和⾮关系型数据库,关系型数据库的优势到现在也是⽆可替代的,⽐如MySQL、SQL Server、Oracle、 DB2、SyBase、Informix、PostgreSQL以及⽐较⼩型的Access等等数据库,这些数据库⽀持复杂的SQL操作和事务机制,适合⼩量数 据读写场景;但是到了⼤数据时代,⼈们更多的数据和物联⽹加⼊的数据已经超出了关系数据库的承载范围。 ⼤数据时代初期,随着数据请求并发量⼤不断增⼤,⼀般都是采⽤的集群同步数据的⽅式处理,就是将数据库分成了很多的⼩库,每个数据 库的数据内容是不变的,都是保存了源数据库数据副本,通过同步或者异步⽅式保证数据的⼀致性,每个库设定特定的读写⽅式,⽐如主 数据库负责写操作,从数据库是负责读操作,等等根据业务复杂程度以此类推,将业务在物理层⾯上进⾏了分离,但是这种⽅式依旧存在⼀ 定的负载压⼒的问题,企业数据在不断的扩增中,后⾯就采⽤分库分表的⽅式解决,对读写负载进⾏分离,但是这种实现依旧存在不⾜,且 需要不断进⾏数据库服务器扩容。 所以到了⼤数据时代,业务更多的数据和物联⽹采集的数据已经超出了关系数据库的承载范围。本⽂着重介绍⼀下NoSQL(Not Only SQL)数据库。 ⼀、NoSQL数据库⼤致分为5种类型 1、列族数据库:BigTable、HBase、Cassandra、Amazon SimpleDB、HadoopDB等,下⾯简单介绍⼏个 (1)Cassandra:Cassandra是⼀个列存储数据库,⽀持跨数据中⼼的数据复制。它的数据模型提供列索引,log-structured修改,⽀持 反规范化,实体化视图和嵌⼊超⾼速缓存。 (2)HBase:Apache Hbase源于Google的Bigtable,是⼀个开源、分布式、⾯向列存储的模型。在Hadoop和HDFS之上提供了像 Bigtable⼀样的功能。 (3)Amazon SimpleDB:Amazon SimpleDB是⼀个⾮关系型数据存储,它卸下数据库管理的⼯作。开发者使⽤Web服务请求存储和查 询数据项 (4)Apache Accumulo:Apache Accumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建⽴在Apache Hadoop、Zookeeper和Thrift技术之上。 (5)Hypertable:Hypertable是⼀个开源、可扩展的数据库,模仿Bigtable,⽀持分⽚。 (6)Azure Tables:Windows Azure Table Storage Service为要求⼤量⾮结构化数据存储的应⽤提供NoSQL性能。表能够⾃动扩展到 TB级别,能通过REST和Managed API访问。 2、键值数据库:Redis、SimpleDB、Scalaris、Memcached等,下⾯简单介绍⼏个 (1)Riak:Riak是⼀个开源,分布式键值数据库,⽀持数据复制和容错。(2)Redis:Redis是⼀个开源的键值存储。⽀持主从式复制、 事务,Pub/Sub、Lua脚本,还⽀持给Key添加时限。 (3)Dynamo:Dynamo是⼀个键值分布式数据存储。它直接由亚马逊Dynamo数据库实现;在亚马逊S3产品中使⽤。 (4)Oracle NoSQL Database:来⾃Oracle的键值NoSQL数据库。它⽀持事务ACID(原⼦性、⼀致性、持久性和独⽴性)和JSON。 (5)Oracle NoSQL Database:具备数据备份和分布式键值存储系统。 (6)Voldemort:具备数据备份和分布式键值存储系统。 (7)Aerospike:Aerospike数据库是⼀个键值存储,⽀持混合内存架构,通过强⼀致性和可调⼀致性保证数据的完整性。 3、⽂档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下⾯简单介绍⼏个 (1)MongoDB:开源、⾯向⽂档,也是当下最⼈⽓的NoSQL数据库。 (2)CounchDB:Apache CounchDB是⼀个使⽤JSON的⽂档数据库,使⽤Javascript做MapReduce查询,以及⼀个使⽤HTTP的 API。 (3)Couchbase:NoSQL⽂档数据库基于JSON模型。 (4)RavenDB:RavenDB是⼀个基于.NET语⾔的⾯向⽂档数据库。 (5)MarkLogic:MarkLogic NoSQL数据库⽤来存储基于XML和以⽂档为中⼼的信息,⽀持灵活的模式。 4、图数据库:Neo4J、InfoGrid、OrientDB、GraphDB,下⾯简单介绍⼏个 (1)Neo4j:Neo4j是⼀个图数据库;⽀持ACID

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值