CN113157777A - 一种分布式实时查询数据的方法、集群、系统及存储介质 - Google Patents
一种分布式实时查询数据的方法、集群、系统及存储介质 Download PDFInfo
- Publication number
- CN113157777A CN113157777A CN202110639156.4A CN202110639156A CN113157777A CN 113157777 A CN113157777 A CN 113157777A CN 202110639156 A CN202110639156 A CN 202110639156A CN 113157777 A CN113157777 A CN 113157777A
- Authority
- CN
- China
- Prior art keywords
- cluster
- query
- result set
- time
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式实时查询数据的方法、集群、系统及存储介质,该方法应用于分布式查询系统,分布式查询系统包括网关集群以及与网关集群连接的至少一个区域集群,区域集群包括互相连接的第一存储集群与第二存储集群,该方法包括:接收外部设备发送的第一请求信令,其中,第一请求信令包括查询时间和外部设备信息;在查询时间落在第二存储集群对应的预设刷新时间段内时,从对应的第一存储集群中查询与外部设备信息对应的数据,得到第一结果集;基于第一结果集生成查询结果集,并将查询结果集返回至外部设备;第一存储集群用于实时缓存写入的数据,第二存储集群用于存储所有时间段内写入的数据。通过上述方式,本申请能够实现实时查询。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种分布式实时查询数据的方法、集群、系统及存储介质。
背景技术
随着互联网技术的飞速发展,每时每刻都产生了大量数据,如何从海量的数据中查询到想要的数据尤为关键,但目前的数据查询系统不支持在刷新间隔时间内对数据的实时查询,无法查询到在该刷新间隔时间内写入的数据,实时性不高。
发明内容
本申请提供一种分布式实时查询数据的方法、集群、系统及存储介质,能够实现实时查询。
为解决上述技术问题,本申请采用的技术方案是:提供一种分布式实时查询数据的方法,该方法应用于分布式查询系统,分布式查询系统包括网关集群以及与网关集群连接的至少一个区域集群,区域集群包括互相连接的第一存储集群与第二存储集群,该方法包括:接收外部设备发送的第一请求信令,其中,第一请求信令包括查询时间和外部设备信息;在查询时间落在第二存储集群对应的预设刷新时间段内时,从对应的第一存储集群中查询与外部设备信息对应的数据,得到第一结果集;基于第一结果集生成查询结果集,并将查询结果集返回至外部设备;其中,第一存储集群用于实时缓存写入的数据,第二存储集群用于存储所有时间段内写入的数据。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种网关集群,该网关集群包括互相连接的存储器和处理器,其中,存储器用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的分布式实时查询数据的方法。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种分布式查询系统,该分布式查询系统包括网关集群以及与网关集群连接的至少一个区域集群,每个区域集群包括互相连接的第一存储集群与第二存储集群,第一存储集群用于实时缓存写入的数据,第二存储集群用于存储所有时间段内写入的数据,网关集群为上述技术方案中的网关集群。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的分布式实时查询数据的方法。
通过上述方案,本申请的有益效果是:外部设备生成第一请求信令,并将该第一请求信令发送至网关集群,该第一请求信令包括查询时间与外部设备信息;网关集群判断查询时间与预设刷新时间段之间的关系,在查询时间落在预设刷新时间段内时,从第一存储集群中查询与外部设备信息对应的数据,获取到第一结果集;然后根据第一结果集生成查询结果集,并将查询结果集返回,使得外部设备获取到查询结果集;由于第一存储集群实时缓存写入的数据,第二存储集群存储所有时间段内写入的数据,能够在第二存储集群处于刷新阶段时查询到之前写入的数据,实现实时查询系统中的海量数据,解决刷新阶段数据不可见的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的网关集群一实施例的结构示意图;
图2是本申请提供的分布式实时查询数据的方法一实施例的流程示意图;
图3是图2所示的实施例中步骤13的流程示意图;
图4是本申请提供的分布式实时查询数据的方法另一实施例的流程示意图;
图5是本申请提供的网关路由策略的流程示意图;
图6是本申请提供的网关集群一实施例的结构示意图;
图7是本申请提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1与图2,图1是本申请提供的网关集群一实施例的结构示意图,图2是本申请提供的分布式实时查询数据的方法一实施例的流程示意图,该方法应用于分布式查询系统,该分布式查询系统包括网关集群10以及与网关集群10连接的至少一个区域集群20,区域集群20包括互相连接的第一存储集群21与第二存储集群22,第一存储集群21用于实时缓存写入的数据,第二存储集群22用于存储所有时间段内写入的数据,该方法包括:
步骤11:接收外部设备发送的第一请求信令。
外部设备可以为输入设备或输出设备,外部设备可在预访问分布式查询系统中的某个区域集群20时,生成第一指令,该第一请求信令包括查询时间和外部设备信息,外部设备信息为与外部设备相关的信息,比如:外部设备的机器指纹信息,机器指纹由机器的硬件指纹信息决定,其具有唯一性的特征,硬件指纹信息可以为中央处理器(centralprocessing unit,CPU)的身份标识(Identity,ID)、硬盘ID、媒体存取控制位址(MediaAccess Control Address,MAC)地址、基本输入输出系统(Basic Input Output System,BIOS)版本、网卡物理地址、S/N序列号等;进一步地,机器指纹信息为采用一个变换算法将至少一个硬件指纹信息转换成的一个字符串,比如:机器指纹信息可以由组成机器的任一硬件指纹信息转换的字符串代表,或者由组成机器的所有硬件指纹信息转化的字符串代表。机器指纹信息还包括机器生产商设定的产品序号,比如:国际移动设备识别码(International Mobile Equipment Identity,IMEI)或集成电路卡识别码(Integratecircuit card identity)。
步骤12:在查询时间落在第二存储集群对应的预设刷新时间段内时,从对应的第一存储集群中查询与外部设备信息对应的数据,得到第一结果集。
每个第二存储集群22具有预设刷新时间段,预设刷新时间段是第二存储集群22将内存中的数据写入磁盘的时间,在该预设刷新时间段内,外部设备写入第二存储集群22的数据无法查询到。
进一步地,在海量数据写入的压力下,预设刷新时间段的设置显得尤为重要,预设刷新时间段的时间长度设置得较小将导致第二存储集群22的CPU负载压力剧增,预设刷新时间段的时间长度设置得较大将导致写入的数据长时间不可查询到,导致用户体验下降,比如:对支付系统或银行系统来说,数据长时间查询不到是较为严重的问题。
本实施例设置与第二存储集群22对应的第一存储集群21,第一存储集群21可充作缓存使用,外部设备在写入数据至第二存储集群22中时同样也写入到第一存储集群21中,当需要在第二存储集群22进行刷新的时间段内查询之前写入的数据时,即当前查询时间落在第二存储集群22对应的预设刷新时间段内,可直从相应的第一存储集群21中查询外部设备写入的数据,得到第一结果集,从而实现实时查询,不影响用户使用。
例如,预设刷新时间段为14:00~14:03,外部设备在14:01写入数据至第一存储集群21与相应的第二存储集群22,该外部设备在14:02发起查询请求,查询其在14:01写入的数据,此时可直接在第一存储集群21中进行查找,第二存储集群22是否刷新不影响此次查询。
步骤13:基于第一结果集生成查询结果集,并将查询结果集返回至外部设备。
在获取到第一结果集后,可直接将该第一结果集返回给外部设备,或者对第一结果集进行删减,以将符合外部设备的需要的查询结果返回给外部设备;或者可进一步对第二存储集群22进行查询,将从第二存储集群22中查询到的结果与第一结果集进行整合,得到查询结果集。
在一具体的实施例中,可采用如图3所示的步骤来获取查询结果集,具体包括以下步骤:
步骤131:判断第一结果集是否满足预设查询条件。
在获取到第一结果集后,为了确认是否与外部设备需要的数据相符,可判断第一结果集是否满足预设查询条件;具体地,第一请求信令中包括预设查询条件,该预设查询条件为用户设置的查询条件,其可以为关键字/词或检索到的结果的数量。
步骤132:若第一结果集满足预设查询条件,则将第一结果集作为查询结果集,并将查询结果集返回至外部设备。
如果判断出第一结果集满足预设查询条件,则表明通过直接对第一存储集群21进行查询,便可找到符合外部设备设定的要求的查询结果,此时可直接将第一结果集作为查询结果集,并将该查询结果集发送给外部设备。
步骤133:若第一结果集不满足预设查询条件,则从第二存储集群中查询与外部设备信息对应的数据,得到第二结果集,并利用第一结果集与第二结果集合成查询结果集。
如果判断出第一结果集不满足预设查询条件,则表明通过直接对第一存储集群21进行查询,无法找到符合外部设备设定的要求的查询结果,此时需要进一步对第二存储集群22进行查询,得到第二结果集,然后对第一结果集与第二结果集进行合并和/或删减,得到查询结果集,并将该查询结果集发送给外部设备。
在一具体的实施例中,第一存储集群21为Redis集群,Redis是一个高性能的键值(Key-Value)数据库,Redis集群可用于存储最近短时间内的写入数据;第二存储集群22为Elasticsearch(简称为ES)集群,ES是一个分布式、高扩展、高实时的搜索与数据分析引擎,它能很方便的使大量数据具有搜索、分析和探索的能力,ES集群用于存储全量的写入数据。
进一步地,可通过Bulk批量方式将数据写入ES集群,Bulk批量方式是ES提供的一种并发批量写入技术,其利用线程池、队列以及并发执行请求的方式,能够显著地提高写入性能。
可以理解地,第一存储集群21与第二存储集群22并不仅限于分别为Redis集群与ES集群,还可以为其他合理的数据库,比如:SQL Server数据库、MySQL、Oracle数据库或memcached数据库,只要满足第一存储集群21支持实时查询、第二存储集群22需要刷新且存储全量的数据即可。
本实施例提供了一种检索策略,将请求查询的指令转发到第一存储集群,对第一存储集群进行查询,得到第一结果集;在第一结果集符合预设查询条件时,将第一结果集作为查询结果集返回给外部设备;在第一结果集不符合预设查询条件时,从第二存储集群中查询与外部设备相关的数据,得到第二结果集,并对第一结果集与第二结果集进行处理,得到查询结果集并返回给外部设备,能够解决在第二存储集群处于刷新阶段时数据不可见的问题,实现实时查询系统中的数据,同时由于先对第一存储集群进行查询,可避免每次进行数据查询时均访问第二存储集群,防止穿透到第二存储集群,可减少第二存储集群的负担,有助于提升第二存储集群的处理速度与响应速度,且可保证海量数据的写入性能,显著的提高写入性能。
请参阅图4,图4是本申请提供的分布式实时查询数据的方法另一实施例的流程示意图,该方法应用于图2所示的分布式查询系统,该方法包括:
步骤201:接收外部设备发送的第一请求信令,对第一请求信令进行解析,得到外部设备的机器指纹信息。
第一请求信令包括查询时间与外部设备信息,该外部设备信息包括外部设备的机器指纹信息,在接收到外部设备发送的第一请求指令后,对该第一请求信令进行解析,从而得到第一请求信令中携带的信息。
步骤202:判断外部设备的机器指纹信息是否满足第一预设合法条件。
第一预设合法条件包括外部设备的机器指纹信息的字符长度落在预设长度以内或外部设备的机器指纹信息为英文字母与数字的组合;例如,预设长度为5~20,根据外部设备的机器指纹信息的长度大于5个字符且小于20个字符的长度限制,以及使用英文字母与数字组合的内容限制要求,来确认外部设备的机器指纹信息是否合法。
进一步地,如果判断出该外部设备的机器指纹信息不满足第一预设合法条件,则表明该外部设备无权查询分布式查询系统中的数据,此时不作处理。
步骤203:若外部设备的机器指纹信息满足第一预设合法条件,则判断查询时间是否落在预设刷新时间段内。
如果检测到外部设备的机器指纹信息符合第一预设合法条件,则进一步判断该外部设备发起的查询请求对应的查询时间与第二存储集群的预设刷新时间段之间的关系,以确定查询时间是否落在预设刷新时间段内。
步骤204:在查询时间未落在预设刷新时间段内时,从第二存储集群中查询与外部设备信息对应的数据,得到查询结果集。
如果检测到查询时间未落在外部设备预访问的第二存储集群对应的预设刷新时间段内,则表明该第二存储集群当前未进行刷新,此时可直接从该第二存储集群中查询相应的数据,获取查询结果集。
可以理解地,也可以先在第一存储集群中查询,如果查询不到相应的数据或者查询到的数据不完备,再在第二存储集群中查询。
步骤205:在查询时间落在预设刷新时间段内时,对外部设备的机器指纹信息进行处理,生成关键字,并基于关键字在第一存储集群中进行查询,以获取第一结果集。
将外部设备的机器指纹信息与预设字段进行拼合,得到关键字,并将关键字存储到第一存储集群中;然后从第一存储集群中查询与关键字对应的数据,得到第一结果集,该第一结果集包括至少一个第一查询结果。具体地,可将将关键字按照队列数据结构存入Redis集群,并将关键字的过期时间设置为ES集群对应的预设刷新时间段的时间长度的两倍。
步骤206:判断第一查询结果的数量是否小于预设查询数量。
第一请求信令还包括预设查询数量,可在获取到第一结果集后,判断第一结果集中的第一查询结果的数量与预设查询数量之间的大小关系。
步骤207:若第一查询结果的数量大于或等于预设查询数量,则将第一结果集作为查询结果集。
如果判断出第一查询结果的数量大于或等于预设查询数量,则表明仅从第一存储集群中查询数据便能够满足外部设备的需求,此时可直接将查询到的所有数据(即第一结果集)返回给外部设备。
可以理解地,在其他实施例中,还可以在第一查询结果的数量大于预设查询数量时,对部分第一查询结果进行裁剪,以使得返回给外部设备的查询结果集中第一查询结果的数量等于预设查询数量。
步骤208:若第一查询结果的数量小于预设查询数量,则从第二存储集群中查询与外部设备信息对应的数据,得到第二结果集。
如果检测到第一查询结果的数量小于预设查询数量,则表明查询到的结果的数量不足,此时需要再从第二存储集群中查询剩余的结果集,生成第二结果集,该第二结果集包括至少一个第二查询结果。
进一步地,在获取到第二结果集后,可根据需要对第一结果集与第二结果集进行聚合和/或裁减。
步骤209:判断第一查询结果与第二查询结果的数量之和是否小于预设查询数量。
可先判断第一查询结果与第二查询结果的数量之和与预设查询数量之间的大小关系,然后执行步骤209或步骤210。
步骤210:在第一查询结果与第二查询结果的数量之和小于预设查询数量时,按照时间顺序对第一查询结果与第二查询结果进行排序,得到查询结果集。
将第一查询结果与第二查询结果的数量之和记作查询数量总和,如果检测到查询数量总和小于预设查询数量,则表明当前查询到的数据量不足,此时可对所有第一查询结果与第二查询结果进行聚合;比如:预设查询数量为50,即需查询50个数据,在Redis集群查出20个数据,在ES集群查出10个数据,则按照数据生成时间的升序或降序对所有查询出的数据进行排序,聚合为30个数据。
步骤211:在第一查询结果与第二查询结果的数量之和大于或等于预设查询数量时,按照时间顺序对第一查询结果与第二查询结果进行排序,得到第三结果集,对第三结果集进行裁剪,得到查询结果集。
如果检测到查询数量总和大于或等于预设查询数量,则表明当前查询到的数据充足,此时可进行裁减,以使得生成的查询结果集满足外部设备的需求,即该查询结果集中第一查询结果与第二查询结果的数量之和等于预设查询数量;比如:需查询50个数据,在Redis集群查出20个数据,在ES集群查出40个数据,则按照数据生成时间的升序或者降序对所有查询出的数据进行排序,再裁减10个,得到包括50个数据的查询结果集。
除了提供上述的检索策略之外,本实施例还提供了一种网关路由策略,具体如图5所示,下面对该网关路由策略进行描述:
步骤31:接收外部设备发送的第二请求信令。
外部设备生成第二请求信令,并将该第二请求信令转发给网关集群。
步骤32:判断第二请求信令是否满足第二预设合法条件。
网关集群在收到第二请求信令后,对该第二请求信令进行合法性判断,该第二预设合法条件为预先设置的验证待检验的信令是否合法的条件。若第二请求信令不满足第二预设合法条件,则不作处理;若第二请求信令满足第二预设合法条件,则执行步骤33。
步骤33:若第二请求信令满足第二预设合法条件,则基于第二请求信令获取与外部设备对应的当前集群地址,并将当前集群地址下发至外部设备。
在判断出第二请求信令合法后,可对第二请求信令进行解析,得到外部设备的机器指纹信息,然后判断外部设备的机器指纹信息是否满足第一预设合法条件;若外部设备的机器指纹信息满足第一预设合法条件,则根据外部设备的机器指纹信息采用预设寻址策略获取当前集群地址;若外部设备的机器指纹信息不满足第一预设合法条件,则不作处理。
进一步地,预设寻址策略如下:
1)查询数据库中是否存在与外部设备所在的区域对应的集群地址。
2)若数据库中存在与外部设备所在的区域对应的集群地址,则将与外部设备所在的区域对应的集群地址作为当前集群地址。
3)若数据库中不存在与外部设备所在的区域对应的集群地址,则对所有区域集群进行轮训,以查找与外部设备信息对应的区域集群,将与外部设备信息对应的区域集群的集群地址作为当前集群地址;基于当前集群地址查找相应的区域机器指纹信息,建立外部设备、当前集群地址以及区域机器指纹信息之间的对应关系并保存在数据库中。
例如,外部设备记作D,区域集群记作S1-S3,对应的区域机器指纹信息分别记作A1-A3,可查询区域集群S1-S3中是否存储有与外部设备相关的数据,假设在区域集群S3中搜索到外部设备D写入的数据,则将区域集群S3对应的集群地址记作当前集群地址,建立外部设备D的机器指纹信息、区域机器指纹信息A3以及区域集群S3的集群地址之间的映射关系。
在一具体的实施例中,网关集群存储有访问寻址表,访问寻址表包括至少一个外部设备的机器指纹信息、与外部设备的机器指纹信息对应的区域机器指纹信息以及与外部设备的机器指纹信息对应的区域集群的集群地址;例如,以机器指纹信息为ID为例,访问寻址表可如下所示:
外部设备的ID | 区域ID | 集群地址 |
ID1 | A1 | B1 |
ID2 | A2 | B2 |
… | … | … |
IDN | AN | BN |
其中,N为外部设备的数量。
在确定外部设备的ID满足第一预设合法条件后,下发第三信令请求至与当前集群地址对应的区域集群,以使得外部设备将数据批量写入区域集群或从区域集群查询数据;在完成批量写入或查询数据的操作后,可将执行的结果按原路返回给请求方(即外部设备)。
本实施例所提供的网关路由策略,将外部设备发起的请求通过公网转发到网关集群,再从请求信令中解析出外部设备的机器指纹信息,然后根据外部设备的机器指纹信息从访问寻址表中找到区域机器指纹信息和访问的集群地址信息,最后将请求转发给区域集群,以便进行数据的批量写入或查询。
本实施例所提供的方案涉及分布式海量数据检索系统存储、检索技术,尤其涉及ES写入和检索性能优化,提供了一种海量数据的分布式实时查询方法,在刷新阶段先到Redis集群查询,再到ES集群查询,最后将查询到的结果集返回外部设备;通过ES海量数据存储以及Redis实时缓存技术,解决了ES磁盘写入延时引起的无法实时查询数据的问题,实现海量数据快速写入,实时查询功能。此外,还提供了一种横向可扩展的网关路由策略,通过外部设备的机器指纹信息进行轮询,能够将请求分发到指定集群,保证将每个区域的数据量控制在一定数据级内,使得系统中各个区域集群的性能相当。
请参阅图6,图6是本申请提供的网关集群一实施例的结构示意图,网关集群10包括互相连接的存储器11和处理器12,存储器11用于存储计算机程序,计算机程序在被处理器12执行时,用于实现上述实施例中的分布式实时查询数据的方法。
本实施例提供的网关集群可接收外部数据、进行合法性校验以及路由分发请求,在数据写入/查询加入缓存技术,再结合多集群路由技术,做到实时可见查询,解决不可见性(不可见性指的是是写入的数据不能被立即查询到)的问题,并能减少了ES集群的访问压力,防止穿透到ES集群。
请参阅图7,图7是本申请提供的计算机可读存储介质一实施例的结构示意图,计算机可读存储介质70用于存储计算机程序71,计算机程序71在被处理器执行时,用于实现上述实施例中的分布式实时查询数据的方法。
计算机可读存储介质70可以是服务端、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (17)
1.一种分布式实时查询数据的方法,其特征在于,应用于分布式查询系统,所述分布式查询系统包括网关集群以及与所述网关集群连接的至少一个区域集群,所述区域集群包括互相连接的第一存储集群与第二存储集群,所述方法包括:
接收外部设备发送的第一请求信令,其中,所述第一请求信令包括查询时间和外部设备信息;
在所述查询时间落在所述第二存储集群对应的预设刷新时间段内时,从对应的所述第一存储集群中查询与所述外部设备信息对应的数据,得到第一结果集;
基于所述第一结果集生成查询结果集,并将所述查询结果集返回至所述外部设备;
其中,所述第一存储集群用于实时缓存写入的数据,所述第二存储集群用于存储所有时间段内写入的数据。
2.根据权利要求1所述的分布式实时查询数据的方法,其特征在于,所述基于所述第一结果集生成查询结果集的步骤,包括:
判断所述第一结果集是否满足预设查询条件;
若是,则将所述第一结果集作为所述查询结果集;
若否,则从所述第二存储集群中查询与所述外部设备信息对应的数据,得到第二结果集,并利用所述第一结果集与所述第二结果集合成所述查询结果集。
3.根据权利要求2所述的分布式实时查询数据的方法,其特征在于,所述在所述查询时间落在所述第二存储集群对应的预设刷新时间段内时,从对应的所述第一存储集群中查询与所述外部设备信息对应的数据,得到第一结果集的步骤之前,包括:
对所述第一请求信令进行解析,得到所述外部设备的机器指纹信息;
判断所述外部设备的机器指纹信息是否满足第一预设合法条件;
若是,则判断所述查询时间是否落在所述预设刷新时间段内。
4.根据权利要求3所述的分布式实时查询数据的方法,其特征在于,所述方法还包括:
在所述查询时间未落在所述预设刷新时间段内时,从所述第二存储集群中查询与所述外部设备信息对应的数据,得到所述查询结果集。
5.根据权利要求3所述的分布式实时查询数据的方法,其特征在于,所述外部设备信息包括所述外部设备的机器指纹信息,所述从对应的所述第一存储集群中查询与所述外部设备信息对应的数据,得到第一结果集的步骤,包括:
对所述外部设备的机器指纹信息进行处理,生成关键字;
基于所述关键字在所述第一存储集群中进行查询,以获取所述第一结果集。
6.根据权利要求5所述的分布式实时查询数据的方法,其特征在于,所述方法还包括:
将所述外部设备的机器指纹信息与预设字段进行拼合,得到所述关键字,并将所述关键字存储到所述第一存储集群中;
从所述第一存储集群中查询与所述关键字对应的数据,得到所述第一结果集。
7.根据权利要求2所述的分布式实时查询数据的方法,其特征在于,所述第一结果集包括至少一个第一查询结果,所述第一请求信令还包括预设查询数量,所述判断所述第一结果集是否满足预设查询条件的步骤,包括:
判断所述第一查询结果的数量是否小于所述预设查询数量。
8.根据权利要求7所述的分布式实时查询数据的方法,其特征在于,所述第二结果集包括至少一个第二查询结果,所述利用所述第一结果集与所述第二结果集合成所述查询结果集的步骤,包括:
在所述第一查询结果与所述第二查询结果的数量之和小于所述预设查询数量时,按照时间顺序对所述第一查询结果与所述第二查询结果进行排序,得到所述查询结果集;
在所述第一查询结果与所述第二查询结果的数量之和大于所述预设查询数量时,按照时间顺序对所述第一查询结果与所述第二查询结果进行排序,得到第三结果集,对所述第三结果集进行裁剪,得到所述查询结果集;
其中,所述查询结果集中所述第一查询结果与所述第二查询结果的数量之和等于所述预设查询数量。
9.根据权利要求1所述的分布式实时查询数据的方法,其特征在于,所述网关集群存储有访问寻址表,所述访问寻址表包括至少一个外部设备的机器指纹信息、与所述外部设备的机器指纹信息对应的区域机器指纹信息以及与所述外部设备的机器指纹信息对应的区域集群的集群地址,所述方法还包括:
接收所述外部设备发送的第二请求信令;
判断所述第二请求信令是否满足第二预设合法条件;
若是,则基于所述第二请求信令获取与所述外部设备对应的当前集群地址,并将所述当前集群地址下发至所述外部设备。
10.根据权利要求9所述的分布式实时查询数据的方法,其特征在于,所述基于所述第二请求信令获取与所述外部设备对应的当前集群地址的步骤,包括:
对所述第二请求信令进行解析,得到所述外部设备的机器指纹信息;
判断所述外部设备的机器指纹信息是否满足第一预设合法条件;
若是,则采用预设寻址策略获取所述当前集群地址。
11.根据权利要求10所述的分布式实时查询数据的方法,其特征在于,所述采用预设寻址策略获取所述当前集群地址的步骤,包括:
查询数据库中是否存在与所述外部设备所在的区域对应的集群地址;
若存在,则将与所述外部设备所在的区域对应的集群地址作为所述当前集群地址;
若不存在,则对所有所述区域集群进行轮训,以查找与所述外部设备信息对应的区域集群,将与所述外部设备信息对应的区域集群的集群地址作为所述当前集群地址;基于所述当前集群地址查找相应的区域机器指纹信息,建立所述外部设备、所述当前集群地址以及所述区域机器指纹信息之间的对应关系并保存在所述数据库中。
12.根据权利要求10所述的分布式实时查询数据的方法,其特征在于,所述方法还包括:
在确定所述外部设备的机器指纹信息满足所述第一预设合法条件后,下发第三信令请求至与所述当前集群地址对应的区域集群,以使得所述外部设备将数据批量写入所述区域集群或从所述区域集群查询数据。
13.根据权利要求10所述的分布式实时查询数据的方法,其特征在于,
所述第一预设合法条件包括所述外部设备的机器指纹信息的字符长度落在预设长度以内或所述外部设备的机器指纹信息为英文字母与数字的组合。
14.根据权利要求1所述的分布式实时查询数据的方法,其特征在于,
所述第一存储集群为Redis集群,所述第二存储集群为Elasticsearch集群。
15.一种网关集群,其特征在于,包括互相连接的存储器和处理器,其中,所述存储器用于存储计算机程序,所述计算机程序在被所述处理器执行时,用于实现权利要求1-14中任一项所述的分布式实时查询数据的方法。
16.一种分布式查询系统,其特征在于,包括网关集群以及与所述网关集群连接的至少一个区域集群,每个所述区域集群包括互相连接的第一存储集群与第二存储集群,所述第一存储集群用于实时缓存写入的数据,所述第二存储集群用于存储所有时间段内写入的数据,所述网关集群为权利要求15所述的网关集群。
17.一种计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序在被处理器执行时,用于实现权利要求1-14中任一项所述的分布式实时查询数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110639156.4A CN113157777B (zh) | 2021-06-08 | 2021-06-08 | 一种分布式实时查询数据的方法、集群、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110639156.4A CN113157777B (zh) | 2021-06-08 | 2021-06-08 | 一种分布式实时查询数据的方法、集群、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157777A true CN113157777A (zh) | 2021-07-23 |
CN113157777B CN113157777B (zh) | 2022-08-09 |
Family
ID=76875797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110639156.4A Active CN113157777B (zh) | 2021-06-08 | 2021-06-08 | 一种分布式实时查询数据的方法、集群、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157777B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113824776A (zh) * | 2021-09-02 | 2021-12-21 | 济南浪潮数据技术有限公司 | 一种网络请求的自动分发方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160092510A1 (en) * | 2014-09-26 | 2016-03-31 | Applied Materials, Inc. | Optimized storage solution for real-time queries and data modeling |
CN106649870A (zh) * | 2017-01-03 | 2017-05-10 | 山东浪潮商用系统有限公司 | 一种搜索引擎分布式实现方法 |
CN107808006A (zh) * | 2017-11-16 | 2018-03-16 | 中国工商银行股份有限公司 | 基于大数据量的模糊查询方法、设备以及系统 |
CN111552701A (zh) * | 2020-04-30 | 2020-08-18 | 中国建设银行股份有限公司 | 确定分布式集群中数据一致性的方法及分布式数据系统 |
CN111737226A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种基于Redis集群优化HBase集群性能的方法 |
US10936589B1 (en) * | 2017-09-14 | 2021-03-02 | Amazon Technologies, Inc. | Capability-based query planning for heterogenous processing nodes |
-
2021
- 2021-06-08 CN CN202110639156.4A patent/CN113157777B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160092510A1 (en) * | 2014-09-26 | 2016-03-31 | Applied Materials, Inc. | Optimized storage solution for real-time queries and data modeling |
CN106649870A (zh) * | 2017-01-03 | 2017-05-10 | 山东浪潮商用系统有限公司 | 一种搜索引擎分布式实现方法 |
US10936589B1 (en) * | 2017-09-14 | 2021-03-02 | Amazon Technologies, Inc. | Capability-based query planning for heterogenous processing nodes |
CN107808006A (zh) * | 2017-11-16 | 2018-03-16 | 中国工商银行股份有限公司 | 基于大数据量的模糊查询方法、设备以及系统 |
CN111552701A (zh) * | 2020-04-30 | 2020-08-18 | 中国建设银行股份有限公司 | 确定分布式集群中数据一致性的方法及分布式数据系统 |
CN111737226A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种基于Redis集群优化HBase集群性能的方法 |
Non-Patent Citations (2)
Title |
---|
ZHOUSHUPENG: "大数据之分布式搜索引擎_3.分布式搜索引擎写入和查询的工作流程是什么样的?", 《HTTPS://BLOG.CSDN.NET/U013059060/ARTICLE/DETAILS/90454420》 * |
杨志: "一种实时大数据查询技术-对象分布式查询", 《计算机与数字工程》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113824776A (zh) * | 2021-09-02 | 2021-12-21 | 济南浪潮数据技术有限公司 | 一种网络请求的自动分发方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113157777B (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109953B (zh) | 一种数据查询方法、装置及设备 | |
US10585913B2 (en) | Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps | |
US9721015B2 (en) | Providing a query results page | |
CN110909025A (zh) | 数据库的查询方法、查询装置及终端 | |
US8239394B1 (en) | Bloom filters for query simulation | |
US7765196B2 (en) | Method and apparatus for web cache using database triggers | |
CN113297250A (zh) | 一种分布式数据库多表关联查询的方法及系统 | |
US12026168B2 (en) | Columnar techniques for big metadata management | |
CN111414392A (zh) | 高速缓存异步刷新方法、系统及计算机可读存储介质 | |
CN111382182A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20220309101A1 (en) | Accelerated large-scale similarity calculation | |
CN113157777B (zh) | 一种分布式实时查询数据的方法、集群、系统及存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN106844541B (zh) | 一种联机分析处理方法及装置 | |
CN115687810A (zh) | 网页搜索方法、装置及相关设备 | |
CN117009389A (zh) | 数据缓存方法、装置、电子设备和可读存储介质 | |
CN116149566A (zh) | 一种时序数据存储方法、装置、计算机设备及存储介质 | |
CN115934583A (zh) | 分级缓存方法、装置及系统 | |
CN112416626B (zh) | 一种数据处理方法和装置 | |
CN114297284A (zh) | 一种接口快速反应方法、装置、电子设备及存储介质 | |
CN114064729A (zh) | 一种数据检索方法、装置、设备及存储介质 | |
CN107679093B (zh) | 一种数据查询方法及装置 | |
CN111966935B (zh) | 信息预加载方法、装置、计算机设备和存储介质 | |
CN118331923A (zh) | 一种用于加速图挖掘的装置以及加速图挖掘的方法 | |
CN115062044A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |