与传统的表格(或SQL)数据库相比,NoSQL数据库为软件开发人员和其他用户提供了更高的运行速度和更高的灵活性。

NoSQL数据库使用的数据结构 - 键值对,宽列,图形或文档 - 与关系数据库使用的数据结构不同。因此,NoSQL数据库可以在数千台服务器上进行扩展,但有时会丢失数据一致性。但是,今天特别重要的是,NoSQL数据库特别适合处理大量分布式数据,这使它们成为大数据和分析项目的理想选择。

如何选择NoSQL数据库:关键因素

市场上有二十多个开源和商业NoSQL数据库,您如何选择合适的产品或云服务?

IDC研究副总裁Carl Olofson表示,一个重要因素是了解您想要提供数据的目的。

NoSQL数据库的架构和功能各不相同,因此您需要选择最适合所需任务的类型:

  • 通常,键值存储最适合应用程序中的多个进程或微服务持久共享数据。
  • 如果您计划对邻近度计算,欺诈检测或关联结构评估进行深层关系分析,则图形数据库可能是更好的选择。
  • 如果您需要非常快速地以大量数据收集数据以进行分析,请查看广泛的列存储。此类NoSQL数据库也倾向于提供文档和图形支持。

不要假设您的初始项目是您将应用于数据库的唯一使用模型。您可能只是开始执行状态或会话数据管理,然后查看事务处理,然后再进行一些分析。

在短期内,重点应该是性能,规模,安全性,对各种工作负载(包括事务,运营和分析)的支持,与现有生态系统的集成,管理工作,云支持以及支持的用例类型。其中,安全性至关重要。应该更多地考虑具有安全认证的NoSQL数据库。寻找诸如静态数据和运动数据加密等功能,以保护敏感信息。

Yuhanna说,并非所有NoSQL数据库都可以很好地扩展,所以不要因为产品属于NoSQL类别,它将理所当然比关系数据库更好地扩展和执行。

NoSQL在横向扩展模型中提供不同的一致性级别,因此请查看满足您特定要求的解决方案。例如,如果要支持高度关键的类似银行的事务,关系数据库仍然是最佳解决方案。

您应该考虑的NoSQL数据库

以下是您应该考虑的NoSQL数据库。

MongoDB的

MongoDB是最受欢迎的NoSQL数据库。MongoDB是一个免费的,开源的,跨平台的,面向文档的数据库,它使用类似JSON的文档和模式。该平台由MongoDB Inc.维护,并在Gnu Affero通用公共许可证和Apache许可证的共同下发布。

MongoDB Atlas结合了公司从各种规模的组织优化数千个部署中学到的运营最佳实践。基于云的产品可处理数据库管理,设置和配置,软件修补,监控和备份,并作为分布式数据库集群运行。

主要功能包括完全托管备份,连续备份,时间点恢复,可查询快照,自动生成的图表,实时性能面板和可自定义的警报。用户可以使用内置的实时迁移服务将实时数据导入MongoDB Atlas,对应用程序的影响最小。

该数据库是本地存储,处理和访问文档以及其他类型数据集的最佳选择,它在开发人员中很受欢迎,因为它易于使用,可以扩展以满足要求苛刻的应用程序,并提供全面的工具和合作伙伴生态系统。MongoDB的常见用例包括个性化,实时分析,物联网(IoT),大数据,产品/资产目录,安全和欺诈检测,移动应用程序,数据中心,内容管理以及社交和协作应用程序。

Amazon DynamoDB

Amazon DynamoDB是另一种流行的基于云的NoSQL数据库。Amazon DynamoDB是一个完全托管的NoSQL平台,它使用固态驱动器(SSD)来存储,处理和访问数据,以支持高性能和规模驱动的应用程序。

它根据工作负载的吞吐量和存储要求自动分割服务器上的数据,并处理更大的高性能用例。

用户可以通过应用程序编程接口(API)和Amazon Web Services管理控制台来扩展,监视和管理其表。DynamoDB与Amazon EMR(Apache Hadoop,Apache Spark和HBase的托管框架)紧密集成,可以运行跨多个数据源的查询。

该平台同时支持键值和文档模型,还具有用于地理空间索引的库。组织使用DynamoDB来支持各种用例,包括广告活动,社交媒体应用程序,跟踪游戏信息,收集和分析传感器和日志数据以及电子商务。

DataStax和DataStax企业平台

DataStax利用Apache Cassandra在数据中心之间进行分发。DataStax NoSQL的强大优势在于其全球分布式架构。DataStax分发,贡献和支持Apache Cassandra的商业企业版,这是一个开源项目。Cassandra是一个基于Google Bigtable的广泛存储分布式键值数据库。

其主要功能包括容错,横向扩展架构,低延迟数据访问和简化管理。DataStax提供其他功能,如分析,搜索,监控,内存和安全性,以支持关键应用程序。

DataStax Enterprise支持各种类型的业务应用程序,包括事务性,分析性,预测性分析和混合工作负载。它提供更广泛的多模型功能,支持图形和JSON数据。最重要的用例包括欺诈检测,产品目录,消费者个性化,推荐引擎和物联网。

Couchbase

Couchbase是由Couchbase Inc.分发的JSON文档支持数据库平台。开源NoSQL DBMS支持广泛的用例。

Couchbase Server是一个开源的NoSQL键值和带有内置缓存的文档数据库,它吸引了那些需要能够提供性能,多模型,规模和自动化的数据库的企业。

组织使用Couchbase来支持社交和移动应用程序,内容和元数据存储,电子商务交易和在线游戏应用程序。Couchbase为文档,灵活的数据模型,索引,全文搜索和MapReduce提供全面支持,以实现实时分析。

大型企业使用该平台来支持各种关键工作负载,包括运营和分析流程。

Redis Enterprise

开源平台Redis Enterprise是Redis Labs赞助的最常见的键值NSQ数据库之一。(在InfoWorld上了解有关使用Redis进行实时计量,管理访问控制和流量整形WebSockets的更多信息。)

Redis提供高性能的内存数据库,支持宽松和强大的一致性,灵活的无模式模型,高可用性和易部署性。

Redis Labs开发了其他功能和技术,这些功能和技术封装了开源软件,并为Redis提供了增强的部署架构,同时支持开源API。

数据模型支持键值; 各种数据结构,如列表,集合,位图和哈希; 以及一系列通过可插拔模块的模型,如搜索,图形,JSON和XML。Redis支持各种用例,包括实时分析,事务,数据提取,社交媒体,作业管理,消息队列和缓存。

MarkLogic

MarkLogic NoSQL Database是一个运营和事务性企业数据库,专为NoSQL速度和规模而设计。使用多模型方法,数据库提供集成和存储关键数据,然后允许您将数据视为文档,图形或关系数据(无论是内部部署,虚拟化还是云端)。

它在数据级别提供高可用性和安全性功能,包括ACID合规性,元素级安全性,匿名化,编校和高级加密。出于这些原因,它适用于希望共享大量敏感信息的企业。MarkLogic也是唯一具有Common Criteria认证的NoSQL数据库。

其他主要功能旨在通过创建单个统一的数据视图来改善用户体验,这些数据可以搜索并且可以使用元数据随时进行验证。这些功能包括双时态,语义,摄取结构化和非结构化数据的能力(JSON,XML,RDF,地理空间和大型二进制文件的本机存储)以及“问任何东西”Universal Index。

有助于解决治理和企业合规性的运营数据中心使得MarkLogic对于拥有数据孤岛的大型企业以及面临法规和增加的网络安全威胁的企业非常有用。

其他NoSQL选项

其他开源和商业NoSQL数据库产品包括:

  • 来自Systap的Blazegraph
  • Google BigQuery,来自Google
  • 来自Levyx的Helium
  • Microsoft Azure Cosmos DB,来自Microsoft
  • Neo4j
  • 来自Oracle的Oracle NoSQL数据库
  • Riak KV,由Basho发行
  • ThingSpan,来自Objectivity
  • Titan,来自Aurelius(被DataStax收购)

英文原文:www.javaworld.com/article/326…

更多文章欢迎访问: http://www.apexyun.com
公众号:银河系1号
联系邮箱:public@space-explore.com
(未经同意,请勿转载)  

转载于:https://juejin.im/post/5c9d940af265da60e34708e6

如何选择合适的NoSQL数据库相关推荐

  1. 监控系统如何选择合适的时序数据库?

    1.可以按照以下需求自行选择合适的存储: 小而精,性能高,数据量较小(亿级): InfluxDB 简单,数据量不大(千万级),有联合查询.关系型数据库基础:timescales 数据量较大,大数据服务 ...

  2. 数据库入门:如何选择SQL和NoSQL数据库

    数据是数据科学所有子领域的基础.无论您要建造的产品用途如何,都需要获取和分析数据.通常,您需要的这些数据存储在DBMS(数据库管理系统)中. 本文来自<数据黑客>,登录官网可精彩资讯和文章 ...

  3. 关系数据库NoSQL数据库

    在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发.因为成熟稳定的关系数据库产品并不是很多,而供你选择的免费版本就更加少了,所以互联网领域基本上都选择了免费的MySQL数据库. ...

  4. 关系数据库还是NoSQL数据库

    上一篇简单的说明了为什么要使用NoSQL.接下来我们看下如何把NoSQL引入到我们的项目中,我们到底要不要把NoSQL引入到项目中. 在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库 ...

  5. NoSQL 数据库 简介

    一.  NoSQL概念 开源的数据库用的最多的是PostgreSQL和MySQL. 关于这2者的对比,参考我的Blog: MySQL 和 PostgreSQL 对比 http://blog.csdn. ...

  6. NoSQL数据库家族图谱

    导读:要选择一种NoSQL数据库,你需要先了解自己的数据,其次了解你的应用需要如何使用这些数据. 关键词:NoSQL 非关系型数据库 [TechTarget中国原创] NoSQL数据库的产生就是为了解 ...

  7. NoSql数据库:Cassandra,Mongo,Redis数据库比较

    1.什么是NoSql数据库? NoSql(不仅是Sql)数据库是可水平扩展,持久存储半结构或非结构化数据并具有灵活模式的非关系数据库. 这些数据库支持多种数据模型,例如键值,文档,列族,基于图形的,内 ...

  8. NoSQL系列:选择合适的数据库

    NoSQL系列:选择合适的数据库 为什么使用NoSQL数据库? 阻抗失衡 关系模型和内存中的数据结构不匹配 采用更为方便的数据交互方式提升开发效率 待处理的数据量很大 数据量超过关系型数据库的承载能力 ...

  9. mysql数据库 数据类型自动编号选哪个_MySQL表类型、选择合适数据类型、字符集...

    MySQL学习笔记(4) 表类型(存储引擎)的选择 插件式存储引擎是MySQL最重要特性之一,5.5之前默认引擎为MyISAM,之后为InnoDB,如需修改默认存储引擎,可在参数文件中设置defaul ...

最新文章

  1. np.reshape 中的 -1 参数
  2. 就想写个爬虫,我到底要学多少东西啊?
  3. java实现单向链表
  4. 0902 - Preferences Permission
  5. 目标检测方法简介:RPN(Region Proposal Network) and SSD(Single Shot MultiBox Detector)
  6. Linux的僵尸进程产生原因及解决方法
  7. MapReduce-流量统计求和-排序-JobMain代码和测试运行
  8. MySQL存储过程之事务管理
  9. 使用JMeter和Yourkit进行REST / HTTP服务的性能分析
  10. 砝码称重 洛谷 1441
  11. Mysql语句与应用
  12. qt获取当前场景中的所有图形项的层次
  13. java函数调用约定_2020-09-04:函数调用约定了解么?
  14. 用Python3对QQ导出的文本聊天记录进行整理。
  15. 数字人民币支付新选择 没有网络时也能使用
  16. java中,判断当前时间是否处于某个一个时间段内
  17. 这些中国顶级黑客带来的价值远比负面影响多!
  18. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码...
  19. 学习博客:关键字package包的使用
  20. Linux下按照时间段过滤日志

热门文章

  1. java 判断数的位数_Java判断数字位数的两种方法
  2. java jar 配置_java jar包与配置文件的写法
  3. SpringMVC容器初始化篇----ContextLoaderListener
  4. oracle中间件微信公众号,对TP5.1中间件融合微信公众号代码的优化
  5. php js统计链接点击次数,JS实现在线统计一个页面内鼠标点击次数的方法
  6. 如何将CSDN文档输出PDF文件?
  7. 智能车竞赛技术报告 | 双车接力组 - 大连海事大学 - 同舟拾贰队
  8. 2021年春季学期-信号与系统-第五次作业参考答案-第七小题
  9. 简单BP网络识别数码表字符
  10. 关于2020年第十五届全国大学生智能汽车竞赛山东赛区技术答辩的相关规则