文章: 采访与书评:NoSQL Distilled

标签: 文章 采访 书评 | 发表时间:2012-12-05 20:03 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

Pramod Sadalage和Martin Fowler合著的《 NoSQL Distilled》一书,介绍了NoSQL数据库以及混合持久化( Polyglot Persistence)的概念。随着各种NoSQL数据存储的出现,混合持久化也越来越流行。书中还介绍了NoSQL数据存储所支持的数据模型,如键值、文档和列族存储等聚合数据模型(Aggregate Data Model)。两位作者也探讨了支持数据实体之间关系的关系(Relationship)概念和图数据库(Graph Database)。

在介绍流行的NoSQL数据存储的各章中,他们使用了统一的格式。对于每种NoSQL数据库,如键值、文档、列族和图数据库等,相应章节都包含了“特性”、“适用情况”和“何时不应使用”等几个部分。

他们也探讨了相对于NoSQL数据存储,如何管理关系数据库中的模式变更。他们还谈到了用于解决不同数据存储需求的混合持久化这一概念,并探讨了如何直接在数据存储之上使用服务。

最后一章探讨的主题是,为了满足数据存储需求,在选择数据库时需要考虑哪些因素。

InfoQ采访了Pramod和Martin,访谈内容主要涉及这本书、NoSQL数据库市场和NoSQL中的新趋势。

*InfoQ:相对于传统的关系数据库,当数据库架构师和开发者使用NoSQL数据库时,在设计方面有哪些不同的考虑因素(如一致性、可用性和并发控制等)呢? *

Pramod:这在很大程度上依赖于所开发应用的需求。有些应用可能需要高可用性,但是对数据一致性没有那么高的要求,像日志聚合系统和内容显示系统很可能就适合这样的模型。而其他系统可能对数据一致性要求很高,却没有高可用性需求。因此开发者需要根据CAP理论中的选项做出决策。在传统的关系数据库中,有些决策已经由数据库本身确定了。

Martin:还需要记住,一个应用程序,使用情况不同,对可用性、响应时间和一致性的需求也有所不同。要做出正确的决策,必须理解底层业务需求。

InfoQ:NoSQL数据库是无模式的。在支持企业级应用时,对数据架构师和DBA来说,这一特性对他们在数据治理和数据管理方面的工作有什么影响?

Pramod:数据存储是无模式的,但这并不等于说没有模式或者不需要模式设计。模式是由负责写数据库的应用定义的。数据治理和数据架构可用于应用层,并影响应用层。这种变化意味着DBA和数据架构团队需要理解一些NoSQL技术和基于服务的集成,而不能总是依赖于基于数据库的集成。

Martin:我们听到有人这么说,无模式数据库意味着不必担心数据库迁移问题。这是严重地误解。当然,没有模式是提供了一些选择,但往往还是需要一些与传统关系数据库中所用技术类似的 迁移技术

*InfoQ:随着NoSQL数据库的出现,分片(Sharding)和复制(Replication)等技术也越来越受欢迎了,你们能否更多地谈一下这些技术?这些技术有哪些优点和限制呢? *

Martin:NoSQL数据库的原始动力之一就是为了在集群上更好地工作,并支持大量的复制和分片。这是我们所分类的 面向聚合(aggregate-oriented)的数据库的一个明显特征。之所以这样分类,是因为聚合能形成一个自然的分布数据的单元。

Pramod:即便在传统关系数据库中,复制也总是有效的。分片指的是这种能力,数据库能够基于某些键值在不同的节点间移动数据,在这里键值也叫做shard-key。分片支持水平伸缩(horizontal scaling),而且它也是一种用于伸缩应用程序的强有力的技术。如果需要聚合所有分片中的数据,因为这些数据并不在同一个节点上,所以聚合起来非常困难。像Riak和Cassandra这样的数据库,可以通过环(Ring)的配置将数据划分到集群中的所有节点上,而且这些数据库也提供了划分数据的算法。可以认为分片类似于关系数据库中的分区,不过分片的优点是在不同的节点上划分,而关系数据库中则是在同一个节点上。

InfoQ:这个问题几年前提的话听起来可能很奇怪,但随着NoSQL数据库的爆炸性增长,我想现在可以问了。请问关系数据库的未来会是什么样子的,在新兴的NoSQL和大数据背景下,它们又能扮演什么角色?

Pramod:NoSQL数据库的出现提供了一种选择。在设计满足特定应用需求的系统时,这种选择是很有帮助的。我们认为,能够选择混合持久化真是一件幸事,而且IT行业应该拥抱这些技术并理解如何使用。传统的数据库从业人员应该以开放的心态来学习一些这方面的技术,并且应该能够做到为应用或企业需求选择正确的数据库技术。在这个多元化的技术领域,关系数据库和非关系数据库将共存下去。

Martin:我们认为关系数据库仍然是大多数情况下的选择,至少未来几年是这样的。毕竟,关系数据库产品很成熟,有丰富的支持工具,而且相对来说人们对它们已经有很好地理解了。但是在ThoughtWorks,我们这几年来一直在所选的项目中使用NoSQL数据库,而且很多项目是非常令人满意的,这也是我们对企业中许多 准备采用NoSQL技术的项目信心满满的原因。

InfoQ:近来内存数据网格(In-memory Data Grids,IMDG)的使用也有所增多。你们能否谈一下这种新的NoSQL数据存储类型?

Pramod:因为内存数据网格的数据存储是基于内存的,并且允许集群中的机器访问,所以它的吸引力在增加。Coherence和Gigaspaces就是这类产品中的两个。

InfoQ:书中介绍了混合持久化这一主题。你们能否谈一下,对应用架构的其他层次尤其是数据访问层、域和服务层而言,这种新的持久化方法有何影响?混合持久化方面是否有什么设计实践或需要注意的地方?

Martin:最重要的结果是这种变化,原来 将数据库作为集成点,而现在意识到应用程序需要 封装其数据存储并通过高层服务来通信。

其他方面可能没这么明确。一个较大的问题是,面对同一应用的其他部分,我们应该将数据存储封装到什么程度。这些数据库有不同的数据模型,而且使用它们的部分原因是不同的数据模型能够更干净地映射到适合的应用。所以这又提出了问题,你想封装多少……现在要看到答案还为时过早。

InfoQ:随着NoSQL 数据库的广泛应用,情感分析(Sentiment analysis)成为另一个受到关注的趋势。你们能否大概谈一下NoSQL数据库背景下的情感分析和数据分析?

Pramod:NoSQL数据库和Hadoop、Pig以及Hive等数据处理框架使对海量数据的分析成为可能。这种能够写入大量数据,之后还能查询返回的能力,让人们能够分析大量数据,并从中获得像趋势、情感或由Flightcaster提供的航班状态分析等信息。

InfoQ:书的最后一章专门探讨数据库的选择这一主题。这里探讨了开发者生成率和数据访问性能等注意事项。你们能否谈一下这一点,并告诉我们的读者如何才能选出世界上最好的NoSQL 数据库呢?

Martin:为什么人们对采用NoSQL很有兴趣呢?我们认为可以归结为两个 主要原因

  • 以适当成本快速访问大量数据,这种需求致使很多人将目光投向大规模集群,而这正是人们最初对NoSQL产生兴趣的主要原因。
  • 很多情况下,关系数据模型并不是非常合适,选择数据模型更为匹配的NoSQL数据库可以获得更高的生产率。高度连通的数据会将你引向图数据库,而聚合结构则会将你引向面向聚合的数据库。

但无论做什么,关键是尝试一种数据库。仅仅是使用一下数据库,并通过一些关键场景建立原型,就能判断该数据库是否合适了。这就是大多数开源数据库具有明显优势的地方。

InfoQ:在NoSQL 数据库市场有什么新趋势吗?

Martin:在我看来,现在的一切都是在添加工具和成熟度,使这些数据库更容易很好地使用。大部分工作来自我们这些早期使用者的经验,我们非常高兴看到这种演进。

Pramod:这些NoSQL技术使用得越多,就意味着大量工作正在完成,这里的工作包括工具、驱动、监控功能以及很多其他特性。我们也看到了一些新技术,比如Datomic,它在云中将数据库作为服务提供给用户;还有VoltDB,它尝试在提供可伸缩性的同时使用SQL范型,这还有一个术语叫做“NewSQL”。现在真是数据的好时候。

关于作者

Pramod J. Sadalage,ThoughtWorks首席咨询师,喜欢弥合数据库从业人员和应用开发者之间的鸿沟这一不太常见的角色。他会定期为数据需求方面碰到了挑战、需要新技术和技巧的客户提供咨询。他开发了一些开创性的技术,使关系数据库可以以一种渐进的、基于版本控制的模式迁移方式来设计。他和Scott Ambler合著了《 数据库重构》(Addison-Wesley,2006)一书。
 

 

Martin Fowler,ThoughtWorks首席科学家,主要关注软件系统设计方法和开发者生产率的改进。他的著作包括《 企业应用架构模式》、《 UML精粹(第3版)》、《 Domain-Specific Languages》(与Rebecca Parsons合著)和《 重构:改善既有代码的设计》(与Kent Beck、John Brant以及William Opdyke合著)。所有著作均由Addison-Wesley出版。
 

“NoSQL Distilled:A Brief Guide to the Emerging World of Polyglot Persistence”,Pramod Sadalage和Martin Fowler合著,由Pearson/Addison-Wesley Professional于2012年8月出版,ISBN 0321826620,Copyright 2013 Pearson Education,Inc。更多信息请访问 出版社网站

参考英文原文Interview and Book Review: NoSQL Distilled

您可能也会喜欢

相关 [文章 采访 书评] 推荐:

文章: 采访与书评:Spring Integration in Action

- - InfoQ cn
Mark Fisher,Jonas Partner,Marius Bogoevici以及Iwein Fuld合著的 《Spring Integration in Action》一书介绍了 Spring Integration框架,该框架基于 Spring编程模型提供了众所周知的 企业级集成模式(Enterprise Integration Pattern,EIP)的一种实现.

文章: 采访与书评:NoSQL Distilled

- - InfoQ cn
Pramod Sadalage和Martin Fowler合著的《 NoSQL Distilled》一书,介绍了NoSQL数据库以及混合持久化( Polyglot Persistence)的概念. 随着各种NoSQL数据存储的出现,混合持久化也越来越流行. 书中还介绍了NoSQL数据存储所支持的数据模型,如键值、文档和列族存储等聚合数据模型(Aggregate Data Model).

文章: 采访和书评:Google如何做测试

- - InfoQ cn
《Google如何做测试》一书由 James Whittaker, Jason Arbon 和 Jeff Carollo 三位作者合著而成,正如其封面上描述的那样,看起来充满了知识性和趣味性,在其背后则揭秘了大型技术公司Google,是如何应对和处理软件测试的复杂性的. 百度技术沙龙第三十一期:推荐引擎算法与技术(10月20日 周六).

采访 Lua 发明人的一篇文章

- KK - 云风的 BLOG
《Masterminds of Programming: Conversations with the Creators of Major Programming Languages》是本相当不错的书. 博文翻译出版了这本书,中文名叫做《编程之魂》. 书是好书,可惜翻译这本书需要对各种语言的深入研究,看起来译者有点力不从心.

文章: SpringOne大会采访:Mark Pollack博士专访

- - InfoQ cn
SpringOne大会今年首次落户中国,将会于12月7-8号在北京召开,大会结合了Spring和Cloud Foundry大热门技术,将会针对于Spring的最新发展、Spring在移动、大数据领域的应用等做主题分享. InfoQ就Spring以及Spring Data、Spring Batch等话题采访到了Spring社区专家Mark Pollack博士.

采访和书评:精通HTML5和CSS3设计模式

- - HTML5研究小组
每个应用程序都是独一无二的——但构成应用程序的组件却不尽如此. 工具箱和程序库能够捆绑高层GUI元素和概念,但它们也因此造成了对程序库的依赖. 一本名叫 《精通HTML5和CSS3设计模式》的新书研究记录了web应用程序的常用设计模式,并使用HTML5、CSS和JavaScript(需要的话)提供了这些设计模式的实现方案.

文章: 从关系数据库向NoSQL迁移:采访Couchbase的产品管理主管Dipti Borkar

- - InfoQ cn
尽管关系数据库用于存储数据已经有几十年的历史,而且对很多用例而言,这仍然代表着一类可行的方案,但NoSQL正在成为人们当前的选择,尤其是考虑可伸缩性和性能的时候. 本文是对Couchbase的产品管理主管Dipti Borkar的采访,主要谈到了从关系数据库向NoSQL迁移的挑战、收益和过程. QCon北京2013,架构设计,大数据云计算等十八项专题,1月6日前报名7折.

反采访

- junyu - 胡子(胡续冬) 的最新日记
因为出了本《胡吃乱想》,时不时会在豆瓣上收到一些做媒体的豆友们求采访的豆邮. 作为一个打酱油的居家土厨子,我从来不敢以美食家自居,所以好多把我误当成美食家的采访请求我都婉拒了. 但有一封豆邮却是我无法推辞的,因为这位求采访的记者妹纸告诉我她和她老公也是像我们夫妇一样没什么追求的居家土厨子,而且她还提出要给我们带阿子很喜欢吃的云腿月饼作为采访贿赂.

采访祖先(一)

- 肖 - 土摩托日记
记者和历史学家都是写报告文学的,区别在于记者要么可以亲临现场,要么可以采访到当事人,写出来的东西更准确. 历史学家只能去扒故纸堆,再原始一点的就只能去扒坟了,准确性肯定低多了. 如果历史学家能够像记者那样采访到古人该有多好啊. 想象一下,假如哥伦布在踏上南美洲的时候能够带一部摄像机,让南美土著对着镜头讲讲话,那我们研究美洲历史的时候就准确多了.

51CTO对我的采访

- SotongDJ - I'm TualatriX
上周末的时候,有幸与51CTO的杨赛编辑当面交流了一把,她也对我进行了采访. 实际上没有“采访”这么严肃,整个过程非常轻松愉快,大家针对Linux的话题进行了一些随意的交流. 对话Ubuntu Tweak作者:站在用户的角度玩Linux. 还有一篇是关于杨赛写的一篇视角比较独特的文章,也引用了一些采访的内容:.