数据库中间件使用场景分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库中间件使用场景分析数据库场景比较
PS:涉及到金钱方面的事务处理,建议使用Oracle。
数据库优点缺点场景
Oracle 基本适合所有业务维护成本和License成
本高
电信,电力、银行、支付以及涉及到金钱
方面等综合性企业。(事务型)
MySQL 结构简单,部署方便,社区
成熟,稳定性非常好,
良好的事务和SQL支持
扩展性差,软件本身性
能瓶颈大,
没有成熟的集群方案。
Schema复制。
百亿以内的数据存储,
对数据安全性和事务支持有要求。主要存
储对数据状态有要求和更新频繁的数据。
(事务型)
MongoDB Schema--free,快速开发,
本身支持集群如sharding,
支持空间索引等;
锁的粒度大,并发性能
差,性能受限于内存,
解决方案有待考验。
1.LBS(基于位置服务;地理坐标,或大地坐
标),缓存,小文件存储。
2.CMS内容管理系统;
3.社交网络图数据库设计.
4.MongoDB主要用于存储计费数据、日志
数据和流水数据
Hbase 基于Hadoop生态系统,良
好的扩展性,高写入能力。
数据自动分片。
架构复杂,维护成本
高。
搜索,数据写入非常高,监控数据。
1.典型互联网搜索问题
2.捕获增量数据
3.内容服务
4.信息交换
HBase主要用来做数据分析和存储大数据
内容。
Redis 高性能,部署简单,非常的
数据类型支持,
支持数据持久化,集群方案
支持。
性能受限于内存,单进
程问题。
适合小数据高读写场景。缓存服务。
1.保存点击数据(计数器)
2.在哈希表中保存用户信息
3.用集合保存社交网站圈子数据
MySQL还是PostgreSQL?
1、如果你的应用对数据的完整性和严肃性要求不高,但是追求处理的高速度。例如是一个论坛和社区,你应该使用MySQL。
2、你的应用是一个严肃的商业应用,对数据完整性要求很高。而且你希望对一些商业数据逻辑进行很好的封装,例如是一个网上银行,你应该使用PostgreSQL。
3、你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。
4、等等
从Oracle转向MySQL主要是出于三个方面的原因:
第一,降低运维成本。Oracle数据库自动化运维实现难度和成本较高,而MySQL运维自动化难度和成本相对较低,当数据库实例不断成倍增长的时候,使用MySQL可以在有限人力的情况下维护更多的数据库实例。
第二,降低软件成本。Oracle License成本较高,MySQL及其分支目前是免费的。
第三,提高可扩展性。MySQL是开源数据库,便于有技术能力的公司根据业务发展情况自己开发定制一些数据库周边服务,使数据库使用的扩展性提高,而Oracle对这方面的支持比较一般。
Hbase场景说明
捕获增量数据
数据通常是细水长流,累加到已有数据库以备将来使用,例如分析,处理和服务。许多HBase使用场景属于这个类别——使用HBase作为数据存储,捕获来自于各种数据源的增量数据。例如,这种数据源可能是网页爬虫,可能是记录用户看了什么广告和多长时间的广告效果数据,也可能是记录各种参数的时间序列数据。我们讨论几个成功的使用场景和公司。
1.捕获监控参数
服务于数百万用户的WEB产品的后台基础架构一般都有数百或数千台服务器。这些服务器承担了各种功能——服务流量,捕获日志,存储数据,处理数据等等。为了保持产品正常运行,监控服务器和上面运行软件的健康状态是至关重要的(从OS到用户交互应用)。大规模监控整个环境需要能够采集和存储来自于不同数据源的各种参数的监控系统。每个公司有自己的办法。一些公司使用商业工具来收集和展示参数;而其他一些公司采用开源框架。
2.捕获用户交互数据
捕获监控数据是一种使用方式。还有一种是捕获用户交互数据。如何跟踪数百万用户在网站上的活动?怎么知道哪一个网站功能是最受欢迎的?怎样使得这一次的网页浏览直接影响到下一次?例如,谁看了什么?某个按钮被点击了多少次?还记得Facebook和Stumble 里的Like按钮和StumbleUpon 里的+1 按钮吗?是不是听起来像是一个计数问题?每次用户Like 一个特定主题计数器增加一次。
3. 广告效果和点击流
过去的十年,在线广告成为互联网产品的一个主要收入来源。提供免费服务给用户,在用户使用服务的时侯投放广告给目标用户。这种精准投放需要针对用户交互数据做详细的捕获和分析,以便于理解用户的特征。基于这种特征,选择并投放广告。精细的用户交互数据带来更好的模型,进而导致更好的广告投放效果和更多的收入。但这类数据有两个特点:它以连续流的形式出现,它很容易按用户划分。理想情况下,这种数据一旦产生就能够马上使用,用户特征模型可以没有延迟地持续优化——也就是说,以在线方式使用。
4.在线 VS 离线系统
在线和离线的术语多次出现。在线系统需要低延迟。某些情况下,系统哪怕给出没有答案的响应,也要比花了很长时间给出正确答案的响应好。你可以把在线系统想象为一个跳着脚的没有耐心的用户。离线系统不需要低延迟,用户可以等待答案,不期待马上给出响应。当实现应用系统时在线或者离线的目标影响着许多技术决策。HBase是一个在线系统。和Hadoop MapReduce的紧密结合又赋予它离线访问的能力。
HBase非常适合收集这种用户交互数据,HBase已经成功地应用在这种场合,它可以增量捕获第一手点击流和用户交互数据,然后用不同处理方式(MapReduce是其中一种)来处理数据(清理、装饰、使用数据)。
************************************************
内容服务