“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

采访与书评: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

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2012-12-05 06:032909
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

SCA在得物DevSecOps平台上应用​

得物技术

安全 DevSecOps SCA

JS数组方法

bo

JavaScript 前端 7月月更

strcmp() - 比较字符串

謓泽

7月月更

乘数科技云管控平台适配阿里云PolarDB,共促云原生数据库生态繁荣

阿里云数据库开源

数据库 阿里云 开源数据库 polarDB PolarDB for PostgreSQL

企业进行知识管理有哪些好处?

Geek_da0866

2022年数据库审计产品排行榜-必看!

行云管家

数据库 数据库审计

数仓基本概念解析

五分钟学大数据

数据仓库 7月月更

Nacos配置中心之环境准备

急需上岸的小谢

7月月更

学界VS工业界:深度学习究竟能不能打破视频编解码天花板

小红书技术REDtech

深度学习 音视频 视频编解码 音视频技术

真人踩过的坑,告诉你避免自动化测试新手常犯的10个错误

禅道项目管理

自动化 测试 自动化测试

2022长三角工业自动化展会将于10月在南京国际展览中心召开

AIOTE智博会

工业自动化展会 工业机器人展会 江苏工博会

怎样让全彩LED显示屏变的节能环保?

Dylan

LED显示屏 全彩LED显示屏

百度APP Android包体积优化实践(二)Dex行号优化

百度Geek说

Java Andriod

设计消息队列存储消息数据的 MySQL 表格

Fan

架构实战营

Linux 文件系统函数

贾献华

7月月更

数据库索引:索引并不是万能药

了不起的程序猿

MySQL 数据库 java程序员

特斯拉为何使用.NET Core技术框架?

博文视点Broadview

执掌英国工程技术学会 13 载,范纳杰正式退休

E科讯

JAVA编程规范之异常处理

源字节1号

微信小程序 软件开发 前端开发 后端开发

首发!这份字节大佬亲码算法面试大厂进阶宝典,让你轻松刷爆LeetCode!

了不起的程序猿

字节跳动 算法 java程序员

今日分享| 阿里巴巴内部最新Docker精髓笔记

冉然学Java

Java Docker 阿里 #技术干货# Java 开发

【等保小知识】等保整改是什么意思?整改内容包括哪些?

行云管家

等保测评 等级测评 等保整改

C# 使用Timer和ProgressBar控件制作一个倒计时器

IC00

C# 7月月更

2022亚洲国际物联网展会

AIOTE智博会

物联网展览会

对话ACE第四期:分布式数据库未来发展的挑战和机遇

OceanBase 数据库

数据库 分布式数据库 oceanbase

科创人·观远数据CEO苏春园:让业务用起来,是BI行业推倒渗透率之墙的关键

科创人

大数据

如何搭建一个好的知识库管理系统?

Geek_da0866

NFTScan 与 Port3 在 NFT 数据领域达成战略合作

NFT Research

长期的远程工作面临的几个问题和持续改进的组织自动化

Ryan Zheng

远程办公

前两天面了个腾讯拿 38K 出来的,让我见识到了基础的天花板,今天share给大家~

程序知音

Java 程序员 java面试 后端技术 八股文

仅需一个依赖给Swagger换上新皮肤,既简单又炫酷

程序知音

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