数据库选择最佳实践-NoSQL-全面指南 (数据库选择最经典的一句)
简介
NoSQL数据库因其可扩展性、灵活性、对大数据分析的需求以及云计算普及等因素而备受追捧。AlliedMarketResearch的一份报告预测,2022年至2032年,全球NoSQL市场预计将从73亿美元增长到863亿美元,复合年增长率为28%。
NoSQL数据库类型
NoSQL数据库分为几种类型,每种类型都有其独特的特点:
- 文档型:存储JSON文档,支持灵活的模式
- 图数据库:侧重于相互关联的数据,便于复杂关系建模
- 键值型:专注于简单键值对检索,通常不适用于范围查询
- 多模型:提供多种数据模型的灵活性,同时牺牲了一些专门功能
选择NoSQL数据库时的考虑因素
选择NoSQL数据库时,需要考虑以下因素:
- 延迟要求:是毫秒、亚秒、秒还是分钟?
- 可扩展性和数据一致性:是否需要水平扩展?是否需要ACID一致性还是最终一致性?
- 部署选项:内部部署、云端部署还是混合云?
- 集成:是否需要与云计算架构(如无服务器和Kubernetes)集成?
领先的NoSQL数据库
以下是市场上领先的NoSQL数据库提供商:
Aerospike
Aerospike是一款开源、分布式、实时的NoSQL数据库,专为高吞吐量和零容忍停机的应用程序设计。它支持多模型数据,提供了无限的可扩展性。
Amazon DynamoDB
DynamoDB是一款无服务器、全托管、毫秒级响应时间的NoSQL数据库服务。它提供了按需付费模式,并支持自动扩缩。
Couchbase Server
Couchbase Server是一个内置了缓存的开源JSON文档数据库平台。它支持多模型文档存储、灵活的索引和全文本搜索。
MongoDB
MongoDB是一款受欢迎的开源文档型数据库,提供灵活的模式和横向扩展。它支持丰富的查询语言和聚合操作。
Redis
Redis是一款开源键值型数据库,以其速度和简单性而闻名。它支持多种数据类型,包括字符串、列表、集合和有序集合。
结论
NoSQL数据库因其可扩展性、灵活性、对大数据分析的支持和云计算集成等优势而成为企业越来越多地采用的选择。了解不同的类型、考虑因素和领先的提供商对于选择最适合特定应用程序需求的NoSQL数据库至关重要。
NoSQL 数据库:何时使用 NoSQL 与 SQL?
NoSQL 数据库因其功能性、易于开发性和可扩展性而广受认可,它们越来越多地用于大数据和实时 Web 应用程序,在本文中,我们通过示例讨论 NoSQL、何时使用 NoSQL 与 SQL 及其用例。
NoSQL是一种下一代数据库管理系统 (DBMS)。NoSQL 数据库具有灵活的模式,可用于构建具有大量数据和高负载的现代应用程序。
“NoSQL”一词最初是由 Carlo Strozzi 在 1998 年创造的,尽管自 1960 年代后期以来就已经存在类似的数据库。然而,NoSQL 的发展始于 2009 年初,并且发展迅速。
在处理大量数据时,任何关系数据库管理系统 (RDBMS) 的响应时间都会变慢。为了解决这个问题,我们可以通过升级现有硬件来“扩大”信息系统,这非常昂贵。但是,NoSQL 可以更好地横向扩展并且更具成本效益。
NoSQL 对于非结构化或非常大的数据对象(例如聊天日志数据、视频或图像)非常有用,这就是为什么 NoSQL 在微软、谷歌、亚马逊、Meta (Facebook) 等互联网巨头中特别受欢迎的原因。
一些流行的 NoSQL 数据库包括:
随着企业更快地积累更大的数据集,结构化数据和关系模式并不总是适合。有必要使用非结构化数据和大型对象来更好地捕获这些信息。
传统的 RDBMS 使用 SQL(结构化查询语言)语法来存储和检索结构化数据,相反,NoSQL 数据库包含广泛的功能,可以存储和检索结构化、半结构化、非结构化和多态数据。
有时,NoSQL 也被称为“ 不仅仅是 SQL ”,强调它可能支持类似 SQL 的语言或与 SQL 数据库并列。SQL 和 NoSQL DBMS 之间的一个区别是 JOIN 功能。SQL 数据库使用 JOIN 子句来组合来自两个或多个表的行,因为 NoSQL 数据库本质上不是表格的,所以这个功能并不总是可行或相关的。
但是,一些 NoSQL DBMS 可以执行类似于 JOIN的操作——就像 MongoDB 一样。这并不意味着不再需要 SQL DBMS,相反,NoSQL 和 SQL 数据库倾向于以不同的方式解决类似的问题。
一般来说,在以下情况下,NoSQL 比 SQL 更可取:
许多行业都在采用 NoSQL,取代关系数据库,从而为某些业务应用程序提供更高的灵活性和可扩展性,下面给出了 NoSQL 数据库的一些企业用例。
内容管理是一组用于收集、管理、传递、检索和发布任何格式的信息的过程,包括文本、图像、音频和视频。NoSQL 数据库可以通过其灵活和开放的数据模型为存储多媒体内容提供更好的选择。
例如,福布斯在短短几个月内就构建了一个基于 MongoDB 的定制内容管理系统,以更低的成本为他们提供了更大的敏捷性。
大数据是指太大而无法通过传统处理系统处理的数据集,实时存储和检索大数据的系统在分析 历史 数据的同时使用流处理来摄取新数据,这是一系列非常适合 NoSQL 数据库的功能。
Zoom使用 DynamoDB(按需模式)使其数据能够在没有性能问题的情况下进行扩展,即使该服务在 COVID-19 大流行的早期使用量激增。
物联网设备具有连接到互联网或通信网络的嵌入式软件和传感器,能够在无需人工干预的情况下收集和共享数据。随着数十亿台设备生成数不清的数据,IoT NoSQL 数据库为 IoT 服务提供商提供了可扩展性和更灵活的架构。
Freshub就是这样的一项服务,它从 MySQL 切换到 MongoDB,以更好地处理其大型、动态、非统一的数据集。
拥有数十亿智能手机用户,可扩展性正成为在移动设备上提供服务的企业面临的最大挑战。具有更灵活数据模型的 NoSQL DBMS 通常是完美的解决方案。
例如,The Weather Channel使用 MongoDB 数据库每分钟处理数百万个请求,同时还处理用户数据并提供天气更新。
如何根据性能选择内存NoSQL数据库
本文主要内容是测试了不同NoSQL数据库在测试工具YCSB中的表现。 我们选取了3款流行的内存(in-memory)数据库管理系统:Redis,Tarantool 以及 CouchBase,还有缓存系统Memchached。 Memchached虽然不属于数据库管理系统但常作为快速存储系统使用。 测试环境由4台在Microsoft Azure Cloud中的虚拟机组成的计算机组组成。 这些虚拟机同属于一个数据中心。 nosql-1和nosql-2用作测试Tarantool和CouchBase,nosql-3和nosql-4用作测试Redis,Azure Redis Cache 以及 Memcached。 这些机器都安装和配置了相应数据库和测试项目。 虚拟机的配置为4核A3 CPU,7GB RAM,120GB硬盘。 数据库及设置内存数据库管理系统会存储所有在主内存中的数据并在磁碟上进行持续更新操作;透过日志记录每个数据的修改以确保连贯性。 由于是以append-only方式进行日志写入,因此它很少遇到瓶颈问题;读取/写入都不会造成频繁的磁碟头移动。 Redis在2009推出,目前的最新版本是3.0.5。 我们这里使用的版本是3.0.4,以append-only(只附加)方式进行数据管理,与其配合使用的是Microsoft Azure Redis Cache工具。 Tarantool是一款开源NoSQL数据库管理系统。 我们使用的是Tarantool 1.6.7-126-gb35aff9,日志采用write-ahead(先写)模式。 Memcached是一款分布式内存缓存系统,这里使用是Memcached 1.4.14-0ubuntu9。 Couchbase Server是开源分布式NoSQL面向文档数据库,这里使用的版本是Couchbase 4.0.0-4047-1。 YCSB测试工具Yahoo! Cloud Serving Benchmark(YCSB)是功能强大的NoSQL数据库性能测试工具,它提供了6种主要的负载工作类型,以字母A到F来区分。 负载A负责更新操作,极值是50/50的读写操作,如用于进行新近操作记录。 负载B负责读取操作,极值是95/5的读写操作,如用于进行图片标签管理,多进行标签读取操作。 负载C负载100%的读取操作,如用于进行用户属性获取。 负载D以先进先出方式进行插入操作,如用户进行最新数据读取。 负载E负责小范围记录读取而不是单个记录读取,如线程会话。 负载F负责记录的读取,修改和写入,如用户信息管理。 我们对配置文件作了两处参数修改:数据条目recordcount设为,操作条目operationcount设为。 YCSB是多线程工具,我们将以8, 16, 32, 64, 128 及256 线程来进行测试。 详细的测试脚本请点击这里进行下载。 下列测试结果图以颜色进行测试对象区分,Tarantool (HASH) (蓝)Tarantool (TREE)(浅蓝)Redis (红)Azure Redis Cache (橙)Memcached (绿)CouchBase(黑)更多图片请点击[这里]查看。 结论Tarantool在所有负载类型测试中皆取得了最优成绩。 它创建了一个无锁内存引擎,以协同多任务方式进行操作而不是互斥或并行处理方式。 根据以下性能图表现,我们的结论是Tarantool的高吞吐量处理是其最大优势之一。 因此在多数场合下,Tarantool是用户的最佳选择。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。