Oracle、NoSQL和NewSQL 数据库技术对比
John Ryan是经验丰富的数据仓库架构师、开发人员和数据库管理员。他专门从事多太字节Oracle系统上的Kimball维度设计,在移动电话和投资银行等多个不同的行业积累了超过30年的IT经验。
本文发表是作为有关数据库和大数据的系列文章中的一篇。
可扩展性 — 流量可能出现爆炸性的增长,IT系统需要迅速扩大规模, 以处理指数化增长的事务
高可用性 — IT系统必须每周7天、每天24小时运行,并且必须具有故障容错性。(美国银行2011年发生一次故障,对2900万客户造成持续六天的影响)。
高性能 — 随着可扩展性的不断增强,性能也必须跟上,保持稳定和快速。据亚马逊估算,在极端情况下,页面加载时间每增加一秒,该公司每年要损失16亿美元。
速度 — 设备自带的联网传感器越来越多(远的不说,智能电话就自带联网传感器),每秒可能会有数以百万计的事务需要处理。
实时分析 — 夜间进行批处理和业务智能化已经过时。分析与操作处理之间的界限变得模糊,对实时决策的需求越来越多。
性能—大限度地缩短延迟,在毫秒级时间内完成事务处理。
可用性—即使系统的一个或多个节点发生故障或与网络断开,也能保持运行的能力。
可扩展性—能够不断地扩大规模,以满足海量数据和事务速度的要求。
一致性—提供一致、准确的结果 — 特别是在发生网络故障时。
耐久性—确保修改一旦实施后不会丢失。
灵活性—提供通用的数据库解决方案,以支撑事务及分析方面的工作负荷。
停止处理 — 但是纽约的可用性就受到了影响
接受读取/写入操作 — 在恢复网络连接后消除差异。但是这么做的风险是提供过期或错误的结果,可能需要解决写入操作的冲突
终一致性是特别弱的一种模式。
重新设想OLTP数据库
专门用于解决某一个问题 — 快速执行短暂的预定义(非即席的)事务,查询计划相对简单。简而言之,就是专用的OLTP平台。
符合ACID规范 — 所有事务均为单线程运行,默认提供全部可串行性。
总是可用 — 利用数据复制(而非热备)来提供高可用性,几乎不增加成本。
地理分散 — 在由分散多处的机器组成的网格上无缝运行(进一步提高韧性,并局部地提高性能)
无共享架构 — 多台机器通过对等网格联网,分担负荷。添加机器是不会造成停机的无缝操作,并且失去一个节点仅会造成性能略微下降,而不是全系统停止运行。
基于内存 — 全部在内存中运行,以提高速度,通过向其他节点进行内存中数据复制来保证耐久度。
消除瓶颈 — 彻底重新设计数据库的内部构件,实现单线程运行,同时消除重做(Redo)日志以及锁定和锁存的必要性—这些都是数据库性能为重大的制约。
世上无难事!
NewSQL数据库技术
VoltDB
MemSQL
哪些应用需要NewSQL技术?
实时授权 — 例如,为了分析和计费而验证、记录和授权移动电话呼叫。通常,99 .999%的数据库操作都必须在50毫秒内完成。
实时欺诈侦测 — 用于完成复杂的分析查询,以在交易授权之前,准确地确定欺诈的可能性。
游戏分析 — 用于根据玩家的能力和玩家的典型行为,实时动态修改游戏难度。目标是留住现有玩家,以及将免费客户转化为付费玩家。在速度、可用性和准确性要求很高的情况下,某客户通过运用这些手段,将玩家的游戏支出提高了40%。
个性化Web广告 — 实时动态地选择基于 Web 的个性化广告,记录广告呈现事件以用于计费,同时记录广告结果以用于后续分析。
结论
相关文章