NoSQL在企业中的发展历程

本文的作者Sourav Mazumder目前是InfoSys Technologies的***技术架构师。他在信息技术领域有14年以上的经验。作为Infosys技术顾问团的主要成员,Sourav为 Infosys在美国、欧洲、澳洲和日本的主要客户,提供保险、电信、银行、零售、安全、交通以及建筑、工程、施工等多个行业的服务。 他曾参与Web项目的技术架构和路线图定义,SOA战略实施,国际战略定义,UI组件化,性能建模,伸缩性分析,非结构化数据管理等等。Sourav参考的Infosys自身的核心银行产品Finacle,也为他提供了丰富的产品开发经验。Sourav还曾参与开发Infosys的J2EE可重用框架,和定义Infosys在架构方面和开发定制应用方面的软件工程方法。Sourav的经历还包括在保证架构合规和开发项目的治理方面的工作。Sourav是 iCMG认证的软件架构师,同时也是TOGAF 8认证的执行者。Sourav最近在LISA伯克利全球化会议上发表了演讲。Sourav关于SOA的***白皮书在社区里十分流行。Sourav目前关注 NoSQL,Web 2.0,治理,性能建构和全球化。

以下是文章全文:

作为企业架构师,我的职业习惯之一,就是不断的探求各种新的有前景的概念和思想,看其是否有潜力为我所服务的来自各行各业的企业客户带来价值。同样出于对这种理念的追求,我对NoSQL领域的关注了也有一段时间了,甚至从这个术语产生(或者错误的产生?)之前就开始了。Google首先在这方面点了一把火,发布了论文Big Table架构,对关系数据库是银弹这种普遍的信念提出了质疑,而Amazon关于Dynamo的论文则紧随其后。 过去的一年中我们见证了NoSQL强劲的势头,在这一领域有多达25种产品/解决方案发布,并且NoSQL的触角已经伸向了业界的各个角落。在此前提下,我最近考虑深入这一领域,评估一下我的客户究竟如何才能从这种NoSQL运动中获益。不仅如此,我还想探究对于企业来说,是否是到了该认真考虑采纳 NoSQL的合适时机了。

什么是NoSQL——快速回顾

像许多关注这一领域的人一样,我不喜欢从本质上将SQL与NoSQL这一术语对立起来。同时我对该术语现有的解释”Not Only SQL”也不甚满意。对我来说,我们这里所讨论的并非是是否使用SQL。(相反的是,我们仍然可以选择类似SQL这样的查询接口(缺少对join等的支持)来与这些数据库交互,使用现有的资源和技术来管理开发伸缩性和可维护性。) 这一运动是要找到存储和检索数据的其他高效的途径,而不是盲目地在任何情况下都把关系数据库当作万金油。因此,我认为’ Non Relational Database ‘(非关系型数据库)能够更好的表达这一思想。

无论采用哪个名字,“非关系型数据库”这一范围所传达出来的“囊括所有”类型的意味,使得这一概念比较模糊(并且它还是否定型的)。这又使得人们(特别是企业中的决策者)对于哪些是属于这个范围,哪些不是,更重要的是,对他们来说这到底意味着什么,感到非常迷惑。

为了解答这些疑问,我尝试通过以下几点特征的描述,来刻画“非关系型数据库”的内在本质。

所谓“非关系型数据库”指的是:

  1. 使用松耦合类型、可扩展的数据模式来对数据进行逻辑建模(Map,列,文档,图表等),而不是使用固定的关系模式元组来构建数据模型。
  2. 以遵循于CAP定理(能保证在一致性,可用性和分区容忍性三者中中达到任意两个)的跨多节点数据分布模型而设计,支持水平伸缩。这意味着对于多数据中心和动态供应(在生产集群中透明地加入/删除节点)的必要支持,也即弹性(Elasticity)。
  3. 拥有在磁盘或内存中,或者在这两者中都有的,对数据持久化的能力,有时候还可以使用可热插拔的定制存储。
  4. 支持多种的’Non-SQL’接口(通常多于一种)来进行数据访问。

围绕着图中四个特征的(数据持久性、逻辑数据模型、数据分布模型和接口)“非关系型数据库”的各种变形,在最近的一些文章中有详尽的描述,并且在因特网上有着广泛的传播。所以我就不做过多繁复的描述,而是通过一些例子对关键的方向进行总结,供快速参考:

  • 接口——REST (HBase,CouchDB,Riak等),MapReduce (HBase,CouchDB,MongoDB,Hypertable等),Get/Put (Voldemort,Scalaris等),Thrift (HBase,Hypertable,Cassandra等),语言特定的API(MongoDB)。
  • 逻辑数据模型——面向键值对的(Voldemort,Dynomite 等),面向Column Family的(BigTable,HBase,Hypertable 等),面向文档的(Couch DB,MongoDB等),面向图的(Neo4j, Infogrid等)
  • 数据分布模型——一致性和可用性(HBase,Hypertable, MongoDB等), 可用性和可分区性(Cassandra等)。一致性和可分区性的组合会导致一些非额定的节点产生可用性的损失。有趣的是目前还没有一个“非关系型数据库”支持这一组合。
  • 数据持久性—— 基于内存的(如Redis,Scalaris, Terrastore),基于磁盘的(如MongoDB,Riak等),或内存及磁盘二者的结合(如 HBase,Hypertable,Cassandra)。存储的类型有助于我们辨别该解决方案适用于哪种类型。然而,在大多数情况下人们发现基于组合方案的解决方案是***的选择。既能通过内存数据存储支持高性能,又能在写入足够多的数据后存储到磁盘来保证持续性。

【编辑推荐】

  1. MongoDB之父:MongoDB胜过BigTable
  2. 主流NoSQL数据库全方位评测之MongoDB
  3. 教你如何利用MySQL学习MongoDB
  4. 在Windows环境下MongoDB搭建和简单操作
  5. Mongodb源码分析之Mongos分析

 

 

 

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/255558.html<

(0)
运维的头像运维
上一篇2025-04-30 21:53
下一篇 2025-04-30 21:55

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注