云数据库系统综述外文翻译资料
2021-12-30 22:41:11
英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
云数据库系统综述
这项对15个流行云数据库的调查概述了每个系统及其存储平台、许可证类型以及用于编写NoSQLs源代码的编程语言。它还考虑了诸如数据处理技术和计费实践等特性。
互联网的指数级增长导致了数据源的爆炸,造成了存储和数据可用性问题。此外,数据类型数量的增加在存储和操作非结构化数据方面带来了挑战。
这些问题导致公司和开源社区构建了新的工具,称为NoSQL系统或“关键价值存储”系统,旨在大规模提供按需服务和简化应用程序开发和部署。NoSQL数据库对于处理非常大的半结构化和非结构化数据的应用程序很有用。大数据的日益普及将迫使许多公司使用NoSQL数据库而不是传统的数据库,因此您可以期望看到供应商提供简化的推广和对NoSQL解决方案的额外支持。
根据nosql-database.org,至少有150个nosql数据库,具有满足不同用户群需求的各种特性。在这里不可能讨论所有这些数据库,因此我选择了15个具有代表性(而非包容性)的流行NoSQL数据库,并回顾了其中一些有趣的特点。
调查系统
根据弹性级别的不同,NoSQL数据库可以分为两组。第一组包含真正有弹性的数据库,例如MongoDB,它允许向集群中添加新的节点,而不会给客户机带来任何可观察到的停机时间。第二组包含严格定义的基于bigtable的nosql数据库(如cassandra和hbase),这些数据库在将新节点添加到集群中时会有显著的停机时间。
通过路由机制和算法来决定何时移动一起工作的数据块,可以在添加节点或从集群中删除节点时实现恒定的数据可用性。例如,当必须将数据移动到新添加的节点时,在复制过程中,数据将来自于原始位置。当新节点具有最新版本的数据时,路由进程开始向该节点发送请求。
Cassandra
ApacheCassandra数据库提供了良好的可扩展性和高可用性,而没有令人满意的性能。它在商品硬件(云基础设施)上的容错能力和线性可扩展性使其成为关键任务数据的理想平台。Cassandra功能允许跨多个数据中心进行复制,从而在区域中断期间降低数据可用性的延迟。Cassandra的ColumnFamily信息模型通过日志结构更新的性能、对物化视图(也称为快照)的强大支持以及强大的内置缓存为列索引提供了便利。
Netflix、Twitter、Urban Airship、Reddit、Cisco、OpenX、Digg、Cloudkick和Ooyala是使用Cassandra处理大型、活跃的在线交互式数据集的一些公司。已知最大的Cassandra集群在400多台机器上拥有超过300 字节的信息。
分布式数据库
Google的Bigtable将两个任意字符串值(行键和列键)和一个时间戳(创建3D映射)映射到关联的任意字节数组中。Bigtable可以被描述为一个轻的、分布的、多维排序的地图。它被开发成在众多机器之间扩展到千兆字节范围,以便于添加机器,自动利用这些资源而不进行任何重新配置。当尺寸超过指定限制时,使用bmdiff 算法和zippy开源压缩算法压缩平板电脑,广为流行,这是LZ77算法的一个较小的空间最优变化,但在计算时间方面更有效。
要获取存储在bigtable中的特定行,新的客户机必须连接到树的所有级别,但在上层获取的信息被缓存,这意味着对存储在已查找的平板电脑中的数据的进一步请求将直接发送到树的最后一级。
HBase
HBase是一个开源、分布式、版本化、面向列的数据存储,仿照谷歌的Bigtable。基本上,它是bigtable的克隆,在Hadoop分布式文件系统之上提供了一个实时、结构化的数据库。HBase适用于需要对大数据进行随机、实时读/写访问的应用程序。HBase的目标是在商品硬件集群上托管具有数十亿行和数百万列的非常大的表。
HBase提供线性和模块化的可扩展性(数据库处理越来越多数据的能力)、一致的读写、表的自动和可配置分片(数据库中的水平分区)以及区域服务器之间的自动故障转移支持。它还提供了方便的基类,用于支持Hadoop MapReduce作业与Hbase表,一个易于使用的Java API用于客户端访问,块缓存和Bloom过滤器的实时查询,以及查询谓词通过服务器端过滤器下推。最后,它有一个可扩展的基于JRuBy的外壳,并包含通过Hadoop度量子系统支持通过Java管理扩展来导出度量的文件。
MongoDB
MongoDB是一个开源、无模式、面向文档、可扩展的NoSQL数据库系统。这种高性能、容错、持久的系统提供了一种复杂的查询语言以及MapReduce的实现。
MongoDB提供
- 面向文档的存储JavaScript对象表示法(JSON)-带有动态模式的文档提供了简单和强大的功能;
- 完全索引支持,即可以索引任何属性;
- 数据可用性,它可以跨局域网和广域网镜像以实现可扩展性;以及
- 在不影响功能的情况下,自动硬盘可水平缩放。
它还支持丰富的、基于文档的查询;用于无争用性能的原子修改器;灵活的聚合和数据处理;以及gridfs(用于存储大于16MB的文件的MongoDB文件格式),因此它可以存储任意大小的文件,而不会使堆栈复杂化。
Pnuts
Pnuts系统是一个由多个应用程序共享的大规模托管、集中管理的数据库系统(见图1)。它支持雅虎的数据服务于Web应用程序,而不是复杂的查询(如对网络爬虫的离线分析)。
Pnuts提供数据管理服务。这大大缩短了应用程序开发时间,因为开发人员不必设计和实现自己的可扩展、可靠的数据管理解决方案。将多个应用程序合并为一个服务,使用户可以将操作成本分摊到多个应用程序上,并将相同的最佳实践应用到数据管理中,管理许多许多不同的应用。此外,拥有共享服务意味着您可以保留资源(服务器、磁盘等),并将其快速分配给突然流行的应用程序。
Hypertable
Hypertable是一个高性能、分布式、开源、基于NoSQL云的数据存储系统,旨在支持需要最大性能、可扩展性和可靠性的应用程序。对于必须管理快速发展的在线实时应用程序数据支持的组织来说,Hypertable将非常有用。以Google的Bigtable项目为模型,Hypertable设计用于管理大型商品服务器集群上的信息存储和处理,提供了对机器和组件故障的恢复能力。
CouchDB
ApacheCouchDB是一个使用Erlang编写的面向文档的数据库,Erlang是一种功能强大的编程语言,非常适合构建并发分布式系统。可以使用JavaScript以MapReduce的方式查询和索引CouchDB。它也提供具有双向冲突检测和解决功能的增量复制。它提供了一个可从任何允许HTTP请求的环境访问的RESTfulJSONAPI。有许多第三方客户端库,使选择编程语言更加容易。CouchDB的内置Web管理控制台使用浏览器发出的HTTP请求直接与数据库通信。
Voldemort
Voldemort是一个完全分布式的键值存储系统。每个节点都是独立的,没有中心故障点或协调点。Voldemort被设计成一个简单的存储,它的速度足以避免在它上面需要一个缓存层。软件架构由多个层组成,每个层实现放置、获取和删除操作。每个层负责特定的功能,如TCP/IP通信、路由或冲突解决。
使用Voldemort,数据将自动在多个服务器上复制并自动分区,因此每个服务器只包含总数据的一个子集。服务器故障是透明处理的,支持可插入的序列化以允许丰富的键和值,包括带有命名字段的列表和元组。Voldemort可以与通用串行化框架相结合,如协议缓冲区、节俭、AVRO和Java序列化。
此外,在Voldemort中:
- 对数据项进行版本控制,以在不影响系统可用性的情况下最大限度地提高故障场景中的数据完整性;
- 根据机器、网络、磁盘系统和数据复制系数,单节点性能每秒可执行10000–20000次操作;
- 可插拔数据放置策略可以支持诸如分布在地理上相距很远的数据中心等功能。
Voldemort在Linkedin中用于高可扩展性存储功能,而简单的功能分区还不够。但是,它经常有错误消息,可能是由未捕获的错误引起的。源代码在Apache2.0许可证下可用。
Infinispan
Infinispan是一个点对点内存数据网格(IMDG)平台,为Java虚拟机编写。它是一个非常可扩展、高度可用的开放源代码数据网格平台。它是一个分布式的内存键值NoSQL存储区,旨在充分利用最新的多处理器/多核架构,并提供分布式缓存功能。InfiniSpan提供了一个缓存接口,扩展java.util.map,并可选地支持对等网络体系结构,以便在数据网格周围有效地分布系统。
Dynomite
Dynomite提供集成的存储和分发,要求开发人员采用简单的关键价值数据模型来提高可用性和可扩展性。通过分离可用性和可扩展性,开发人员可以利用Dynomite复杂的分布和缩放技术,同时在选择数据模型时仍具有很大的灵活性。
Dynomite用Erlang编写,是一个一致、分布式、键值存储的NoSQL数据库系统。该设计基于亚马逊的Dynamo论文。Dynomite目前实现矢量时钟、Merkle树和一致的哈希。它还支持可调的仲裁感知、成员闲话、分区的闲话同步、可插拔的存储引擎、节俭的界面和带有画布可视化的Web控制台。
Redis
Redis(远程字典服务器)是一个易于使用的开源、高级的内存键值数据库,其中所有的键都保存在内存(RAM)中。它通常被称为数据结构服务器,因为密钥可以包含字符串、哈希、列表、集和排序集。它的节点到节点协议是二进制的,针对带宽和速度进行了优化,但其值不能大于512兆字节,并且不使用操作系统的虚拟内存。
Redis提供基于MySQL的弹性数据库服务。它在位于欧洲和北美的Amazon Web Services数据中心托管该服务,因此客户可以选择距离最近的位置。1Xeround的数据库与主机无关,因此用户可以轻松地在云服务提供商之间迁移。
Xeround
Xeround的双层体系结构包括访问节点和数据节点。访问节点接收应用程序请求、与数据节点通信、执行计算并传递请求结果,而数据节点存储数据。Xeround将数据存储在未绑定到底层硬件基础结构的虚拟分区中。每个分区被复制到不同的数据节点,位于不同的服务器上,提供高可用性和完全的弹性。除了提供多个地理位置外,Xeround还计划向其他云提供商提供服务,包括Gogrid和Rackspace。
Xeround Basic提供的数据大小高达500兆字节,支持多达40个并发连接(Xeround Pro支持多达4800个连接),最大吞吐量高达每秒8兆字节。
SimpleDB
亚马逊网络服务有自己的NOSQL云数据库服务Simpledb,它可以支
全文共7607字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[2772]