对比云端NoSQL数据库类型
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
对于社交网络、流媒体内容、新闻发布和零售,全球可扩展在线服务的出现极大地改变了对应用基础设施和软件架构的要求。最重要的转变之一是系统存储、整理和访问数据的方式。
传统的关系数据库管理系统(RDBMS)(例如甲骨文数据库)不太适合Web应用程序,因为这些应用程序需要分布式横向扩展群集基础架构。NoSQL数据库更适合松散耦合的设计,其中应用程序数据和可执行代码分布在多个机器和数据中心。基础设施即服务(IaaS)提供商的根源是在开源社区和云原生开发,他们已经构建了各种NoSQL数据库类型来适应不同的数据和用例。
优点和缺点
由于Web应用程序和服务是NoSQL开发背后的主要驱动因素,因此,与RDBMS相比,各种类型的NoSQL数据库都更具优势。这些优势包括以下:
- 可处理各种数据类型;
- 更高的性能和更低的延迟性;
- 非常适合非结构化数据,例如文本、图像、音频和视频;
- 更适合水平扩展的松耦合系统;
- 非常适合时间序列或其他流数据,例如事件日志和物联网数据;
- 可处理不同形式的NoSQL系统和非结构化数据模型的可用性;
- 可访问广泛的开源或低成本部署,比复杂的RDBMS更便宜。
然而,这些好处是有代价的。例如,RDBMS系统通过ACID模型确保更直接的一致性和可靠性,ACID模型是指原子性、一致性、隔离性和持久性。而NoSQL数据库则遵循BASE模型:基本可用性、软状态和最终一致性。此外,这些非关系数据库缺乏内置机制来检查数据完整性;它必须在外部代码中完成。***,通常不支持复杂的SQL操作,例如复合选择语句或表连接。
NoSQL数据库类别
NoSQL并不是特定类型的数据库,而是具有几种变体的数据库类别:
- 键值存储:也称为哈希表,此存储范例整理数据为一列记录,这些记录按键或哈希值索引,指向一个或多个数据对象或记录。这类似于字典,每个键可以有不同数量的值,而不是固定长度。
- 内存缓存:这是完全适合系统RAM的一种键值存储。通过消除仅为处理特定应用程序功能或情景而扩展整个数据库的需要,这可加速性能并降低成本。
- 文档存储:虽然它是键值数据库的子集,但文档存储中的值遵循预定义的层级结构,该结构嵌入有关存储内容的元数据。文档存储通常以文本格式编码,例如XML、YAML或JSON,或二进制变体,例如Microsoft Office文件或PDF。
- 搜索数据库:一种专用文档存储,其中文档索引可以分片并分布在多个节点,以提供大量可扩展性,以加速特定条目的检索。
- 基于列的存储:此存储按列而不是行整理数据。列被分组为相关数据系列,可共同访问。
- 图形数据库:这种类型的数据库不采用通用行列结构,而是支持条目集合及其相互关系。
NoSQL数据库对比
随着云基础架构成为部署Web应用程序的流行选择,AWS、微软和Google Cloud纷纷构建了NoSQL服务和产品,以更好地适应不同的数据类型和用例。每种产品的具体细节会有所不同,下表展示了每种NoSQL数据库产品的情况:
正如NoSQL数据库比较表所示,每种NoSQL数据库类型都有几种流行的开源和商业产品。每个第三方选项都具有特定的功能和优势,而云替代方案不一定提供。例如,MongoDB可以进行配置,使复制的数据立即与读取保持一致,而不是最终的一致性。
但是,最重要的区别是部署模型:私有管理(内部部署或托管基础架构)与云服务。这里取决于企业是否更喜欢自我管理、高度可配置和受控制的软件,还是托管云服务,以消除前期资本支出和持续的基础架构管理开销。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2019年7月数据库流行度排行:Oracle王者归来获大幅增长
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 2019 已然走过一半,DB-Engines 的数据库流行度排行榜 7 月出炉,这可以算是数据库流行度的半年报了。 7 月的明星产品是 Oracle,其积分大幅增长了 22 分,较去年同期增长了 43 分,这说明 Oracle 数据库在过去获得了更多的关注。 在刚刚度过的 6 月中,Oracle 宣布了和微软的战略合作,这引发了市场广泛的关注: 6 月 5 日,Oracle 和微软双方公布了达成合作伙伴关系的消息,主要包含几个部分,首先是微软 Azure 与 Oracle Cloud 之间的直接网络连接,将实现两个平台实践更快速的数据共享。两家厂商表示,信息将以 10Gb 每秒连接的速度传输,这比公共网络更快也更可靠。 这一合作被认为是双方联合对抗 AWS 的举措之一,在多云管理的趋势中,Oracle 和微软一起展示了什么叫做「没有不可能」。 这一合作带来的技术改变包括: 无缝连接 Azure 和 Oracle Cloud,允许客户将其本地数据中心扩展到两个云平台。直连首先在 Ashburn (北美)和 Azure...
- 下一篇
为什么会产生微服务架构,原来是这些原因
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 Web应用架构受系统用户量、开发人员组织方式影响严重。过去二十年互联网迅速发展,Web架构也从单体式演进出微服务,背后还有比如 Martin Fowler 提出的理论支撑。虽然每个人都听说过微服务,但是很多人并不太清楚为什么要这么做,应该怎么做,怎么拆。要回答这个问题我认为需要从Web架构的演化历史的高度去理解这些架构设计中的取舍。 首先我们改进系统架构的目的是为了满足系统可靠性、并发量以及快速开发的需求。所有的改进方案都是为了解决这其中一个或多个问题而产生的。 单体结构 单体结构 最开始Web服务器、数据库全部部署在同一台服务器上,这也是最简单的应用架构,通常公司早期项目都采用这种方式。在很长一段时间里单体结构可以满足系统快速开发与并发量的需求。当用户量越来越大,通常会数据库性能会成为系统瓶颈,此时可以将Web业务与数据库部署在不同服务器上,增强数据库服务器的配置并做读写分离等提高系统的吞吐量与可用性。 与此同时也可以将业务系统等价部署在多台服务器上来提高系统吞吐量,但整体上这仍然是一个单体应用。 单体等价部署 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路