CN112506992A - Kafka数据的模糊查询方法、装置、电子设备和存储介质 - Google Patents
Kafka数据的模糊查询方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112506992A CN112506992A CN202011412202.9A CN202011412202A CN112506992A CN 112506992 A CN112506992 A CN 112506992A CN 202011412202 A CN202011412202 A CN 202011412202A CN 112506992 A CN112506992 A CN 112506992A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- query result
- thread
- threads
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000000903 blocking effect Effects 0.000 claims abstract description 43
- 238000005192 partition Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/2468—Fuzzy 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种Kafka数据的模糊查询方法、装置、电子设备和存储介质。所述方法,包括:获取用户选定的主题和提交的查询内容;确定所述主题下存储的全部数据;根据全部数据和预设的查询结果参数,创建阻塞队列和用于消费全部数据的若干线程,并为每个线程对应的创建一消费者;对于每个线程,通过其对应的消费者进行消费得到消费数据,将查询内容与消费数据进行匹配,得到查询结果并存入阻塞队列;将阻塞队列中的查询结果返回至用户。本公开的方案根据用户选定的主题和提交的查询内容,相应的创建多个线程对Kafka数据进行消费并相应进行模糊查询,不会增加维护和接入成本,且具有较高的搜索效率。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种Kafka数据的模糊查询方法、装置、电子设备和存储介质。
背景技术
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。在Kafka系统中,包括:生产者(Producer)、消费者(Consumer),生产者(也称为发布者)创建消息,而消费者(也称为订阅者)负责消费消息。Kafka数据以主题(Topic)来分类,每个主题又包括若干分区(Partition),以实现Kafka数据的扩展存储。
在现有技术中,需要对Kafka数据进行模糊搜索时,普遍存在维护和接入成本高、搜索效率低的问题。
发明内容
有鉴于此,本说明书一个或多个实施例的目的在于提出一种Kafka数据的模糊查询方法、装置、电子设备和存储介质,以解决至少一个上述技术问题。
基于上述目的,本说明书一个或多个实施例提供了一种Kafka数据的模糊查询方法,包括:
获取用户选定的主题和提交的查询内容;
确定所述主题下存储的全部数据;根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,并为每个所述线程对应的创建一消费者;
对于每个所述线程,通过其对应的所述消费者进行消费得到消费数据,将所述查询内容与所述消费数据进行匹配,得到查询结果并存入所述阻塞队列;
将所述阻塞队列中的所述查询结果返回至用户。
基于同一发明构思,本说明书一个或多个实施例还提供了一种Kafka数据的模糊查询装置,包括:
获取模块,被配置为获取用户选定的主题和提交的查询内容;
创建模块,被配置为确定所述主题下存储的全部数据;根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,并为每个所述线程对应的创建一消费者;
查询模块,被配置为对于每个所述线程,通过其对应的所述消费者进行消费得到消费数据,将所述查询内容与所述消费数据进行匹配,得到查询结果并存入所述阻塞队列;
返回模块,被配置为将所述阻塞队列中的所述查询结果返回至用户。
基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。
基于同一发明构思,本说明书一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一所述方法。
从上面所述可以看出,本说明书一个或多个实施例提供的Kafka数据的模糊查询方法、装置、电子设备和存储介质,根据用户选定的主题和提交的查询内容,相应的创建多个线程对Kafka数据进行消费并相应进行模糊查询,不会增加维护和接入成本,且具有较高的搜索效率。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例的Kafka数据的模糊查询方法流程图;
图2为本说明书一个或多个实施例中Kafka数据及线程分配示例图;
图3为本说明书一个或多个实施例的Kafka数据的模糊查询装置结构示意图;
图4为本说明书一个或多个实施例的电子设备结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
如背景技术部分所述,在现有技术中,需要对Kafka数据进行模糊搜索时,普遍存在维护和接入成本高、搜索效率低的问题。具体的,在现有技术中,可以使用开源数据收集引擎Logstash将Kafka数据消费到搜索与数据分析引擎Elasticsearch的集群当中,再对Elasticsearch进行查询;但上述方案需要引入额外框架,增加了维护和接入成本。在现有技术中,也可以在Linux中找到数据文件所在路径,再对日志文件进行检索;但上述方案的耗时长、操作不便,使得搜索效率很低。
针对上述现有技术存在的问题,本说明书一个或多个实施例提供了一种Kafka数据的模糊查询方案,根据用户选定的主题和提交的查询内容,相应的创建多个线程对Kafka数据进行消费并相应进行模糊查询,不会增加维护和接入成本,且具有较高的搜索效率。
以下,通过具体的实施例进一步详细说明本公开的技术方案。
首先,本说明书一个或多个实施例提供了一种Kafka数据的模糊查询方法。参考图1,所述Kafka数据的模糊查询方法,包括以下步骤:
步骤S101、获取用户选定的主题和提交的查询内容。
本实施例中,可以通过渐进式框架VUE来构建用户界面,并基于该用户界面供用户选定想要查询的主体,以及提交查询内容。
步骤S102、确定所述主题下存储的全部数据;根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,并为每个所述线程对应的创建一消费者。
本实施例中,根据用户选定的主题,确定该主题下存储的全部数据。
然后,从配置库中获取预设的查询结果参数,该查询结果参数一般包括:要返回给用户的查询结果的最大数据容量、需要创建的线程的最大预定数量、每个线程的最大数据处理能力等。其中,在本实施例中,将每个线程的最大数据处理能力称为第一额定数据量,将查询结果的最大数据容量称为第二额定数据量。
对于用户选定的主题,确定其包括的若干分区,并确定每个分区的数据的最大偏移量和最小偏移量。其中,可以通过Kafka的AdminClient类中的describeTopics方法,获取到该分类包括的各分区的ID以及分区数量。进一步的,调用endOffsets与beginningOffsets方法,可以确定各个分区的最大偏移量和最小偏移量。对于一个分区,将其最大偏移量和最小偏移量相减,即得到该分区的数据量;将每个分区的数据量相加,即得到用户选定的主题下存储的全部数据对应的总数据量。
本实施例中,根据用户选定的主题下存储的全部数据对应的总数据量和查询结果参数中的第一额定数据量,来生成线程。具体的,将总数据量除以第一额定数据量,根据相除的结果创建相应数量的线程,并为每个所述线程对应的创建一消费者。其中,在一些情况下,上述相除的结果会大于需要创建的线程的最大预定数量,此时,则按照该最大预定数量创建相应数量的线程。此外,基于将全部数据平均分配至各个线程的设置方式,还相应的计算出每个线程的开始偏移量和结束偏移量。
本实施例中,根据查询结果参数中的第二额定数据量,来构建相应数据容量的阻塞队列。
参考图2,作为一个示例,用户选定了主题Topic A,该主题Topic A包括两个分区,分别为:Partition 0和Partition 1。
对于分区Partition 0,其内数据的最大偏移量和最小偏移量分别为300和0,则分区Partition 0的数据量为300-0=300;类似的,分区Partition 1的数据量为300。对于主题Topic A,其总数据量为300+300=600。
本示例中,查询结果参数中的第一额定数据量为100,也即每个线程最多能够处理100条数据。则需要创建的线程数量为600/100=6,即需创建6个线程;相应的,查询结果参数中的线程的最大预定数量为10,之前确定的需创建的线程数量6小于最大预定数量10,则创建6个线程,分别为线程1、线程2、线程3、线程4、线程5和线程6(在一些情况下,总数据量与第一额定数据量相除的结果会大于最大预定数量,例如:总数据量为1200,第一额定数据量为100,最大预定数量为10,1200/100=12>10,则创建10个线程)。
本示例中,基于数据量平分的设置方式,为每个线程分别设置开始偏移量和结束偏移量,具体如表1所示。
表1线程设置示例
分区 | 开始偏移量 | 结束偏移量 | |
线程1 | Partition 0 | 0 | 100 |
线程2 | Partition 0 | 101 | 200 |
线程3 | Partition 0 | 201 | 300 |
线程4 | Partition 1 | 0 | 100 |
线程5 | Partition 1 | 101 | 200 |
线程6 | Partition 1 | 201 | 300 |
步骤S103、对于每个所述线程,通过其对应的所述消费者进行消费得到消费数据,将所述查询内容与所述消费数据进行匹配,得到查询结果并存入所述阻塞队列。
本实施例中,对于一个线程和其对应的消费者,可以使用consumer的seek方法,从开始偏移量起对该线程内的数据进行消费。对于消费得到的消费数据,将其与用户提交的查询内容进行匹配,成功匹配的数据作为查询结果存入阻塞队列。
其中,消费者可以采用poll方法从相应的线程内消费数据。在poll方法下,以预定的拉取时间分次的进行数据拉取;也即消费者以预定的单次数据量从相应的线程中依次进行消费得到消费数据。
本实施例中,对于一个线程,其查询工作是否结束,可以通过以下方法判断。具体的,对于任意一次消费得到的消费数据,确定该些消费数据的最大偏移量和最小偏移量。相应的,还确定该线程的结束偏移量。然后,将该线程的结束偏移量与该次消费得到的消费数据的最大偏移量和最小偏移量进行比对,若线程的结束偏移量大于等于消费数据的最小偏移量,且小于等于消费数据的最大偏移量,则关闭该线程对应的消费者,该线程的查询工作结束。对于每个线程,均会执行上述方法,直至所有线程均结束查询工作后,阻塞队列中的查询结果即可以作为最终结果被返回至用户。
作为一个示例,参考图2和表1,以线程3为例,其结束偏移量为300,此时,线程3中实际存在的数据的偏移量范围为[0,299](偏移量300为下一条写入数据的偏移量,此时还没有数据);线程3对应的消费者一次消费到的消费数据的最大偏移量和最小偏移量分别为290和299;根据本实施例中的判断方式,299>290且299=299,则线程3的结束查询工作结束。在一些情况下,线程的数据量并不是消费者消费的单次数据量的整数倍,则此时消费数据的最大偏移量则会大于线程的结束偏移量。
本实施例中,由于阻塞队列具有预定的数据容量。在各个线程进行查询工作时,会持续得到查询结果并等待存入阻塞队列,而该些查询结果的总数据量一般会大于阻塞队列预定的数据容量。由于越新的数据的应用价值越高,则当阻塞队列的剩余存储空间不够存储待存入的查询结果时,将阻塞队列较早的已存储数据清除,以得到足够的存储空间来存储待存入的查询结果。其具体处理步骤为:判断所述阻塞队列是否留有足够存储所述查询结果的存储空间;若是,则将所述查询结果存入所述阻塞队列;若否,将所述阻塞队列中最先存入的若干查询结果清除,以使所述阻塞队列具有足够的存储空间并存入所述查询结果。
步骤S104、将所述阻塞队列中的所述查询结果返回至用户。
本实施例中,在全部线程均结束查询工作后,将阻塞队列中的查询结果返回至用户。其中,查询结果可以通过JSON报文的形式返回给用户。
由上述实施例可见,本公开的Kafka数据的模糊查询方法,根据用户选定的主题和提交的查询内容,相应的创建多个线程对Kafka数据进行消费并相应进行模糊查询,不会增加维护和接入成本,且具有较高的搜索效率。
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,本说明书一个或多个实施例还提供了一种Kafka数据的模糊查询装置。参考图3,所述Kafka数据的模糊查询装置,包括:
获取模块301,被配置为获取用户选定的主题和提交的查询内容;
创建模块302,被配置为确定所述主题下存储的全部数据;根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,并为每个所述线程对应的创建一消费者;
查询模块303,被配置为对于每个所述线程,通过其对应的所述消费者进行消费得到消费数据,将所述查询内容与所述消费数据进行匹配,得到查询结果并存入所述阻塞队列;
返回模块304,被配置为将所述阻塞队列中的所述查询结果返回至用户。
作为一个可选的实施例,创建模块302,具体被配置为确定所述主题包括的若干分区,并确定每个所述分区的数据的最大偏移量和最小偏移量;将所述最大偏移量和所述最小偏移量相减,得到所述分区的数据量,并将每个所述分区的数据量相加,得到所述全部数据对应的总数据量;根据所述查询结果参数,确定表征线程最大数据处理能力的第一额定数据量;根据所述总数据量与所述第一额定数据量相除的结果,相应创建若干所述线程。
作为一个可选的实施例,创建模块302,具体被配置为根据所述查询结果参数,确定所述线程的最大预定数量;若所述总数据量与所述第一额定数据量相除的结果大于所述最大预定数量,则根据所述最大预定数量,相应创建若干所述线程;若所述总数据量与所述第一额定数据量相除的结果不大于所述最大预定数量,则根据所述总数据量与所述第一额定数据量相除的结果,相应创建若干所述线程。
作为一个可选的实施例,创建模块302,具体被配置为根据所述查询结果参数,确定表征所述查询结果最大数据容量的第二额定数据量,并根据所述第二额定数据量构建相应数据容量的所述阻塞队列。
作为一个可选的实施例,查询模块303,具体被配置为采用poll方法、以预定的单次数据量,通过所述消费者从相应的所述线程中依次进行消费得到所述消费数据。
作为一个可选的实施例,查询模块303,具体被配置为确定所述线程的结束偏移量;对于一次消费得到的所述消费数据,确定所述消费数据的最大偏移量和最小偏移量;若所述线程的结束偏移量大于等于所述消费数据的最小偏移量,且小于等于所述消费数据的最大偏移量,则关闭所述线程对应的所述消费者以停止对所述线程进行消费。
作为一个可选的实施例,查询模块303,具体被配置为判断所述阻塞队列是否留有足够存储所述查询结果的存储空间;若是,则将所述查询结果存入所述阻塞队列;若否,将所述阻塞队列中最先存入的若干查询结果清除,以使所述阻塞队列具有足够的存储空间并存入所述查询结果。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的方法。
图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,本说明书一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种Kafka数据的模糊查询方法,其特征在于,包括:
获取用户选定的主题和提交的查询内容;
确定所述主题下存储的全部数据;根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,并为每个所述线程对应的创建一消费者;
对于每个所述线程,通过其对应的所述消费者进行消费得到消费数据,将所述查询内容与所述消费数据进行匹配,得到查询结果并存入所述阻塞队列;
将所述阻塞队列中的所述查询结果返回至用户。
2.根据权利要求1所述的方法,其特征在于,所述根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,具体包括:
确定所述主题包括的若干分区,并确定每个所述分区的数据的最大偏移量和最小偏移量;
将所述最大偏移量和所述最小偏移量相减,得到所述分区的数据量,并将每个所述分区的数据量相加,得到所述全部数据对应的总数据量;
根据所述查询结果参数,确定表征线程最大数据处理能力的第一额定数据量;
根据所述总数据量与所述第一额定数据量相除的结果,相应创建若干所述线程。
3.根据权利要求2所述的方法,其特征在于,所述根据所述总数据量与所述额定数据量相除的结果,相应创建若干所述线程,具体包括:
根据所述查询结果参数,确定所述线程的最大预定数量;
若所述总数据量与所述第一额定数据量相除的结果大于所述最大预定数量,则根据所述最大预定数量,相应创建若干所述线程;
若所述总数据量与所述第一额定数据量相除的结果不大于所述最大预定数量,则根据所述总数据量与所述第一额定数据量相除的结果,相应创建若干所述线程。
4.根据权利要求1所述的方法,其特征在于,所述根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,具体包括:
根据所述查询结果参数,确定表征所述查询结果最大数据容量的第二额定数据量,并根据所述第二额定数据量构建相应数据容量的所述阻塞队列。
5.根据权利要求1所述的方法,其特征在于,所述通过其对应的消费者进行消费得到消费数据,将所述查询内容与所述消费数据进行匹配,得到查询结果并存入所述阻塞队列,具体包括:
采用poll方法、以预定的单次数据量,通过所述消费者从相应的所述线程中依次进行消费得到所述消费数据。
6.根据权利要求5所述的方法,其特征在于,所述采用poll方法、以预定的单次数据量,通过所述消费者从相应的所述线程中依次进行消费得到所述消费数据,具体包括:
确定所述线程的结束偏移量;
对于一次消费得到的所述消费数据,确定所述消费数据的最大偏移量和最小偏移量;
若所述线程的结束偏移量大于等于所述消费数据的最小偏移量,且小于等于所述消费数据的最大偏移量,则关闭所述线程对应的所述消费者以停止对所述线程进行消费。
7.根据权利要求1所述的方法,其特征在于,所述得到查询结果并存入所述阻塞队列,具体包括:
判断所述阻塞队列是否留有足够存储所述查询结果的存储空间;若是,则将所述查询结果存入所述阻塞队列;若否,将所述阻塞队列中最先存入的若干查询结果清除,以使所述阻塞队列具有足够的存储空间并存入所述查询结果。
8.一种Kafka数据的模糊查询装置,其特征在于,包括:
获取模块,被配置为获取用户选定的主题和提交的查询内容;
创建模块,被配置为确定所述主题下存储的全部数据;根据所述全部数据和预设的查询结果参数,创建阻塞队列和用于消费所述全部数据的若干线程,并为每个所述线程对应的创建一消费者;
查询模块,被配置为对于每个所述线程,通过其对应的所述消费者进行消费得到消费数据,将所述查询内容与所述消费数据进行匹配,得到查询结果并存入所述阻塞队列;
返回模块,被配置为将所述阻塞队列中的所述查询结果返回至用户。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011412202.9A CN112506992B (zh) | 2020-12-04 | 2020-12-04 | Kafka数据的模糊查询方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011412202.9A CN112506992B (zh) | 2020-12-04 | 2020-12-04 | Kafka数据的模糊查询方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506992A true CN112506992A (zh) | 2021-03-16 |
CN112506992B CN112506992B (zh) | 2024-04-16 |
Family
ID=74970300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011412202.9A Active CN112506992B (zh) | 2020-12-04 | 2020-12-04 | Kafka数据的模糊查询方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506992B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297274A (zh) * | 2021-06-10 | 2021-08-24 | 杭州每刻科技有限公司 | 一种签收数据查询方法和系统 |
CN113326415A (zh) * | 2021-05-17 | 2021-08-31 | 上海中通吉网络技术有限公司 | 一种Kafka消息体的查询方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970597A (zh) * | 2014-04-24 | 2014-08-06 | 烽火通信科技股份有限公司 | 读写均衡的阻塞队列实现方法及装置 |
CN106302385A (zh) * | 2016-07-26 | 2017-01-04 | 努比亚技术有限公司 | 一种消息分发装置及方法 |
CN107231443A (zh) * | 2017-08-10 | 2017-10-03 | 深圳市中青合创传媒科技有限公司 | 一种应用程序高并发高负荷处理方法和系统 |
CN108509299A (zh) * | 2018-03-29 | 2018-09-07 | 努比亚技术有限公司 | 消息处理方法、设备及计算机可读存储介质 |
CN109379401A (zh) * | 2018-09-07 | 2019-02-22 | 南京中新赛克科技有限责任公司 | 基于Kafka的原始流量存储装置 |
CN109445955A (zh) * | 2018-09-13 | 2019-03-08 | 武汉斗鱼网络科技有限公司 | 一种计数方法及计数系统 |
CN109493076A (zh) * | 2018-11-09 | 2019-03-19 | 武汉斗鱼网络科技有限公司 | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 |
CN110389957A (zh) * | 2019-07-24 | 2019-10-29 | 深圳市盟天科技有限公司 | 基于分库分表的文件生成方法、装置、存储介质及设备 |
CN110535787A (zh) * | 2019-07-25 | 2019-12-03 | 北京奇艺世纪科技有限公司 | 消息消费方法、装置及可读存储介质 |
CN110648178A (zh) * | 2019-09-24 | 2020-01-03 | 四川长虹电器股份有限公司 | 一种增加kafka消费能力的方法 |
CN110688382A (zh) * | 2019-09-25 | 2020-01-14 | 深圳市赛为智能股份有限公司 | 数据存储查询方法、装置、计算机设备及存储介质 |
CN111813848A (zh) * | 2020-07-08 | 2020-10-23 | 江苏聚衣网络科技有限公司 | 基于kafka日志中间件的数据实时采集分析方法 |
-
2020
- 2020-12-04 CN CN202011412202.9A patent/CN112506992B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970597A (zh) * | 2014-04-24 | 2014-08-06 | 烽火通信科技股份有限公司 | 读写均衡的阻塞队列实现方法及装置 |
CN106302385A (zh) * | 2016-07-26 | 2017-01-04 | 努比亚技术有限公司 | 一种消息分发装置及方法 |
CN107231443A (zh) * | 2017-08-10 | 2017-10-03 | 深圳市中青合创传媒科技有限公司 | 一种应用程序高并发高负荷处理方法和系统 |
CN108509299A (zh) * | 2018-03-29 | 2018-09-07 | 努比亚技术有限公司 | 消息处理方法、设备及计算机可读存储介质 |
CN109379401A (zh) * | 2018-09-07 | 2019-02-22 | 南京中新赛克科技有限责任公司 | 基于Kafka的原始流量存储装置 |
CN109445955A (zh) * | 2018-09-13 | 2019-03-08 | 武汉斗鱼网络科技有限公司 | 一种计数方法及计数系统 |
CN109493076A (zh) * | 2018-11-09 | 2019-03-19 | 武汉斗鱼网络科技有限公司 | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 |
CN110389957A (zh) * | 2019-07-24 | 2019-10-29 | 深圳市盟天科技有限公司 | 基于分库分表的文件生成方法、装置、存储介质及设备 |
CN110535787A (zh) * | 2019-07-25 | 2019-12-03 | 北京奇艺世纪科技有限公司 | 消息消费方法、装置及可读存储介质 |
CN110648178A (zh) * | 2019-09-24 | 2020-01-03 | 四川长虹电器股份有限公司 | 一种增加kafka消费能力的方法 |
CN110688382A (zh) * | 2019-09-25 | 2020-01-14 | 深圳市赛为智能股份有限公司 | 数据存储查询方法、装置、计算机设备及存储介质 |
CN111813848A (zh) * | 2020-07-08 | 2020-10-23 | 江苏聚衣网络科技有限公司 | 基于kafka日志中间件的数据实时采集分析方法 |
Non-Patent Citations (1)
Title |
---|
HTTP://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1512327: "使用多线程增加kafka消费能力", Retrieved from the Internet <URL:http://cloud.tencent.com/developer/article/1512327> * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326415A (zh) * | 2021-05-17 | 2021-08-31 | 上海中通吉网络技术有限公司 | 一种Kafka消息体的查询方法 |
CN113297274A (zh) * | 2021-06-10 | 2021-08-24 | 杭州每刻科技有限公司 | 一种签收数据查询方法和系统 |
CN113297274B (zh) * | 2021-06-10 | 2023-09-01 | 杭州每刻科技有限公司 | 一种签收数据查询方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112506992B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055360B2 (en) | Data write-in method and apparatus in a distributed file system | |
CN105893139B (zh) | 在云存储环境中用于向租户提供存储服务的方法和装置 | |
CN106326309B (zh) | 一种数据查询方法和装置 | |
CN112506992B (zh) | Kafka数据的模糊查询方法、装置、电子设备和存储介质 | |
CN110069523B (zh) | 一种数据查询方法、装置和查询系统 | |
CN108021405A (zh) | 一种soc系统启动过程中存储介质的驱动方法和装置 | |
CN113010312A (zh) | 一种超参数调优方法、装置及存储介质 | |
CN107451204B (zh) | 一种数据查询方法、装置及设备 | |
CN108241620B (zh) | 查询脚本的生成方法及装置 | |
CN113190576A (zh) | 数据处理方法、装置、计算机设备和可读存储介质 | |
CN112800091A (zh) | 一种流批一体式计算控制系统及方法 | |
CN111125157B (zh) | 查询数据的处理方法、装置、存储介质及处理器 | |
CN117271014A (zh) | 基于web worker的数据处理方法和客户端 | |
US20150095897A1 (en) | Method and apparatus for converting programs | |
KR101990603B1 (ko) | 대규모 소스 코드 저장소들에서의 자동적인 임포트들 및 의존성들 | |
CN112506887A (zh) | 车辆终端can总线数据处理方法及装置 | |
CN112486589A (zh) | 一种系统配置项管理方法、装置、电子设备及存储介质 | |
CN112231531A (zh) | 一种基于opentsdb的数据展示方法、设备及介质 | |
US9230022B1 (en) | Customizable result sets for application program interfaces | |
CN113792237B (zh) | 卡片式布局的优化方法、装置、存储介质及处理器 | |
CN109542729A (zh) | 设备性能参数数据分析方法及装置 | |
CN112199577B (zh) | 一种数据查询方法、装置及电子设备 | |
CN112395276A (zh) | 一种数据比对方法及相关设备 | |
CN113282617A (zh) | 数据查询方法以及业务系统翻页方法 | |
CN110019296B (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 |