CN116204549A - 数据查询方法、装置、计算机设备、存储介质和程序产品 - Google Patents

数据查询方法、装置、计算机设备、存储介质和程序产品 Download PDF

Info

Publication number
CN116204549A
CN116204549A CN202310101413.8A CN202310101413A CN116204549A CN 116204549 A CN116204549 A CN 116204549A CN 202310101413 A CN202310101413 A CN 202310101413A CN 116204549 A CN116204549 A CN 116204549A
Authority
CN
China
Prior art keywords
data
database
storage
query
queried
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310101413.8A
Other languages
English (en)
Inventor
刘秋艳
周磊
金钰
沈颖
方俊杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Bank Co Ltd
Original Assignee
Industrial Bank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial Bank Co Ltd filed Critical Industrial Bank Co Ltd
Priority to CN202310101413.8A priority Critical patent/CN116204549A/zh
Publication of CN116204549A publication Critical patent/CN116204549A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据查询方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:接收查询条件;根据所述查询条件确定待查询数据所在的数据库;当所述待查询数据在第一数据库时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据。采用本方法能够提高查询效率。

Description

数据查询方法、装置、计算机设备、存储介质和程序产品
技术领域
本申请涉及大数据技术领域,特别是涉及一种数据查询方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
近几年来,随着数据搜索的广泛应用,Elasticsearch社区的活跃程度不断加大,ElasticSearch得到了很大的发展空间,其角色定位已经不是最初的纯搜索引擎了,最初时包括大量的用户仅仅将其作为日志的搜索引擎。现在Elasticsearch已经增加了数据聚合分析(aggregation)和可视化的特性,针对其产生的应用也会越来越广泛。
HBase是一个开源的非关系型分布式数据库,它参考了谷歌的BigTable建模,实现的编程语言为Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为Hadoop提供类似于BigTable规模的服务。因此,它可以容错地存储海量稀疏的数据。HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。
传统技术中,对于Hbase中的数据的查询,分别是基于rowkey的查询和基于filter的过滤查询。然
而这两种查询方法都有其局限性,对于rowkey查询,能快速响应查询请求,查询条件不够灵活;而对于filter查询,目前支持QualifierFilter,RowFilter,ValueFilter等过滤器,其查询性能不高,尤其是对于全表扫描,随着数据量的增大其查询效率逐渐降低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高查询效率的数据查询方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供一种数据查询方法,所述方法包括:
接收查询条件;
根据所述查询条件确定待查询数据所在的数据库;
当所述待查询数据在第一数据库时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;
当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据。
在其中一个实施例中,所述方法还包括:
获取待入库数据;
确定所述待入库数据对应的数据库;
当所述待入库数据对应的数据库为第一数据库时,将所述待入库数据存储至第一数据库,并生成所述待入库数据对应的主键,将所述主键存储至第二数据库;
当所述待入库数据对应的数据库为第二数据库时,将所述待入库数据存储至第二数据库。
在其中一个实施例中,所述将所述待入库数据存储至第一数据库,并生成所述待入库数据对应的主键,包括:
获取所述第一数据库的第一配置数据,所述第一配置数据包括第一预估数据量以及第一分区大小;
基于所述第一预估数据量以及第一分区大小计算所述第一数据库的第一分区数量;
根据所述第一分区数量对所述第一数据库进行分区得到第一存储分区;
将所述待入库数据存储至第一数据库的对应的所述第一存储分区中;
计算存储在所述第一存储分区中的所述待入库数据对应的主键。
在其中一个实施例中,所述将所述待入库数据存储至第二数据库,包括:
获取所述第二数据库的第二配置数据,所述第二配置数据包括第二预估数据量以及第二分区大小;
基于所述第一预估数据量以及第二分区大小计算所述第二数据库的第二分区数量;
根据所述第二分区数量对所述第二数据库进行分区得到第二存储分区;
将所述待入库数据存储至第二数据库的对应的所述第二存储分区中。
在其中一个实施例中,所述方法还包括:
通过索引滚动策略和/或索引接力策略对所述第二数据库中的索引进行维护。
在其中一个实施例中,所述在第二数据库获取所述查询条件对应的数据索引,包括:
在所述第二数据库获取与所述查询条件的路由字段对应的第二分片区域;
从所述第二分片区域中获取所述查询条件对应的数据索引。
第二方面,本申请还提供一种数据查询装置,所述装置包括:
接收模块,用于接收查询条件;
数据库确定模块,用于根据所述查询条件确定待查询数据所在的数据库;
第一查询模块,用于当所述待查询数据在第一数据库时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;
第二查询模块,用于当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据。
第三方面,本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的任意一个实施例中的方法的步骤。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的任意一个实施例中的方法的步骤。
第五方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的任意一个实施例中的方法的步骤。
上述数据查询方法、装置、计算机设备、存储介质和计算机程序产品,根据查询条件确定待查询数据所在的数据库,从而对于在第一数据库的数据的查询时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据,这样对于第一数据库的数据查询,将复杂逻辑查询放在第二数据库,在第一数据库仅需要根据主键进行取数操作,提高处理效率。
附图说明
图1为一个实施例中数据查询方法的应用环境图;
图2为一个实施例中数据查询方法的流程示意图;
图3为一个实施例中配置界面的示意图;
图4为另一个实施例中数据查询方法的流程示意图;
图5为一个实施例中数据查询装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据查询方法,可以应用于如图1所示的应用环境中。其中,服务器102通过网络与源数据库104以及第一数据库106和第二数据库108进行通信。
其中服务器102接收到查询条件,然后根据查询条件确定待查询数据所在的数据库,当待查询数据在第一数据库106时,在第二数据库108获取查询条件对应的数据索引,并基于数据索引从第一数据库106获取到待查询数据;当待查询数据在所述第二数据库108时,根据查询条件从第二数据库108获取到待查询数据。
其中源数据库104是存储待入库数据,服务器102从源数据库104获取到待入库数据,并存储至第一数据库106和第二数据库108中。
上述数据查询方法,根据查询条件确定待查询数据所在的数据库,从而对于在第一数据库的数据的查询时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据,这样对于第一数据库的数据查询,将复杂逻辑查询放在第二数据库,在第一数据库仅需要根据主键进行取数操作,提高处理效率。
其中,服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。源数据库104、第一数据库106以及第二数据库108可以是单独的数据库或者数据库集群。可选地,该服务器102可以是spark引擎,源数据库104为hive数据库。第一数据库106为Hbase数据库,该Hbase是列示分布式存储系统,具有强大的数据存储能力以及查询性能,对于大数据量的表,会全部入库到Hbase,但由于Hbase只支持主键的查询,所以借助ES(Elasticsearch数据库)的灵活检索能力,将查询条件作为索引入库到ES中。第二数据库为Elasticsearch数据库,其中,ES主要是一个搜索引擎,同时也具备一定的数据存储能力,所以对于千万级数据量的这种表,借助ES的存储能力,直接全部入库ES。
在一个实施例中,如图2所示,提供了一种数据查询方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202:接收查询条件。
具体地,查询条件是指通过哪些字段进行查询、过滤筛选,如通过证件号查询,且根据交易日期、交易币种、交易类型等字段进行筛选,则证件号、交易日期、交易币种、交易类型等字段就作为查询条件入库ES。
S204:根据查询条件确定待查询数据所在的数据库。
其中为了方便处理,查询条件携带有数据库信息,服务器可以基于该数据库信息确定待查询数据所在的数据库,例如通过1标识第一数据库,通过0标识第二数据库等,在此不做具体限定。
在其他的实施例中,可以基于查询条件对应的字段确定待查询数据所在的数据库,在此不再赘述。
S206:当待查询数据在第一数据库时,在第二数据库获取查询条件对应的数据索引,并基于数据索引从第一数据库获取到待查询数据。
S208:当待查询数据在第二数据库时,根据查询条件从第二数据库获取到待查询数据。
具体地,数据索引是针对于大数据量的表的,该大数据量的表是需要通过第一数据库和第二数据库进行合并查询,根据查询条件先在第二数据库进行查询,以获取数据索引,通过数据索引中的关键字段去第一数据库中获取详细数据返回给前端,将复杂逻辑的查询(如多条件查询、关联查询、翻页查询、排序查询等)放在第二数据库。
对于中数据量的表,其全部查询动作均在第二数据库中进行。
为了方便,以第一数据库为Hbase,第二数据库为Elasticsearch进行说明。在查询时,对于大数据量的表,需通过Hbase及Elasticsearch进行合并查询,根据查询条件先在Elasticsearch中获取索引,通过索引中的主键字段去Hbase中获取详细数据返回给前端,将复杂逻辑的查询(如多条件查询、关联查询、翻页查询、排序查询等)放在Elasticsearch中处理,在Hbase中仅需要根据主键进行取数操作;对于中数据量的表,全部查询动作均在Elasticsearch直接进行。
上述数据查询方法,根据查询条件确定待查询数据所在的数据库,从而对于在第一数据库的数据的查询时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据,这样对于第一数据库的数据查询,将复杂逻辑查询放在第二数据库,在第一数据库仅需要根据主键进行取数操作,提高处理效率。
在其中一个实施例中,上述数据查询方法还包括数据入库步骤,该数据入库步骤包括:获取待入库数据;确定待入库数据对应的数据库;当待入库数据对应的数据库为第一数据库时,将待入库数据存储至第一数据库,并生成待入库数据对应的主键,将主键存储至第二数据库;当待入库数据对应的数据库为第二数据库时,将待入库数据存储至第二数据库。
具体地,待入库数据存储在源数据库,例如hive数据库,从hive数据库读取待入库数据,将该待入库数据存储至数据库中的过程即为数据入库的过程,其中数据入库存储根据待入库数据的数据量整体氛围两种情况,一种是大数据量的表,另外一种是中数据量的表。在其中一个可选的实施例中,可以预先配置数据量分类阈值,这样根据该分类阈值可以对待入库数据进行分类,以得到大数据量的表和中数据量的表,在其他的实施例中,还可以分为更多类别,在此不再赘述。
其中,数据入库存储根据数据量整体分为两种情况,一种是对于大数据量的表,源数据库中的数据通过Spark引擎批量写入Hbase,同时将查询条件以及Hbase主键作为索引批量写入Elasticsearch;另一种是对于中数据量的表,全部数据通过Spark引擎批量写入Elasticsearch。Hbase中表的主键、预分区数、Elasticsearch中索引的分片数、索引更新策略等均是由用户配置的,每天通过服务器自动进行批量数据的入库存储任务。
上述实施例中,待入库数据根据分类分别存储至第一数据库和第二数据库,且存储在第一数据库中的数据,将查询条件以及Hbase主键作为索引批量写入第二数据库,便于后续数据查询。
在其中一个实施例中,将待入库数据存储至第一数据库,并生成待入库数据对应的主键,包括:获取第一数据库的第一配置数据,第一配置数据包括第一预估数据量以及第一分区大小;基于第一预估数据量以及第一分区大小计算第一数据库的第一分区数量;根据第一分区数量对第一数据库进行分区得到第一存储分区;将待入库数据存储至第一数据库的对应的第一存储分区中;计算存储在第一存储分区中的待入库数据对应的主键。
在其中一个实施例中,将待入库数据存储至第二数据库,包括:获取第二数据库的第二配置数据,第二配置数据包括第二预估数据量以及第二分区大小;基于第一预估数据量以及第二分区大小计算第二数据库的第二分区数量;根据第二分区数量对第二数据库进行分区得到第二存储分区;将待入库数据存储至第二数据库的对应的第二存储分区中。
具体地,第一配置数据是第一数据库的配置数据,第二配置数据是第二数据库的配置数据,其中可以通过对接前端web页面的方式,对第一数据库和第二数据库进行配置,并将所得到的第一配置数据和第二配置数据存储至配置数据库,例如mysql数据库。
具体地,结合图3所示,用户通过终端的web页面登录配置页面,从而可以对第一数据库进行配置,具体地,包括对Hbase进行分区以及对Hbase的主键进行设置,这样在新建Hbase表时自动生成预分区和主键,以灵活控制数据入库存储的均衡性;对第二数据库进行配置可以包括对Elasticsearch进行分区、索引维护以及路由配置,以保证索引入库更新的稳定性;通过内置Elasticsearch路由配置规则,以优化海量数据的查询效率。
此外,终端可以自动从hive源数据库中获取到字段信息,以便于后续根据配置数据从hive入库到Hbase、Elasticsearch中。
在配置完成后,配置数据存储至mysql数据库,服务器在创建Hbase表、建立Elasticsearch索引时,会自动读取mysql中的配置信息,根据配置信息建议创建及分布相应表数据。
具体地,为了方便理解,分别说明第一数据库和第二数据库的建表过程:
在第一数据库中建表时,即在Hbase中建表时,根据第一数据库配置信息的第一预估数据量以及第一分区大小计算第一数据库的第一分区数量,并基于第一分区数量以及第一分区大小在第一数据库中进行分区得到多个第一分区。其中第一预估数量是在进行Hbase表配置时,会根据相应表的单条数据的字节数预估得到的表未来几年总共的数据量,第一分区大小是一个第一分区最优情况下能存储的数据量大小,其可以根据集群的节点数规模、内存、存储来确定。预分区算法计算出该表的总大小,再除以根据Hbase一个第一分区最优情况下能存储的数据量大小,如10G,算出该表在Hbase中的预分区数量,即第一分区数量,以解决Hbase自动分区可能导致的分区不均衡问题。
此外,在Hbase中建表时,通过内置的主键设计规则来配置相应Hbase表的主键,较为便捷地保证主键的唯一性、散列性及尽可能短的原则,保证主键的均衡性。其中内置的主键设计规则可以包括多种规则,比如配置多个基本能唯一确定一条数据的字段,将这几个字段拼接后md5,再取md5后的前32位形成主键;或者配置表中能唯一确定一条数据的多个字段,如卡号、交易日期,将主字段md5算法后取前6位和后6位,再拼接上原始日期字段,形成主键。
在第二数据库中建表时,即在Elasticsearch中建表时,根据第二数据库配置信息的第二预估数据量以及第二分区大小计算第二数据库的第二分区数量,并基于第二分区数量以及第二分区大小在第二数据库中进行分区得到多个第二分区。也就是说,进行ES表配置时,会将相应表的单条数据的字节数、预估表未来几年总共的数据量存储到配置信息中。预分区算法计算出该表的总大小,再除以根据ES一个分片最优情况下能存储的数据量大小如10G(这个需要根据集群的节点数规模、内存、存储来确定),算出该表在ES中的预分区数量,以合理均衡分配ES索引数据。
在其中一个实施例中,上述数据查询方法还包括:通过索引滚动策略和/或索引接力策略对第二数据库中的索引进行维护。
对于整个Elasticsearch服务来说,索引的维护策略是决定整个集群是否稳定的首要因素。采用索引滚动策略、索引接力策略,来分别维护Elasticsearch中增量追加的索引、全量替换的索引。索引滚动策略是指根据配置管理的配置项建立一个具有多个分片的索引,每次向该索引中添加增量数据时,索引定义别名,查询时统一通过别名引用,便于异常情况下的表切换。为了方便理解,对于时间序列数据,比如客户交易流水,为了索引和搜索性能,不能无期限地写入单个索引,当写入数据量达到某个阈值后,需要自动创建一个新的索引,更新写别名以指向新索引,并开始写入这个新索引;通常使用数据流来管理时间序列索引,创建数据流索引模板,并将模板配置应用于新索引,在查询时直接匹配索引模板,即可查到数据流中所有索引的数据。
索引接力策略是指数据每次入库Elasticsearch时新建索引,在新索引中数据写入完成后,将指向旧索引的别名切换到新索引,切换完成后,删除旧索引,在索引更新的同时保证更新的无感知性。具体地,客户表在ES中有个索引别名为custr,查询时都是通过索引别名来查;客户表每天全量替换入ES的,在每天入库时,会先创建一个带日期的客户表新索引如custr_2022118,将当天的数据入库到custr_2022118这个索引中,在入库过程中,客户表的索引别名custr实际指向的数据索引还是前一天的custr_2022117,当数据入库完成时,会将索引别名custr的指向切换到custr_2022118索引上;整个索引更新过程对于查询用户无感知。
在其中一个实施例中,在第二数据库获取查询条件对应的数据索引,包括:在第二数据库获取与查询条件的路由字段对应的第二分片区域;从第二分片区域中获取查询条件对应的数据索引。
具体地,当Elasticsearch中索引的数据量很大,分布在成百上千的分片中,查询时需要同时对成百上千个分片进行搜索,相当影响查询效率。服务器利用Elasticsearch路由机制,在建索引时指定路由字段,查询条件中携带有路由字段,这样就只需查询某几个分片就能得到结果,大幅提升查询效率。在选取路由字段时,有两点要注意:一是路由字段只有是在查询时带有的条件才能起到优化作用,与路由字段无关的查询,无法得到优化;二是路由字段对应的索引数据需要尽可能的在不同分片中均匀分布,保证不会发生数据热点情况。在创建索引时根据内置的路由配置规则指定路由字段,能有效提升海量数据的查询效率。
具体地,结合图4,图4为另外一个实施例中的数据查询方法的流程图,在该实施例中,接收到查询条件,根据查询条件确定待查询数据所在的数据库,当待查询数据在第一数据库时,则在第二数据库获取与查询条件的路由字段对应的第二分片区域;从第二分片区域中获取查询条件对应的数据索引,并基于数据索引从第一数据库获取到待查询数据。当待查询数据在第二数据库时,根据查询条件从第二数据库获取到待查询数据。
上述实施例中,基于分布式大数据技术,以及Hbase、Elasticsearch技术组件,构建海量数据的灵活存储及高速查询系统。以大数据技术为计算内核、Hbase及Elasticsearch为实现主体,定制化构建数据同步、数据合并查询、索引构建等模块,同时建立配置管理系统,采用自研创新算法,有效控制数据分布的均衡性、索引更新的稳定性、数据查询的高效性,实现数据灵活准确存储、高效合并查询的海量数据处理机制,实现了海量数据的灵活存储及高速查询能力。支持数百亿流水数据的毫秒至秒级在线查询,支持业务人员及信用卡客户在渠道端自助实时查询自开卡以来所有期限的海量数据。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据查询方法的数据查询装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据查询装置实施例中的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种数据查询装置,包括:接收模块501、数据库确定模块502、第一查询模块503和第二查询模块504,其中:
接收模块501,用于接收查询条件;
数据库确定模块502,用于根据查询条件确定待查询数据所在的数据库;
第一查询模块503,用于当待查询数据在第一数据库时,在第二数据库获取查询条件对应的数据索引,并基于数据索引从第一数据库获取到待查询数据;
第二查询模块504,用于当待查询数据在第二数据库时,根据查询条件从第二数据库获取到待查询数据。
在其中一个实施例中,数据查询装置还可以包括:
待入库数据获取模块,用于获取待入库数据,确定待入库数据对应的数据库;
入库模块,用于当待入库数据对应的数据库为第一数据库时,将待入库数据存储至第一数据库,并生成待入库数据对应的主键,将主键存储至第二数据库;当待入库数据对应的数据库为第二数据库时,将待入库数据存储至第二数据库。
在其中一个实施例中,上述入库模块还用于获取第一数据库的第一配置数据,第一配置数据包括第一预估数据量以及第一分区大小;基于第一预估数据量以及第一分区大小计算第一数据库的第一分区数量;根据第一分区数量对第一数据库进行分区得到第一存储分区;将待入库数据存储至第一数据库的对应的第一存储分区中;计算存储在第一存储分区中的待入库数据对应的主键。
在其中一个实施例中,上述入库模块还用于获取第二数据库的第二配置数据,第二配置数据包括第二预估数据量以及第二分区大小;基于第一预估数据量以及第二分区大小计算第二数据库的第二分区数量;根据第二分区数量对第二数据库进行分区得到第二存储分区;将待入库数据存储至第二数据库的对应的第二存储分区中。
在其中一个实施例中,数据查询装置还可以包括:
维护模块,用于通过索引滚动策略和/或索引接力策略对第二数据库中的索引进行维护。
在其中一个实施例中,上述入库模块还用于在第二数据库获取与查询条件的路由字段对应的第二分片区域;从第二分片区域中获取查询条件对应的数据索引。
上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收查询条件;根据查询条件确定待查询数据所在的数据库;当待查询数据在第一数据库时,在第二数据库获取查询条件对应的数据索引,并基于数据索引从第一数据库获取到待查询数据;当待查询数据在第二数据库时,根据查询条件从第二数据库获取到待查询数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待入库数据;确定待入库数据对应的数据库;当待入库数据对应的数据库为第一数据库时,将待入库数据存储至第一数据库,并生成待入库数据对应的主键,将主键存储至第二数据库;当待入库数据对应的数据库为第二数据库时,将待入库数据存储至第二数据库。
在一个实施例中,处理器执行计算机程序时所实现的将待入库数据存储至第一数据库,并生成待入库数据对应的主键,包括:获取第一数据库的第一配置数据,第一配置数据包括第一预估数据量以及第一分区大小;基于第一预估数据量以及第一分区大小计算第一数据库的第一分区数量;根据第一分区数量对第一数据库进行分区得到第一存储分区;将待入库数据存储至第一数据库的对应的第一存储分区中;计算存储在第一存储分区中的待入库数据对应的主键。
在一个实施例中,处理器执行计算机程序时所实现的将待入库数据存储至第二数据库,包括:获取第二数据库的第二配置数据,第二配置数据包括第二预估数据量以及第二分区大小;基于第一预估数据量以及第二分区大小计算第二数据库的第二分区数量;根据第二分区数量对第二数据库进行分区得到第二存储分区;将待入库数据存储至第二数据库的对应的第二存储分区中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过索引滚动策略和/或索引接力策略对第二数据库中的索引进行维护。
在一个实施例中,处理器执行计算机程序时所实现的在第二数据库获取查询条件对应的数据索引,包括:在第二数据库获取与查询条件的路由字段对应的第二分片区域;从第二分片区域中获取查询条件对应的数据索引。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收查询条件;根据查询条件确定待查询数据所在的数据库;当待查询数据在第一数据库时,在第二数据库获取查询条件对应的数据索引,并基于数据索引从第一数据库获取到待查询数据;当待查询数据在第二数据库时,根据查询条件从第二数据库获取到待查询数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取待入库数据;确定待入库数据对应的数据库;当待入库数据对应的数据库为第一数据库时,将待入库数据存储至第一数据库,并生成待入库数据对应的主键,将主键存储至第二数据库;当待入库数据对应的数据库为第二数据库时,将待入库数据存储至第二数据库。
在一个实施例中,计算机程序被处理器执行时所实现的将待入库数据存储至第一数据库,并生成待入库数据对应的主键,包括:获取第一数据库的第一配置数据,第一配置数据包括第一预估数据量以及第一分区大小;基于第一预估数据量以及第一分区大小计算第一数据库的第一分区数量;根据第一分区数量对第一数据库进行分区得到第一存储分区;将待入库数据存储至第一数据库的对应的第一存储分区中;计算存储在第一存储分区中的待入库数据对应的主键。
在一个实施例中,计算机程序被处理器执行时所实现的将待入库数据存储至第二数据库,包括:获取第二数据库的第二配置数据,第二配置数据包括第二预估数据量以及第二分区大小;基于第一预估数据量以及第二分区大小计算第二数据库的第二分区数量;根据第二分区数量对第二数据库进行分区得到第二存储分区;将待入库数据存储至第二数据库的对应的第二存储分区中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过索引滚动策略和/或索引接力策略对第二数据库中的索引进行维护。
在一个实施例中,计算机程序被处理器执行时所实现的在第二数据库获取查询条件对应的数据索引,包括:在第二数据库获取与查询条件的路由字段对应的第二分片区域;从第二分片区域中获取查询条件对应的数据索引。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:接收查询条件;根据查询条件确定待查询数据所在的数据库;当待查询数据在第一数据库时,在第二数据库获取查询条件对应的数据索引,并基于数据索引从第一数据库获取到待查询数据;当待查询数据在第二数据库时,根据查询条件从第二数据库获取到待查询数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取待入库数据;确定待入库数据对应的数据库;当待入库数据对应的数据库为第一数据库时,将待入库数据存储至第一数据库,并生成待入库数据对应的主键,将主键存储至第二数据库;当待入库数据对应的数据库为第二数据库时,将待入库数据存储至第二数据库。
在一个实施例中,计算机程序被处理器执行时所实现的将待入库数据存储至第一数据库,并生成待入库数据对应的主键,包括:获取第一数据库的第一配置数据,第一配置数据包括第一预估数据量以及第一分区大小;基于第一预估数据量以及第一分区大小计算第一数据库的第一分区数量;根据第一分区数量对第一数据库进行分区得到第一存储分区;将待入库数据存储至第一数据库的对应的第一存储分区中;计算存储在第一存储分区中的待入库数据对应的主键。
在一个实施例中,计算机程序被处理器执行时所实现的将待入库数据存储至第二数据库,包括:获取第二数据库的第二配置数据,第二配置数据包括第二预估数据量以及第二分区大小;基于第一预估数据量以及第二分区大小计算第二数据库的第二分区数量;根据第二分区数量对第二数据库进行分区得到第二存储分区;将待入库数据存储至第二数据库的对应的第二存储分区中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过索引滚动策略和/或索引接力策略对第二数据库中的索引进行维护。
在一个实施例中,计算机程序被处理器执行时所实现的在第二数据库获取查询条件对应的数据索引,包括:在第二数据库获取与查询条件的路由字段对应的第二分片区域;从第二分片区域中获取查询条件对应的数据索引。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据查询方法,其特征在于,所述方法包括:
接收查询条件;
根据所述查询条件确定待查询数据所在的数据库;
当所述待查询数据在第一数据库时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;
当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待入库数据;
确定所述待入库数据对应的数据库;
当所述待入库数据对应的数据库为第一数据库时,将所述待入库数据存储至第一数据库,并生成所述待入库数据对应的主键,将所述主键存储至第二数据库;
当所述待入库数据对应的数据库为第二数据库时,将所述待入库数据存储至第二数据库。
3.根据权利要求2所述的方法,其特征在于,所述将所述待入库数据存储至第一数据库,并生成所述待入库数据对应的主键,包括:
获取所述第一数据库的第一配置数据,所述第一配置数据包括第一预估数据量以及第一分区大小;
基于所述第一预估数据量以及第一分区大小计算所述第一数据库的第一分区数量;
根据所述第一分区数量对所述第一数据库进行分区得到第一存储分区;
将所述待入库数据存储至第一数据库的对应的所述第一存储分区中;
计算存储在所述第一存储分区中的所述待入库数据对应的主键。
4.根据权利要求3所述的方法,其特征在于,所述将所述待入库数据存储至第二数据库,包括:
获取所述第二数据库的第二配置数据,所述第二配置数据包括第二预估数据量以及第二分区大小;
基于所述第一预估数据量以及第二分区大小计算所述第二数据库的第二分区数量;
根据所述第二分区数量对所述第二数据库进行分区得到第二存储分区;
将所述待入库数据存储至第二数据库的对应的所述第二存储分区中。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括:
通过索引滚动策略和/或索引接力策略对所述第二数据库中的索引进行维护。
6.根据权利要求1至4任意一项所述的方法,其特征在于,所述在第二数据库获取所述查询条件对应的数据索引,包括:
在所述第二数据库获取与所述查询条件的路由字段对应的第二分片区域;
从所述第二分片区域中获取所述查询条件对应的数据索引。
7.一种数据查询装置,其特征在于,所述装置包括:
接收模块,用于接收查询条件;
数据库确定模块,用于根据所述查询条件确定待查询数据所在的数据库;
第一查询模块,用于当所述待查询数据在第一数据库时,在第二数据库获取所述查询条件对应的数据索引,并基于所述数据索引从所述第一数据库获取到待查询数据;
第二查询模块,用于当所述待查询数据在所述第二数据库时,根据所述查询条件从所述第二数据库获取到待查询数据。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202310101413.8A 2023-02-08 2023-02-08 数据查询方法、装置、计算机设备、存储介质和程序产品 Pending CN116204549A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310101413.8A CN116204549A (zh) 2023-02-08 2023-02-08 数据查询方法、装置、计算机设备、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310101413.8A CN116204549A (zh) 2023-02-08 2023-02-08 数据查询方法、装置、计算机设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN116204549A true CN116204549A (zh) 2023-06-02

Family

ID=86508895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310101413.8A Pending CN116204549A (zh) 2023-02-08 2023-02-08 数据查询方法、装置、计算机设备、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN116204549A (zh)

Similar Documents

Publication Publication Date Title
US11263211B2 (en) Data partitioning and ordering
EP3238106B1 (en) Compaction policy
CN106484877B (zh) 一种基于hdfs的文件检索系统
US11226963B2 (en) Method and system for executing queries on indexed views
CN106528787B (zh) 一种基于海量数据多维分析的查询方法及装置
CN107103032B (zh) 一种分布式环境下避免全局排序的海量数据分页查询方法
US9229960B2 (en) Database management delete efficiency
Luo et al. Efficient similarity joins on massive high-dimensional datasets using mapreduce
Jaiyeoba et al. Graphtinker: A high performance data structure for dynamic graph processing
Sawyer et al. Understanding query performance in Accumulo
Zhou et al. Sfmapreduce: An optimized mapreduce framework for small files
Ho et al. Data partition optimization for column-family NoSQL databases
CN108121807B (zh) Hadoop环境下多维索引结构OBF-Index的实现方法
CN110597929A (zh) 一种基于MapReduce的并行数据立方构建方法
CN115809311A (zh) 知识图谱的数据处理方法、装置及计算机设备
Chihoub et al. A scalability comparison study of data management approaches for smart metering systems
CN115963987A (zh) 分布式存储方法、装置、设备及计算机可读存储介质
CN116204549A (zh) 数据查询方法、装置、计算机设备、存储介质和程序产品
Purdilă et al. Single‐scan: a fast star‐join query processing algorithm
Son et al. SSFile: a novel column-store for efficient data analysis in Hadoop-based distributed systems
CN111309704B (zh) 数据库操作方法和数据库操作系统
Mathew et al. Novel research framework on SN's NoSQL databases for efficient query processing
Ge et al. Cinhba: A secondary index with hotscore caching policy on key-value data store
Wu et al. PABIRS: A data access middleware for distributed file systems
CN114238258B (zh) 数据库数据处理方法、装置、计算机设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination