QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

James Phillips 谈从关系型数据库转到 NoSQL

  • 2011-12-13
  • 本文字数:1225 字

    阅读完需:约 4 分钟

James Phillips, Couchbase 的创始人之一。他最近的一场演讲谈到分布式面向文档的数据库和关系型数据库模型之间的差别,以及从关系型数据库转到NoSQL 时数据库开发者需掌握的知识。InfoQ 就面向文档的NoSQL 的优缺点采访了James。

InfoQ:在谈及数据持久和数据管理时,您提到了“大数据 (Big Data)”和“大用户 (Big User)”,可否解释这两个概念之间的区别以及如何在二者之间做选择?

James Phillips大数据:需要收集并存储大量信息,然后对信息进行分析和学习。它需要持续的高吞吐的写(收集信息时)和读(分析信息时)。数据本地化模型的优化方法是将“关联的数据”放在物理上临近的地方,从而确保分析的高效性。通常来说,它需要少量做数据插入的同步写和少量做信息分析的同步读。

大用户:需要为随机的读和写,以及大量并发读和写提供服务。数据本地化模型的优化方法则应该将“关联的数据”尽可能地分散开,从而将读和写操作最大限度地分散到不同的服务器和转轴之上。

InfoQ:NoSQL 数据库与关系型数据库相比,在数据建模和应用开发上其最主要的差别是什么?

James:关系型数据模型(及其数据建模)关注的是数据规范化的过程——将“记录”分解成许多表以及表之间的关系,降低数据冗余。在过去,系统资源有限时,其意义非常大,因为每个字节的处理效率都很关键。而面向文档的方式存储数据则是更加自然的方式。其缺点是在某些情况下,数据要冗余,查询模型也自然更复杂一些。但是,数据建模要简单得多,因为现实世界中,信息并不总需要规范。而且,因为限制少了,应用开发者的生产力也提高了。

InfoQ:在演讲中您谈到面向文档的数据库。在哪些情况下,用面向文档的数据库优于关系型数据库?

James:面向文档的数据库在以下场景中更胜一筹:需要数据模型的灵活性(数据管理过程中,需求变更无需变更 schema);低延迟、持久、高吞吐的读写性能;通过将数据和 I/O 方便地分散到廉价服务器和虚拟机之上,使基础设施费用与应用程序性能成正比。

InfoQ:面向文档的数据库支持哪些数据持久和数据管理的架构模式?

James:大多数 NoSQL 及面向文档的数据库都支持多种持久化模型:从完全的同步策略(比如,只有当数据写入磁盘或持久设备之后才报告写操作成功)到多种异步存储策略(比如,接受写请求之后,在实际写入磁盘之前就报告成功;或者,仅仅在完成数据备份之后即报告成功)。

InfoQ:面向文档的数据库有哪些缺点?应用架构师和开发者在使用这类数据库时应考虑哪些问题?

James:目前,面向文档的数据库不直接支持连接(join),事务的支持通常只针对单个文档,之前提到的数据持久灵活性也可算作缺点。它产生了数据冗余,在某些情况下,当数据变更时需要在多处更新数据。所以,基于面向文档数据库的应用要为处理相互依赖的更新做更多事情。将来,我们会看到使用外部事务监控器来填补目前对事务支持上的断层。同样,在应用层也有办法实现诸如连接查询之类的功能。


查看英文原文: James Phillips on Moving from Relational to NoSQL Databases

2011-12-13 04:234625
用户头像

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

关注

评论

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

马拉车算法 (最长回文串 例题 密码截获)

Five

算法 8月月更

九章云极DataCanvas公司与中国信通院完成可信AI基础软件战略合作

九章云极DataCanvas

人工智能 数据智能 数智化 可信AI

7 天能找到 Go 工作吗?学学 Go 数组和指针试试

梦想橡皮擦

Python 爬虫 8月月更

什么是企业知识库?有什么作用?如何搭建?@附源码

金陵老街

Java、 企业数字化转型 spring-boot

数据中台逼近炒作顶峰之际,Gartner给想建数据中台的一些建议

雨果

数据中台 Gartner

打了15天,如何做到在容器权限上不失一分?

青藤云安全

容器安全 攻防演练

SAP ABAP 和 Java 里的弱引用(WeakReference)和软引用(SoftReference)

汪子熙

Java 引用 SAP abap 8月月更

开源一夏 | 在 STM32L051 上使用 RT-Thread (四、无线温湿度传感器 之 串口通讯)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

Python图像处理丨基于OpenCV和像素处理的图像灰度化处理

华为云开发者联盟

Python 人工智能 图像

四个层次管好设备,为生产保驾护航

PreMaint

预测性维护 设备管理 设备预测性维护

如何避免数据湖变成数据沼泽

Kyligence

数据湖 数据管理 智能多维数据库

5分钟,带你看完24岁60W年薪架构师的简历,上面竟然写着精通JVM

收到请回复

Java JVM java面试 简历模板 金九银十

前端监控系列3 | 如何衡量一个站点的性能好坏

字节跳动终端技术

字节跳动 前端 性能监控 火山引擎 站点性能

高效完成需求计划的四个关键 | 敏捷开发

LigaAI

Scrum 敏捷开发 Sprint LigaAI spring event

OpenHarmony有氧拳击之设备端开发

OpenHarmony开发者

OpenHarmony

数字知识库-知识图谱管理系统

金陵老街

Java 数字化 知识图谱 企事业系统

基于RPC接口的业务侧流量回放

转转技术团队

测试工具 流量回放 测试方案

一文搞懂EMAS Serverless小程序开发|电子书免费下载

hum建应用专家

Serverless emas

ABAP 一组关键字 IS BOUND, IS NOT INITIAL 和 IS ASSIGNED 的用法辨析

汪子熙

指针 应用 SAP abap 8月月更

前半个月的行动中,整个圈子都在疯传的“内网King”到底是个啥?

青藤云安全

网络安全 主机安全 攻防演练

Web3.0 DAPP项目智能合约系统开发技术详情

开发微hkkf5566

一文带你认知定时消息发布RocketMQ

华为云开发者联盟

云计算 后端

博睿数据入选《2022爱分析· 银行数字化厂商全景报告》

博睿数据

银行 智能运维 博睿数据

修筑产学研用一体化的通衢,从一场比赛背后瞭望苏州园区人才培养新范式

脑极体

Meta项目功能测试 | 开启PrestoDB和Aria扫描优化

Alluxio

hive presto Alluxio 大数据 开源 8月月更

优雅,永不过时!SpringBoot中这样编写Controller层代码,那叫一个完美

Java永远的神

Java 程序员 面试 程序人生 springboot

开源一夏 | 在 STM32L051 上使用 RT-Thread (三、无线温湿度传感器 之 I2C通讯)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

【8.12-8.19】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

云图说丨初识可信分布式身份服务

华为云开发者联盟

云计算 安全 后端

字节一面:HTTPS 一定安全可靠吗?

程序员小毕

Java 程序员 面试 https 校招

龙蜥开发者说:我眼里的龙蜥社区:一个包容的大家庭 | 第 10 期

OpenAnolis小助手

Linux 开源 操作系统 龙蜥开发者说 参与贡献

James Phillips谈从关系型数据库转到NoSQL_DevOps & 平台工程_Srini Penchikala_InfoQ精选文章