与传统的表格(或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收购)