最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Peter Bell 谈 NoSQL 的发展趋势

  • 2013-11-07
  • 本文字数:2117 字

    阅读完需:约 7 分钟

近日,Peter Bell 与 InfoQ 分享了他对于 NoSQL 最近发展趋势的一些看法,NoSQL 是一类发展迅速的数据库存储,涵盖了多种解决方案。Peter 是 Pragmatic Learning 公司的讲师,这家公司就是由他创建的,同时他还是 GitHub 培训团队的一名签约成员,也是 Speak Geek 的创建者,这家公司的主要目标是为商业人士提供培训,帮助他们雇佣和管理开发者。他经常针对各种 NoSQL 数据存储提供培训和演讲,包括 MongoDB、Neo4j 及 Redis,是一位 MongoDB 专家。

InfoQ:过去的几年间,NoSQL 得到了长足的发展,从一开始的前沿技术发展成为现在很多应用技术栈的标准组成部分。你认为促进这种快速发展的因素有哪些呢?

NoSQL 得到如此广泛的普及主要有 3 个驱动力。首先是需求。在过去的几年间,互联网与移动的流量呈现出了爆发性的增长,现在很多大公司所处理的数据规模是几年前我们几乎不曾想到的。传统的关系型数据库在设计时从未考虑过能够比较容易地实现跨节点可伸缩这一特性,因此 NoSQL 在那些需要能够实现快速、轻松且低成本可伸缩的公司中开始流行起来。 第 2 个驱动力是可用性。在过去几年间,开源软件真的开始成熟起来了,现在已经出现了很多成熟的开源 NoSQL 存储,这样公司就可以轻松找到满足其需求的数据存储方案了。

最后,NoSQL 很时髦!我相信现在一定存在使用 NoSQL 构建,但关系型数据库却更加适合的应用。然而,随着 NoSQL 逐渐从新生事物变成主流,甚至过时后,我希望技术人员在选择适合其应用场景的解决方案时能够更加理性一些。

InfoQ:最近,我们看到有一些新的厂商进入到了一个被称为 NewSQL 的领域(不过这个名字还没有普及)。能否谈谈何谓 NewSQL?你觉得对于需要事务性数据库保证的企业来说,这会增加非关系型数据库在这些企业中的普及度么?

NewSQL 指的是像 NuoDB 这样的现代数据库,他们将跨节点的可伸缩性与对 SQL 查询的支持结合起来了。比如说,如果负载已经超出了单台服务器的承受能力,然而你又不想让开发团队针对没有实现 SQL 的数据库重写编写代码,那么 NewSQL 数据库就值得好好研究一下了。我认为我们现在尚处在 NewSQL 革命的黎明阶段,但显然,对于有的场景来说,NoSQL 存储提供了比关系型代数更好的抽象能力;而对另一些场景来说,拥有开发者所熟知的编程模型的可伸缩数据库则是更好的解决方案。

InfoQ:图型数据库(如 Neo4j)是基于图论来对节点间的关系进行建模的。这看起来很复杂,不过能否谈谈它提供了哪些好处么?你觉得这类 NoSQL 数据库有机会成为主流么?

这个世界就是个图。无论是要管理用户(他隶属于多个组,而每个组拥有不同的规则)的文件权限,还是想知道哪个朋友能够向我推荐德里的饭店,抑或是要计算出从上海浦东国际机场到伦敦希思罗机场的最佳包裹托运路径,图都是对领域进行建模的非常自然的方式。从电子商务到内容管理,从生物信息学到推荐,我们都可以通过图从已有的数据中获取更多的价值。想象一下对于任意一位演员使用 SQL 查询来计算“六度理论(six degrees of Kevin Bacon)”该有多么复杂。在 Cypher(由 Neo4j 提供的一种声明式、类似于 SQL 的图查询语言)中,这却是小菜一碟。 Facebook 发布了其图搜索。Google 使用知识图谱改进搜索结果。我认为图型数据库将会成为未来几年中最有趣的创新源泉之一,无论是对于初创公司还是对于大公司来说都是如此。在刚开始使用图型数据库时,我觉得他们只会在社交应用(Glassdoor 使用了 Neo4j)和为人们以及包裹寻找最便宜或是最快的路径等生态圈中会发挥作用。随着越来越熟悉 Neo4j,我认识到有很多很多领域都会从基于图的模型中获益。当然了,我觉得图不会成为存储解决方案的主要建模范式,不过他们肯定会在很广泛的领域中发挥作用的。

InfoQ:Redis 称自己是个“高级的键——值”存储,不过我听到你说它不仅仅是个键——值存储,能否说说你的想法么?

虽然 Redis 是个键值存储(与文档、图型或是列式数据存储不同),但它不仅仅只是键与值。Redis 提供了列表、集合、有序集合与 pub:sub 功能,你可以通过他们非常高效地解决很多问题。它还是个内存解决方案(高性能),可以实现快照或是记录到磁盘。Redis 并不是个通用的“一般意义上的”数据存储,不过如果你在进行持久化解决方案的决策,那么 Redis 值得你好好学学,因为它的处理能力非常棒。

InfoQ:还有哪些你认为值得谈谈的趋势?

NoSQL 及 NewSQL 之后的大趋势是不变的数据存储。在过去几年中,围绕着使用函数式编程跨多台服务器进行高效的可伸缩性处理,人们讨论了很多。通过最小化共享的可变状态,函数式编程模型避免了 OO 编程在大量计算机之间进行可伸缩性处理时所带来的死锁问题。 不过如果我们认为共享的可变状态是进行可伸缩性处理时的问题,那么我们为何不将数据库设计为可变的呢?如果考虑到了这一点,那么你会发现数据库只不过是个大型的共享的可变存储(有点像所有服务器共享的一个全局变量集合)。很多公司(包括 Twitter)现在都在探寻不变数据存储的属性——数据库可以接收新的数据,不过现有数据通常不会被修改或删除。了解这个趋势的一个很好的起始点是 Datomic——这是由 Clojure 作者 Rich Hickey 所构建的一个数据存储。

查看英文原文: Current Trends in NoSQL - Q&A with Peter Bell

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2013-11-07 09:481591
用户头像

发布了 88 篇内容, 共 258.5 次阅读, 收获喜欢 8 次。

关注

评论

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

透过现象看本质:Java类动态加载和热替换

华为云开发者联盟

Java JVM 插件 类加载器 热替换

成年人最渴望的奖励就是成功 Jan 20, 2021

王泰

28天写作

如何成为分享高手(上)

熊斌

个人成长 28天写作

详解MySQL执行事务的语法和流程

华为云开发者联盟

MySQL 数据库 事务 服务器 SQL语法

C2C场外交易系统APP开发|C2C场外交易软件开发

系统开发

20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测

阿里巴巴云原生

人工智能 机器学习 深度学习 Serverless 云原生

对容器镜像的思考和讨论

阿里巴巴云原生

Docker 容器 开发者 云原生 CloudNative

uni-app的发展和应用

anyRTC开发者

uni-app 音视频 WebRTC sdk 安卓

迟到的年度总结-数据的人生

松子(李博源)

大数据 数据中台 总结 年度总结

产品经理-第一周作业

LLL777

花一分钟体验大数据任务调度系统 - Apache DolphinScheduler 第一个官方 Docker 镜像

代立冬

大数据 workflow 任务编排

时间是最大的变量

石君

时间 28天写作

“数据库网络故障”愁坏了头,五种方法带你解难题

华为云开发者联盟

数据库 数据 GaussDB 网络故障 丢包

豆瓣9.5分,它是Scala领域当之无愧的王者之作!

博文视点Broadview

scala 编程语言 豆瓣高分

谈谈统计学正态分布阈值原理在数据分析工作中的运用

vivo互联网技术

大数据 正态分布 核心

如何 3 步一键部署开源容器应用?

binggg

Docker 开源 Serverless 云开发 应用

项目管理全史(持续更新)

Ian哥

28天写作

送你一个造梦机器,然后入眠「幻想短篇 12/28」

道伟

28天写作

[讨论]几个能有效应对 35 岁危机的办法

穿甲兵

招投标挖坑、防坑指南

浪潮云

tob 招标 投标

智汇华云 | ArcherOS Stack利旧FC-SAN存储

华云数据

存储

SpringCloud 从入门到精通 13---Nacos集群搭建

Felix

长文攻略|如何打造一键部署的云开发应用

binggg

小程序 大前端 全栈 开发应用 云开发

产品经理训练营第一章作业

阿波

NanoDet:这是个小于4M超轻量目标检测模型

华为云开发者联盟

PyTorch 目标检测 yolo nanodet

2020年中国DevOps应用发展研究——艾瑞咨询报告总结

禅道项目管理

DevOps 行业资讯 趋势

Soul 网关实践 05|sofa服务&SpringCloud服务接入网关

哼干嘛

张小龙关于微信十年的产品思考 | 视频号 28 天 (13)

赵新龙

28天写作

两万字长文总结,梳理 Java 入门进阶那些事

程序员小跃

Java redis 架构 后端 面向对象编程

交易所APP系统软件开发案例

系统开发

Soul 学习笔记---数据同步 websocket 连接建立过程分析(五)

fightingting

Soul网关

Peter Bell谈NoSQL的发展趋势_DevOps & 平台工程_Brian Rinaldi_InfoQ精选文章