本发明属于计算机信息存储索引技术领域,尤其涉及一种NoSQL数据库条件查询的方法及系统。
背景技术:
随着大数据概念的兴起,越来越多的系统采用了NoSQL数据库,来替代传统的关系型数据库,以解决大数据量的情况下,关系型数据库的性能急剧下降的问题。但是,对于主流的NoSQL数据库,其强项在于高吞吐量、高可用性,对于条件查询存在天然的缺陷,大部分只提供了主键查询,并且基本没有索引的功能。
技术实现要素:
本发明的目的在于提供一种NoSQL数据库条件查询的方法及系统,旨在解决NoSQL数据库的条件查询不完善的问题,在不影响NoSQL数据库本身功能的前提下,提供了条件查询的功能。
本发明是这样实现的,一种NoSQL数据库条件查询的方法,该方法包括以下步骤:
S1、在新增数据时,将数据写入Solr中并建立数据索引后,将数据写入NoSQL数据库;
S2、在处理数据的时,对solr中的索引处理后,对NoSQL数据库中的数据进行处理;
S3、在查询数据时,通过Solr查询出对应的主键后,从NoSQL中加载对应的完整数据。
优选地,在步骤S1中,在步骤S2中,所述处理包括对数据的更新或删除。
本发明进一步公开了一种NoSQL数据库条件查询的系统,该系统包括:
数据写入模块,用于将数据写入Solr中并建立数据索引后,将数据写入NoSQL数据库;
数据处理模块,用于在处理数据的时,对solr中的索引处理后,对NoSQL数据库中的数据进行处理;
数据查询模块,用于在查询数据时,通过Solr查询出对应的主键后,从NoSQL中加载对应的完整数据。
优选地,在数据处理模块中,所述处理包括对数据的更新或删除。
相比于现有技术的缺点和不足,本发明具有以下有益效果:本发明在不改变NoSQL数据库本身的情况下,通过外置索引的方式,结合NoSQL数据库主键查询功能和Solr的条件查询功能,完善了NoSQL数据库的条件查询功能,增加了其取代传统关系型数据库的场景。
附图说明
图1是本发明NoSQL数据库条件查询的方法一实施例的步骤流程图;
图2是本发明NoSQL数据库条件查询的系统一实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明公开了一种NoSQL数据库条件查询的方法,该方法包括以下步骤:
S1、在新增数据时,将数据写入Solr中并建立数据索引后,将数据写入NoSQL数据库;
S2、在处理数据的时,对solr中的索引处理后,对NoSQL数据库中的数据进行处理;
S3、在查询数据时,通过Solr查询出对应的主键后,从NoSQL中加载对应的完整数据。
如步骤S1所述,在新增数据时,首先将数据写入Solr中,如果失败,则重试一定次数,如果达到重试次数后仍然失败,则写入失败,返回相关错误信息。如果写入成功,则继续写入NoSQL数据库,如果NoSQL数据库写入失败,同样重试一定次数,如果仍然失败,则回滚Solr的操作,返回失败信息,否则。
如步骤S2所述,所述处理包括数据的更新或删除。在更新/删除数据时,首先更新/删除Solr中的数据,如果失败,则重试一定次数,如果达到重试次数后仍然失败,则操作失败,返回相关错误信息。如果操作成功,则继续操作NoSQL数据库,如果NoSQL数据库操作失败,同样重试一定次数,如果仍然失败,则回滚Solr的操作,返回失败信息。
如步骤S3所述,在进行条件查询时,首先查询Solr,得到满足条件的数据主键,如果成功,则查询NoSQL数据库中的对应主键的信息,如果失败,则返回相关的错误信息。
本发明的关键在于Solr和NoSQL数据库的数据同步,如果不同步,则会出现脏数据。本发明在不改变NoSQL数据库本身的情况下,通过外置索引的方式,结合NoSQL数据库主键查询功能和Solr的条件查询功能,完善了NoSQL数据库的条件查询功能,增加了其取代传统关系型数据库的场景。
参照图2所示,本发明进一步公开了一种NoSQL数据库条件查询的系统,该系统包括:
数据写入模块1,用于将数据写入Solr中并建立数据索引后,将数据写入NoSQL数据库;
数据处理模块2,用于在处理数据的时,对solr中的索引处理后,对NoSQL数据库中的数据进行处理;
数据查询模块3,用于在查询数据时,通过Solr查询出对应的主键后,从NoSQL中加载对应的完整数据
在数据写入模块1中,在新增数据时,首先将数据写入Solr中,如果失败,则重试一定次数,如果达到重试次数后仍然失败,则写入失败,返回相关错误信息。如果写入成功,则继续写入NoSQL数据库,如果NoSQL数据库写入失败,同样重试一定次数,如果仍然失败,则回滚Solr的操作,返回失败信息,否则。
在数据处理模块2中,所述处理包括数据的更新或删除。在更新/删除数据时,首先更新/删除Solr中的数据,如果失败,则重试一定次数,如果达到重试次数后仍然失败,则操作失败,返回相关错误信息。如果操作成功,则继续操作NoSQL数据库,如果NoSQL数据库操作失败,同样重试一定次数,如果仍然失败,则回滚Solr的操作,返回失败信息。
在数据查询模块3中,在进行条件查询时,首先查询Solr,得到满足条件的数据主键,如果成功,则查询NoSQL数据库中的对应主键的信息,如果失败,则返回相关的错误信息。
本发明的关键在于Solr和NoSQL数据库的数据同步,如果不同步,则会出现脏数据。本发明在不改变NoSQL数据库本身的情况下,通过外置索引的方式,结合NoSQL数据库主键查询功能和Solr的条件查询功能,完善了NoSQL数据库的条件查询功能,增加了其取代传统关系型数据库的场景。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。