关于将关系数据库的数据导入到内存中键值数据库Redis的补充外文翻译资料

 2022-08-06 09:08

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


关于将关系数据库的数据导入到内存中键值数据库Redis的补充

1st ALAE EL ALAMI

数学与计算机科学系(新能源技术与纳米材料创新实验室)

UH1理工学院

摩洛哥塞塔特

2nd MOHAMED BAHAJ

数学与计算机科学系(新能源技术与纳米材料创新实验室)

UH1理工学院

摩洛哥塞塔特

3rd YOUNES KHOURDIFI

数学与计算机科学系(新能源技术与纳米材料创新实验室)

UH1理工学院

摩洛哥塞塔特

摘要-键值数据库,因其返回非结构化值的作用,被广泛采用以提供对具有关联表格功能的信息的快速访问。

当您第一次查看数据库的性能时,内存处理是延迟的最终解决方案。这种将关系数据库迁移到键值数据库Redis的方法的诞生源于内存性能的提高。整个迁移是基于从关系数据库中提取数据并按照关系数据库与两个数据库通信的方法将其注入到键值数据库中。整个迁移过程是在不受人为因素干扰的情况下自动完成的,已经创建了一个原型,证明了这种方法的有效性。

索引项-RDB,NoSQL,Redis,数据迁移,键值数据库,内存。

一、引言

键值数据库是NoSQL数据库中最灵活的类型,也是NoSQL最基本、最简单的实现。它们的开发是为了弥补关系数据库固有的限制。在关系数据库中,数据被组织在表中,模式必须是预定义的。键/值模型可以被同化为分布式哈希表,其中没有模式,数据的值是不透明的。数据简单地由一对键/值表示,值可以是一个简单的字符串,一个序列化的对象。缺少结构或类型对查询有很大影响。实际上,SQL查询之前携带的所有智能都必须由查询BD的应用程序携带,即相关应用程序从对存储在这些值中的元素的完全控制中获益的程度。

值键表示是其他类型NoSQL数据库中最简单的,它非常适合缓存和快速访问信息。这种表示方法通常可以获得更好的性能,因为读写操作被简化为简单的磁盘访问。

内存中的数据库是指其信息存储在主存中以加快响应时间的数据库。数据源以非关系压缩格式加载到系统的随机存取存储器中。内存数据库简化了处理查询所涉及的任务。Redis是一个非关系引擎,主要在内存中工作。它的目标是尽可能快地操作维护在那里的数据结构。它既是一个键值对管理工具,又是一个memcached方式的数据缓存。事实上,它提供了与memcached相同的特性和好处,但是具有更丰富、更强的模型,并且提供了比memcached更多的特性,因此更强大、更灵活。Redis的目标是非常快速、高效和轻量级[1]。

Redis以键值对的形式工作,其值可以是五种类型(字符串、列表、集、哈希和排序集)。在内存中的写入是在单线程中完成的,以隔离写入并避免数据丢失。为了避免数据不一致的问题,特别是在写入多个不同的键时,我们使用事务。Redis提供了一个“key:value”系统来处理缓存数据。它允许访问RAM中不断存储的数据,并避免重复相同的上游计算过程。Redis提供了一个功能,允许您存储复杂的数据,例如表、列表、对象或位图,以取代传统的数据库。

Redis将RAM中的数据保存到硬盘中,这样重启机器时数据不会丢失。此功能允许您解除Redis与简单易失性内存缓存系统的关联。

随着互联网和云计算的发展,需要数据库能够充分存储和处理大数据,对读写性能的要求也越来越高,因此关系模型正面临着各种各样的挑战。特别是在搜索引擎等大规模、高并发的应用中,利用关系数据库来存储和查询动态用户数据已经变得不完整.[20].

上面的讨论强调了为什么迁移Redis BDR是必要的。现有的研究似乎没有提供一个解决方案来处理这种情况,并且上面的建议都不能被认为是以完全自动化的方式将RDB转换为Redis的方法。在第一部分中,对键值数据库进行了一般性的研究,然后介绍了提出迁移解决方案的老工作。最后,我们提出了我们的主要贡献,即提供了一种从关系数据库到Redis目标数据库的迁移方法,整个方法侧重于自动迁移。

二 、相关工作

有几种方法讨论数据从一种技术迁移到另一种技术,每种方法都利用不同的概念,从对象概念一直到导航概念。

M.Castellanos和F.Saltor建立了一个规范化模型来转换联邦系统数据库的模式,这涉及到一个知识获取过程,以提高模式的语义水平。该方法提出了一种方法,通过将关系模式转换为名为BLOOM的面向对象数据模型来扩展关系模式。它基于包含依赖性,但也考虑了排除和互补依赖性[3][4]。Myller-Claudino等人提出了一种称为R2NoSQL的方法,该方法定义了概念映射,以改进将数据从关系数据库转换为NoSQL数据库的过程。该方法基于三个方面:定义RDB和NoSQL之间的概念对应关系,使用概念映射实现元数据转换,以及对源表进行分类以帮助理解数据库设计中的含义[2]。

Soutou提出了一个改进关系数据库逆向工程的过程。该过程通过数据字典、数据模式和数据实例分析的组合从关系数据库中检索当前聚合关系。所提出的过程可以利用poweramc(Sybase)、Designer(Oracle)[5][6]等逆向工程选项细化商业工具的概念方案。

googleappengine数据存储是一个基于Google服务器设计和托管web应用程序的平台,它提供了从关系数据库管理系统到googleappengine的数据迁移。GAE为NoSQL数据存储提供了一个包含表模式和CSV或XML文件的配置文件。GAE提供给用户进行修改,从而消除了迁移过程中75%的工作量[7]。

一种迁移方法,侧重于通过广泛的元数据利用和处理集,从关系数据库中提取对象模型的不同概念的数据模型[11]。从关系数据库源迁移到几种类型的目标数据库(面向对象、对象关系、XML)[12][13][14],从而迁移物理方案[10],然后建立数据与目标物理方案的对应关系[9]。

Oracle为业界提供了双格式内存的数据库选项。格式是纯内存中的列类型[15],没有磁盘交互。该服务提供多个级别的压缩和矢量处理。可以在缓冲区缓存中执行对相同表的选择性搜索[8]。Dynamo是一个高度可用的键值结构化存储系统。它同时具有数据库和分布式哈希表的特性。Dynamo放弃了某些故障场景所涵盖的一致性。它广泛使用了对象版本控制和应用程序辅助的冲突解决,为开发人员提供了一个新的接口。Dynamo是增量可伸缩的,并允许服务所有者根据其当前请求负载进行上下伸缩。Dynamo允许服务所有者对其存储系统进行个性化设置,以满足其期望的性能[19]。

三、 Redis与其他类型键值数据库的比较研究

本文比较研究了NoSQL数据库键值的主要特征,区分了不同的键值数据库。数据库的选择是根据数据库引擎的排名来选择的,数据库引擎的排名是根据数据库管理系统的流行程度来分类的。下面说明了每个数据库管理系统的优缺点,并对存储、持久性和延迟标准进行了比较总结。

我们将键值数据库用于多种用例:

bull;为快速数据存储建立缓存。

bull;由于某些键值数据库提供了多种方式,例如列表、集合、队列等,因此可以列出数据。

bull;像彭博终端一样保存实时信息,使金融专业人士能够访问彭博专业服务,通过该服务,用户可以监控和分析来自金融市场和金融市场的实时数据传输。

  1. Redis vs Memcached

这两种类型都是内存存储,它将数据保存在内存中,使它们可用作缓存层。就性能而言,这两种类型与公差水平几乎相似[18]。

Memcached和Redis自2003年和2009年诞生以来已经成熟。第一种侧重于稳定性和优化,而第二种侧重于添加新特性。

Redis在数据的持久性级别上优于Memcached,因为它可以在计划内或计划外关闭期间引导缓存。Redis还可以复制数据。复制可用于实现容错缓存配置。Memcached它不是持久的,它只是保存内存中的所有内容而不保存,因为它的主要目标是作为一个缓存结构[21]。

  1. Redis vs Riak

Riak有一个优势,它的容错性,可以在任何时候执行读写操作,甚至在网络故障或分区的情况下,使它非常适合从销售点等应用程序收集数据。Riak和Redis的最大区别在于它们的典型用法。Redis曾经是一个内存缓存,专门用于提高应用程序的速度。至于Riak,它作为数据存储用于数据持久性。Redis专注于速度。Riak专注于一个简单的可扩展性,但缺乏快速的容错性,因为它是写在磁盘上的。

  1. Redis vs Voldemort

Voldemort擅长对大量数据执行复杂的操作,它易于非程序员使用,它有非常好的阅读性能,它周围有一个很好的社区。

Redis是非常可靠的,它将有助于集成到一个应用程序中,并有利于对数据进行强数学运算。

D.在不同的键值数据库之间进行选择

每一个数据存储指控都以用户的身份受到企业和组织的赞誉,因为他们每个人都有自己的行动,而且在每一个案例中都有不同的东西。他们之间的决定将取决于个人条件和紧急情况或约束[22]。

1) Redis:Redis适合存储短期数据,比如表达式和协议握手数据。读写数据的寿命很短,但发生的数量和频率都很高。如果数据丢失的风险是可以容忍的,那么延迟可以保持得很小。Redis还提出了可定制的持久性结构。Redis有五种不同的数据结构,允许它处理实体,如排序集和时间序列数据。

2) Riak:Riak的优势在于它的容错性。如果停机是一个问题,即使是很短的时间,Riak提供高读写吞吐量和零停机保证。这使得它适用于数据采集和控制系统等应用。灵活的一致性和易扩展性促使您使用Riak。

3) Memcached:Memcached提供了内存速度和简单性,允许快速部署和轻松开发。作为一个缓存系统对象,它的目的是通过移除后端数据库的负载来加速动态web应用程序。它已被广泛用于大型网站的扩展。目前Memcached的一个优势是能够处理集群。

4) Voldemort:Voldemort将内存缓存与存储系统相关联,这样就不需要单独的缓存层。数据分配是透明的,并且允许集群扩展而无需重新调整所有数据。数据复制是由一个简单的API决定的,它能够适应各种特定于应用程序的策略[23]。

四、 迁移模型

键值存储模型是基于数据访问的最简单模型之一。键值模型比关系模型更能优先存储某些类型的数据,例如HTML页面、大量数据。

键值模型没有关系模型复杂,因为它提供了更好的可伸缩性,因为没有关系,因为搜索路径直接绘制到内存中的对象。

键值数据库的建模是在应用程序层进行的,开发人员从应用程序的角度来解决问题,使数据符合所需的格式。

我们的迁移方法基于Redis数据库解决方案,该解决方案属于键/值数据库系列。Redis提供了一个非常强大的API,并包含了计算分发工具[24]。键/值数据库可以看作是一个大的哈希图,其中每个键都存储一个值。为了建立迁移,我们使用了Jedis,这是一个Java for Redis的客户机库,它是一种流行的内存数据结构存储,也可以保存在磁盘上。下图显示了如何将数据从关系数据库MySQL迁移到键值数据库Redis。

Redis的基本用途是存储与键相关的值。Redis服务器就像一个巨大的散列图,它非常强大。Redis默认配置为将所有数据保存在其内存中。这项技术允许直接将数据返回给用户而不必询问数据库,这使得通过有效地限制发送到数据库的请求的数量来减轻服务器的负载成为可能。通过限制服务器上的负载,我们可以减少它们的请求数,从而减少我们的开销。Redis是一个缓存系统,它提供了与纯缓存系统的其他类型不同的功能,例如持久性(在发生故障或其他情况下将数据保存到硬盘驱动器,数据不会丢失)、复制和安全性。

应用程序使用存储介质(如硬盘驱动器)建立持久性(如物理存储介质建立持久性)的一个新愿景是促进带来一种改变,即我们进行编程数据持久性的方式。这一设想将使我们充分受益于存储类内存的潜力。

图1。建立了将关系模型迁移到键值模型的过程。

如果我们想将Redis形式化为关系数据库,它将采用以下形式:

CREATE TABLE IF NOT EXISTS redis (

key varchar(512 mb) NOT NULL,

value varchar(512 mb),

PRIMARY KEY (key)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

该方法的开始是基于一个接口,该接口允许用户结合基于JDBC的驱动程序了解数据库管理系统的功能。然后,我们使用数据库结果集的表格表示,这些结果是通过执行查询数据库的指令生成的。下面的伪代码仔细解释了执行迁移所采取的步骤。

DataSource ds=new MySqlDataSource

(“localhost”、“rdb”、“root”、“”);

database db=new Database(ds);

String monUrl=ds.getUrl();

Connection=

DriverManager..getConnection

(monUrl,“root”,“”);

@SuppressWarnings(“resource”)

Jedis creation=new Jedis(“localhost”);

//我们从连接中检索元数据

DatabaseMetaData dmd=conne

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[261051],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。