简述云计算环境中在SQL or NoSQL的取舍

关于NoSQL和SQL,众所周知,NoSQL只允许数据在受限的预定义模式访问。例如DHT (Distributed Hash Table)通过hashtable API访问。其他NoSQL数据服务访问模式同样受限。因此可扩展性和性能结构是可预测和可靠的。而在SQL中,访问模式预先是不知道的,SQL是一种通用语言,允许数据以各种方式访问,程序员也对SQL语句的执行能力控制有限。

换句话说,在SQL中,数据模型不执行特定的工作方式与数据。强调建立数据完整性、简洁性、标准化和抽象化。这对于所有大型复杂的应用极为重要。一言以蔽之,正式因为不同的访问模式导致了NoSQL和SQL可扩展性和性能上的不同。即NoSQL和SQL本质上的真正差异。

为什么是NoSQL

NoSQL提供的方法对于SQL数据库来说有巨大的优势。因为它允许应用程序扩展的新的水平。新的数据服务基于真正可扩展的结构和体系构建云、构建分布式。这对于应用开发来说是非常有吸引力的。无需DBA,无需复杂的SQL查询。

这是不小的问题,一个好程序员自由选择一个数据模型,使用熟悉的工具写应用程序,减少对他人的依赖于,并测试和优化的代码,而不做猜测或一个黑盒(DB)的计数。

这些都是NoSQL运动的所有主要优势,但NoSQL也非万能,具体而言,数据模型的选择、接口规范以及当前面临的新业务比如移动业务数据的处理问题,都是NoSQL无法回避的。

NoSQL绝非万能

数据模型

如果没有一个统一的、定义良好的数据模型,无论采用何种技术都有缺陷。

SQL的数据模型定义了高度结构化的数据结构,以及对这些结构之间关系的严格定义。在这样的数据模型上执行的查询操作会比较局限,而且可能会导致复杂的数据遍历操作。但是数据结构的复杂性及查询的复杂性,会导致系统产生如下的一些限制:比如当数据量增长到一台机器已经不能容纳,我们需要将不同的数据表分布到不同的机器;如果你的结构化数据并没有那么强,或者对每一行数据的要求比较灵活,那可能关系型的数据模型就太过严格了;再有,使用简单的查询语言可能会导致应用层的逻辑更复杂,但是这样可以将存储系统的工作简单化,让它只需要响应一些简单的请求。

此外,NoSQL数据库并非是唯一适合存储大量数据或大型数据,显然,通过良好的分区设计,SQL数据库也可以获得极好的扩展性。

接口和互操作问题

不可否认,NoSQL的数据服务接口还有待规范。比如DHT,这是一个简单的接口,但仍旧没有标准的语义。每个DHT服务都使用其自己的一套接口。另一个大问题是不同的数据结构,如 DHT和binary tree,只是作为一个例子,共享数据对象。所有这些服务中,指针没有内在的语义。事实上,这些服务中,处理互操作性是开发者的职责,这一点很很重要,尤其是当需要数据被多个服务访问时。一个简单的例子:后台工作由Java实现,Web服务类工作由PHP实现,数据可以被轻易地从两个域访问数据吗?显然,人们可以使用Web服务作为前端数据访问层,但是,NoSQL有可能让事情变得更复杂,并降低了业务敏捷性,灵活性和性能,同时增加了开发工作量。

移动业务

在移动业务领域,需要一套工具,这套工具不仅要有可扩展性,而且还易于管理并且稳定,并在云上有一个固定的设置服务器。当系统出现问题的时候,可以不需要通过判断整个系统或开发平台来诊断问题,而是通过远程访问——这正是运维经理们所要面对的问题,但是在目前NoSQL所能提供的服务功能来看,很难实现,即便是Amazon的托管环境。

SQL和NoSQL如何结合?

总而言之,在NoSQL和SQL的选择上,需要了解到以下内容:

数据模型及操作模型:你的应用层数据模型是行、对象还是文档型的呢?这个系统是否能支持你进行一些统计工作呢?

可靠性:当你更新数据时,新的数据是否立刻写到持久化存储中去了?新的数据是否同步到多台机器上了?

扩展性:你的数据量有多大,单机是否能容下?你的读写量求单机是否能支持?

分区策略:考虑到你对扩展性,可用性或者持久性的要求,你是否需要一份数据被存在多台机器上?你是否需要知道数据在哪台机器上,以及你能否知道。

一致性:你的数据是否被复制到了多台机器上,这些分布在不同点的数据如何保证一致性?

事务机制:你的业务是否需要ACID的事务机制?

单机性能:如果你打算持久化的将数据存在磁盘上,哪种数据结构能满足你的需求(你的需求是读多还是写多)?写操作是否会成为磁盘瓶颈?

负载可评估:对于一个读多写少的应用,诸如响应用户请求的web应用,我们总会花很多精力来关注负载情况。你可能需要进行数据规模的监控,对多个用户的数据进行汇总统计。你的应用场景是否需要这样的功能呢?

使用NoSQL架构实现SQL数据库?

使用NoSQL的基础架构实现SQL数据库是一个很好的解决方案。一个SQL数据库是可扩展、易管理,云就绪、高度可用的,完全建立在NoSQL的基础结构(分布式)上,但仍然提供SQL数据库的所有优势,如互操作性,定义良好的语义以及更多。

这种混合结构也许不如纯粹的NoSQL的服务,但足以满足需要更稳定系统、可扩展性和云服务的80%的市场需求。

这种解决办法还允许很容易地迁移现有的应用到云环境,从而保护相关组织在这些应用上所付出的巨大的投资。

在我看来,构建于NoSQL基础之上的SQL数据库,可以为那些在其成长期间期望灵活、高效的客户提供最高的价值。

时间: 2024-09-01 03:53:58

简述云计算环境中在SQL or NoSQL的取舍的相关文章

风马牛能相及 云计算环境中测试Windows7

本文讲的是风马牛能相及 云计算环境中测试Windows7,[IT168 资讯]Windows 7和云计算,看起来风马牛不相及.但随着Windows 7的上市及越来越多的企业部署或者加入云计算的环境,两者的"交集"也会越来越多. 假如企业急于升级到Windows 7,测试应用程序的兼容性是顺利部署系统中至关重要的环节.但众所周知,操作系统的测试需要额外的硬件和IT人员的参与,因此是一个耗费时间和资源的事情. 但是,由于处于Windows的升级周期,IT人员便有了新的选择,也使得他们可以通

云计算环境中SaaS的接入控制和调度策略研究

云计算环境中SaaS的接入控制和调度策略研究 李波,杨从有,武浩,裴以建 文中阐述SaaS的基本概念,介绍了SaaS的参考结构以及服务流程,分析概括了不同类型的服务要求的接入控制策略,总结了不同性能要求作业的调度策略,最后结合已有的云计算环境下的SaaS接入控制和调度策略研究成果,展望了未来的研究方向和亟待解决的关键问题. 关键词:云计算;软件即服务SaaS;接入控制;调度策略 temp_12101111497764.pdf

云计算环境中面向取证的现场迁移技术研究

博士论文 云计算环境中面向取证的现场迁移技术研究 华中科技大学  周刚 首先提出了一种新的云计算环境下的计算机取证模型-云计算取证模型,该模型定义了云计算环境下的工作层次,通过场景描述和过程组件的划分,刻画了完整的取证机制.通过对云计算取证模型的完整性和强隔离性的证明,可以将虚拟机镜像文件作为取证的对象进行分析,进而实现云计算环境下的计算机取证过程. 其次,在云计算平台中通过对虚拟化软件层的控制,利用其状态转换,提出了一种虚拟机镜像文件的迁移方法.通过对虚拟化软件层迁移状态时的上层虚拟机的进程标

云计算环境中的法律风险

云计算环境中的法律风险 --以数据安全为视角 徐慧丽 云计算技术在为人们提供经济.便捷服务体验的同时,也埋下了诸多法律隐患.如今这项新技术的经济优势已经超越了人们对安全等问题的关注,云服务遍布于日常生活中.只有对其所面临的潜在法律风险保持一个清醒的认识,才能让技术更好地造福于人们的生活,减弱风险导致的负面影响.数据安全是该领域最为急迫的核心议题之一,危及用户的隐私权.商业秘密.著作权等合法权益.在了解云计算技术特征的基础上,进而分析云安全制度现状,特别是云计算技术与现有法律规范的冲突,将会有助于

云计算环境中优化遗传算法的资源调度策略

云计算环境中优化遗传算法的资源调度策略 崇阳 资源调度是云计算的核心问题,传统的遗传算法虽然可以用于云计算环境中的资源调度,但是由于传统遗传算法存在收敛慢.易早熟等特点,所以这种算法并不适应于多聚类环境下的密集型任务调度.基于此,我们提出了云计算环境中优化遗传算法的资源调度策略以弥补传统遗传算法的不足.本文主要通过对云计算概念的介绍以及如何优化遗传算法的资源调度策略来展开讨论. 云计算环境中优化遗传算法的资源调度策略

利用statspack来获取生成环境中top SQL及其执行计划

作者: fuyuncat 来源: www.HelloDBA.com 在一些特殊情况下,生产环境中top SQL会让DBA捉摸不定.比如一个由复杂分支条件所生成的动态语句:第三方软件或者代码本身对会话环境进行了修改,导致无法正确重现问题语句的查询计划:语句过长导致无法获取正确的全部语句,等等.这时,我们可以考虑设置statspack为更高级别(默认级别为5),以获取相关语句的详细信息.具体过程如下: 获取级别6的statspack的快照: SQL> exec statspack.SNAP(i_sn

云计算环境中的安全管理平台

1.云计算对于安全管理的要求从传统上来看,安全管理在安全的网络建设中发挥着重要作用.通过安全管理平台,可以实现对安全设备的集中管理与控制.直观的实时事件监控.安全事件综合分析,并能够提供清晰全面的TopN统计报告,方便用户随时掌控当前网络安全状况,在增强整网安全的可视性的同时,通过集中的策略管理,简化多台设备安全策略部署工作,节省维护成本.但随着网络的发展步入云计算时代, 复杂的虚拟化环境对安全管理提出了更新的要求.如何更好的整合安全事件和日志的差异性,适应多厂商.多类型设备混合组网的需求?如何

ICON一款构建云计算环境中映像文件的软件工具

为了解决这些问题,Image Construction and Composition( 简称为 ICON) 应运而生.做为映像文件构建与编辑的工具,ICON 可以与云提供程序 (Cloud Provider) 集成,导入需要处理的影像文件,进行编辑,然后再同步到云环境中供http://www.aliyun.com/zixun/aggregation/6579.html">用户使用.通过本文,您可以了解 ICON 的安装和产品使用. Image Construction and Compo

云计算环境中的资源调度策略研究及仿真分析

云计算环境中的资源调度策略研究及仿真分析 浙江师范大学 王梅 本文的任务调度研究内容基于Map/Reduce思想的第二部分,并且就虚拟机迁移这两方面作了工作:(1)任务调度算法优化,本文主要研究是如何合理地将各个子任务分配给虚拟资源,以提高任务的总体完成时间.首先将云环境资源建模成遗传优化和蚁群优化的任务调度算法优化问题,将任务进行分类后利用改进的遗传算法求得初始解,再将初始解代入改进的蚁群算法,求得最优解.结合遗传优化算法全局优化能力和蚁群优化算法的局部优化能力,通过Cloudsim进行仿真验