写点什么

采访与书评:NoSQL Distilled

  • 2012-12-05
  • 本文字数:3428 字

    阅读完需:约 11 分钟

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)一书。

“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

2012-12-05 06:033097
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 135.1 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

蓝易云 - java解析xml的几种方式

百度搜索:蓝易云

Java 云计算 Linux 运维 云服务器

随着5G技术加速亚太地区的数字化转型,其移动经济预计到2030年将增至1万亿美元

财见

音频格式转换器MediaHuman YouTube to MP3 Converter 中文注册版

理理

Lights Out for Mac(扩展节能器)v2024.2激活版

理理

提升工作效率:顶级项目安排软件推荐

爱吃小舅的鱼

项目管理 项目进度管理软件 项目进度安排

适用于macOS和Windows系统的视频下载器:MediaHuman YouTube Downloa

理理

喜讯!云起无垠入选《嘶吼2024网络安全产业图谱》

云起无垠

京东云原生安全产品重磅发布

京东科技开发者

仓颉编程语言技术指南:嵌套函数、Lambda 表达式、闭包

华为云开发者联盟

鸿蒙 编程语言 华为云开发者联盟 企业号2024年7月PK榜 仓颉

从K8s的“临时容器”看K8s设计的厉害之处

华为云开发者联盟

Docker 容器 云原生 华为云开发者联盟 企业号2024年7月PK榜

Milvus 向量数据库进阶系列丨部署形态选型

Zilliz

人工智能 Milvus Zilliz 向量数据库 rag

文献解读-群体测序-第二十三期|《一项前瞻性队列研究中膀胱癌的驱动和乘客DNA甲基化非侵入诊断和监测》

INSVAST

基因测序 基因数据分析 生信服务

LLM推理加速:decode阶段的Attention在GPU上的优化

阿里技术

阿里巴巴 推理 大模型 LLM RTP-LLM

AI客服上线 干货 干货 全是干货!

开源物联卡管理平台-设备管理

物联网 IoT eSIM安全 java 技术提升

IBM 发布 2024 年第二季度业绩报告:软件业务持续引领增长,全年现金流预期上调

财见

JavaScript单行技巧:高效处理数据

南城FE

JavaScript 前端

VMware Cloud Foundation 5.2 发布下载,新增功能概览

sysin

vSphere vcenter esxi vcf

观测云产品更新 | 异常追踪、场景图表、快照、监控等

观测云

监控

一文了解MySQL索引机制

京东零售技术

后端 MySQL 高可用 企业号2024年7月PK榜

一步即扫,直达应用所有服务

HarmonyOS SDK

HarmonyOS

实时数仓Hologres TPC-H及点查性能开箱测试

阿里云大数据AI技术

实时数仓 OLAP hologres

Ableton Live 12 Suite v12.0.15中文版许可证及安装教程【mac/win】

理理

视觉特效 Autodesk Flame 2025 mac版下载安装 flame2025破解补丁

理理

Flame 2025 Autodesk 电影特效制作

从积木式到装配式云原生安全

京东科技开发者

官宣!2024观测云发布会

观测云

监控

全能数据分析工具:Tableau Desktop 2019 for Mac 中文激活版

你的猪会飞吗

mac软件下载 mac破解软件下载

从C端到B端:我的前端技术进阶之路

京东零售技术

前端 企业号2024年7月PK榜

职场<火焰杯>测试开发大赛决赛成绩及获奖名单公布!

测吧(北京)科技有限公司

测试

聚焦于 Melos 数据生命网络,用户如何参与到生态的建设中?

大瞿科技

低代码技术在售后管理中的应用与优化

天津汇柏科技有限公司

低代码开发

灵活数据流处理:NeuronEX 支持 JavaScript 自定义函数

EMQ映云科技

Java 车联网 物联网 数据采集 NeuronEX

采访与书评:NoSQL Distilled_大数据_Srini Penchikala_InfoQ精选文章