数据访问方法和装置、数据存储方法和装置制造方法及图纸

技术编号:24888710 阅读:21 留言:0更新日期:2020-07-14 18:16
本申请涉及一种数据访问方法和装置、数据存储方法和装置。所述数据访问方法包括:在接收到读数据请求时,对所述读数据请求进行解析,得到查询条件;当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据;当所述查询条件符合预设复杂访问条件时,在关系型数据库中查询符合所述查询条件的数据;所述非关系型数据库与所述关系型数据库所存储数据一致;基于查询到的数据响应所述读数据请求。采用本方法既能满足高频访问需求也能满足复杂查询需求。

【技术实现步骤摘要】
数据访问方法和装置、数据存储方法和装置
本申请涉及数据库
,特别是涉及一种数据访问方法和装置、数据存储方法和装置。
技术介绍
互联网中每天都会产生海量数据,为了实现对海量数据的有效管理,互联网服务提供商大多会将产生的数据存储在数据库(DataBase,DB)中。目前,主要是采用MySQL、Oracle等关系型数据库对数据进行存储。关系型数据库采用结构化查询语言进行数据查询,并支持对数据库中的数据进行增删改查操作以及跨表查询功能,使用便利,易于理解,因而得到越来越广的应用。然而,关系型数据库是以单张数据表的形式进行数据存储,这种单表读写的性能限制无法适应与日俱增的数据访问量,影响数据的正常访问,逐渐成为业务发展的瓶颈。
技术实现思路
基于此,有必要针对上述技术问题,提供一种既能满足高并发访问需求也能满足复杂查询需求的数据访问及存储方法、装置、计算机设备和存储介质。一种数据访问方法,所述方法包括:在接收到读数据请求时,对所述读数据请求进行解析,得到查询条件;当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据;当所述查询条件符合预设复杂访问条件时,在关系型数据库中查询符合所述查询条件的数据;所述非关系型数据库与所述关系型数据库所存储数据一致;基于查询到的数据响应所述读数据请求。一种数据访问装置,所述装置包括:数据读取请求模块,用于在接收到读数据请求时,对所述读数据请求进行解析,得到查询条件;数据查询模块,用于当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据;当所述查询条件符合预设复杂访问条件时,在关系型数据库中查询符合所述查询条件的数据;所述非关系型数据库与所述关系型数据库所存储数据一致;查询结果反馈模块,用于基于查询到的数据响应所述读数据请求。在一个实施例中,所述数据访问装置还包括访问场景识别模块,用于当查询条件为预设的路由字段时,判定查询条件符合预设高频访问条件;当查询条件包括除路由字段之外的查询字段时,判定查询条件符合预设复杂访问条件。在一个实施例中,非关系型数据库包括多个分布式子库;所述数据查询模块包括高频访问查询模块,用于当查询条件为路由字段时,确定查询字段所属的分布式区间;在用于存储分布式区间内的数据的分布式子库中,查询符合查询条件的数据。在一个实施例中,非关系型数据库具有一个或多个;所述高频访问查询模块还用于当查询条件为路由字段时,在将路由字段作为分布式存储依据的非关系型数据库中,查询符合查询条件的数据。在一个实施例中,关系型数据库包括主库和至少一个从库;所述数据查询模块还包括复杂访问查询模块,用于基于查询条件向主库发起查询请求;当在预设时长内未接收到主库针对查询请求的查询应答时,将其中一个从库确定为当前的主库;在当前的主库中查询符合查询条件的数据。在一个实施例中,所述数据访问装置还包括半同步复制模块,用于获取对主库执行写操作时生成的日志;将日志发送至一个或多个目标的从库,使目标的从库根据日志同步执行写操作;当接收到目标的从库在执行写操作后返回的同步确认信息时,基于写入成功的结果来响应用于触发写操作的写数据请求,向其余从库发送日志。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:在接收到读数据请求时,对所述读数据请求进行解析,得到查询条件;当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据;当所述查询条件符合预设复杂访问条件时,在关系型数据库中查询符合所述查询条件的数据;所述非关系型数据库与所述关系型数据库所存储数据一致;基于查询到的数据响应所述读数据请求。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:在接收到读数据请求时,对所述读数据请求进行解析,得到查询条件;当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据;当所述查询条件符合预设复杂访问条件时,在关系型数据库中查询符合所述查询条件的数据;所述非关系型数据库与所述关系型数据库所存储数据一致;基于查询到的数据响应所述读数据请求。上述数据访问方法、装置、计算机设备和存储介质,关系型数据库支持低并发的数据访问操作,能够提供根据复杂查询条件进行数据筛选的能力;非关系型数据库支持高并发的数据访问操作,能够根据简单查询条件进行数据筛选的能力;通过结合两种存储技术的优势并保证两种数据库中数据的一致性,根据数据访问场景区分查询数据的来源,即高并发的数据访问场景从非关系型数据库中查询数据,而并发度不高但查询条件复杂的数据访问场景则可以从关系型数据库中查询数据,从而既能满足高并发的数据访问请求,也能够满足复杂的数据访问请求,提高数据访问性能。一种数据存储方法,所述方法包括:在接收到写数据请求时,对所述写数据请求进行解析,得到待写入数据;将所述待写入数据写入一种数据库;将所述待写入数据从所述一种数据库同步至另一种数据库;其中,所述数据库的种类包括关系型数据库和非关系型数据库;所述非关系型数据库用于响应符合预设高频访问条件的读数据请求,所述关系型数据库用于响应符合预设复杂访问条件的读数据请求;基于所述待写入数据的写入结果响应所述写数据请求。在一个实施例中,上述数据存储方法还包括:当所述写数据请求为插入数据请求,且所述数据标识尚未存储于所述关系型数据库中,在将所述待写入数据插入所述关系型数据库及所述非关系型数据库后,初始化所述待写入数据的入队标识为待入队;当所述数据标识已存储于关系型数据库中,但尚未存储于非关系型数据库时,在将所述待写入数据插入所述非关系型数据库后,将所述待写入数据的数据标识添加至所述消息队列,并初始化所述待写入数据的入队标识为排队中。在一个实施例中,上述数据存储方法还包括:按照预设时间频率统计所述关系型数据库所存储全部数据的总数据量;根据所述总数据量确定进行遍历的目标时间频率;所述对所述关系型数据库中每条数据进行遍历包括:按照所述目标时间频率对所述关系型数据库中每条数据进行遍历。一种数据存储装置,所述装置包括:数据写入请求模块,用于在接收到写数据请求时,对所述写数据请求进行解析,得到待写入数据;数据准实时同步模块,用于将所述待写入数据写入一种数据库;将所述待写入数据从所述一种数据库同步至另一种数据库;其中,所述数据库的种类包括关系型数据库和非关系型数据库;所述非关系型数据库用于响应符合预设高频访问条件的读数据请求,所述关系型数据库用于响应符合预设复杂访问条件的读数据请求;写入结果反馈模块,用于基于所述待写入数据的写入结果响应所述写数据请求。在一个实施例中,待写入数据包括数据标识和目标数据内容;所本文档来自技高网...

【技术保护点】
1.一种数据访问方法,包括:/n在接收到读数据请求时,对所述读数据请求进行解析,得到查询条件;/n当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据;/n当所述查询条件符合预设复杂访问条件时,在关系型数据库中查询符合所述查询条件的数据;所述非关系型数据库与所述关系型数据库所存储数据一致;/n基于查询到的数据响应所述读数据请求。/n

【技术特征摘要】
1.一种数据访问方法,包括:
在接收到读数据请求时,对所述读数据请求进行解析,得到查询条件;
当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据;
当所述查询条件符合预设复杂访问条件时,在关系型数据库中查询符合所述查询条件的数据;所述非关系型数据库与所述关系型数据库所存储数据一致;
基于查询到的数据响应所述读数据请求。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述查询条件为预设的路由字段时,判定所述查询条件符合预设高频访问条件;
当所述查询条件包括除所述预设的路由字段之外的查询字段时,判定所述查询条件符合预设复杂访问条件。


3.根据权利要求1所述的方法,其特征在于,所述非关系型数据库包括多个分布式子库;所述当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据包括:
当所述查询条件为预设的路由字段时,确定所述查询字段所属的分布式区间;
在用于存储所述分布式区间内的数据的分布式子库中,查询符合所述查询条件的数据。


4.根据权利要求1所述的方法,其特征在于,所述非关系型数据库具有一个或多个;所述当所述查询条件符合预设高频访问条件时,在非关系型数据库中查询符合所述查询条件的数据包括:
当所述查询条件为路由字段时,在将所述路由字段作为分布式存储依据的非关系型数据库中,查询符合所述查询条件的数据。


5.根据权利要求1所述的方法,其特征在于,所述关系型数据库包括主库和至少一个从库;所述在关系型数据库中查询符合所述查询条件的数据包括:
基于所述查询条件向所述主库发起查询请求;
当在预设时长内未接收到所述主库针对所述查询请求的查询应答时,将其中一个所述从库确定为当前的主库;
在所述当前的主库中查询符合所述查询条件的数据。


6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取对所述主库执行写操作时生成的日志;
将所述日志发送至一个或多个目标的从库,使所述目标的从库根据所述日志同步执行所述写操作;
当接收到所述目标的从库在执行所述写操作后返回的同步确认信息时,基于写入成功的结果来响应用于触发所述写操作的写数据请求,向其余所述从库发送所述日志。


7.一种数据存储方法,所述方法包括:
在接收到写数据请求时,对所述写数据请求进行解析,得到待写入数据;
将所述待写入数据写入一种数据库;
将所述待写入数据从所述一种数据库同步至另一种数据库;其中,所述数据库的种类包括关系型数据库和非关系型数据库;所述非关系型数据库用于响应符合预设高频访问条件的读数据请求,所述关系型数据库用于响应符合预设复杂访问条件的读数据请求;
基于所述待写入数据的写入结果响应所述写数据请求。


8.根据权利要求7所述的方法,其特征在于,所述待写入数据包括数据标识和目标数据内容;所述将所述待写入数据写入一种数据库包括:
当所述写数据请求为数据更新请求时,根据所述目标数据内容对所述非关系型数据库中存储的与所述数据标识对应的原数据内容进行更新;
所述将所述待写入数据从所述一种数据库同步至另一种数据库包括:
在所述非关系型数据库更新完毕时,通过消息队列将所述目标数据内容从所述非关系型数据库异步更新至所述关系型数据库。


9.根据权利要求8所述的方法,其特征在于,所述目标数据内容包括待写入数据的目标版本;所述根据目标数据内容对所述非关系型数据库存储的与所述数据标识对应的原数据内容...

【专利技术属性】
技术研发人员:欧霄黄东庆刘骏健李建东
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1