CN112231344B - 实时流数据查询方法及装置 - Google Patents
实时流数据查询方法及装置 Download PDFInfo
- Publication number
- CN112231344B CN112231344B CN202011115984.XA CN202011115984A CN112231344B CN 112231344 B CN112231344 B CN 112231344B CN 202011115984 A CN202011115984 A CN 202011115984A CN 112231344 B CN112231344 B CN 112231344B
- Authority
- CN
- China
- Prior art keywords
- data
- query
- real
- result
- time stream
- 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.)
- Active
Links
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/2455—Query execution
- G06F16/24568—Data stream processing; Continuous 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/248—Presentation of query results
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实时流数据查询方法及装置,其中方法包括:接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink‑SQL处理后的携带标志位信息的数据;根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;根据筛选的结果,向用户反馈实时流数据查询结果。本发明可以高效查询实时流数据,节省人力物理,提高准确率。
Description
技术领域
本发明涉及数据查询技术领域,尤其涉及实时流数据查询方法及装置。
背景技术
目前,一些保险产品会通过直播渠道进行售卖,有很多的客户都会观看直播,这些客户源源不断的产生访问直播、观看、退出,再访问等行为的,如果想要实时查询有多少客户正在观看直播、各个地域购买的保险商品实时是多少等情况时,就需要对接Kafka中的实时流数据,使用Flink-SQL,聚合地域等维度,得到统计结果。上述场景只是众多实时计算场景中的一个,以前大量的数据都是离线处理的数据,但是随着客户的增多,互联网的新型方式引入,实时场景越来越多,Flink作为实时计算的领先技术,其现在已经可以支持数据分析人员对接Kafka的流数据,通过编写Flink-SQL,能实时的通过SQL计算出结果。
但是,Flink-SQL在使用聚合场景(即group by)的时候,由于数据是源源不断的流,所以其聚合的结果也是实时动态更改的。数据分析人员在得到这些聚合结果之后需要逐一进行人工分析和筛选,耗费人力物力,并且在人工分析时也容易产生错误。
因此,亟需一种可以克服上述问题的实时流数据查询方案。
发明内容
本发明实施例提供一种实时流数据查询方法,用以高效查询实时流数据,节省人力物理,提高准确率,该方法包括:
接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;
根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;
根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;
根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;
根据筛选的结果,向用户反馈实时流数据查询结果。
本发明实施例提供一种实时流数据查询装置,用以高效查询实时流数据,节省人力物理,提高准确率,该装置包括:
指令接收模块,用于接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;
数据提取模块,用于根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;
数据排序模块,用于根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;
数据筛选模块,用于根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;
结果反馈模块,用于根据筛选的结果,向用户反馈实时流数据查询结果。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实时流数据查询方法。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实时流数据查询方法。
相对于现有技术中数据分析人员在得到带标签的数据之后逐一进行人工分析和筛选的方案而言,本发明实施例通过接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;根据筛选的结果,向用户反馈实时流数据查询结果。本发明实施例无需对数据逐一进行人工分析,只需在接收到用户发送的本次实时流数据的查询指令之后,根据查询指令中携带查询维度字段信息,对携带标志位信息的聚合数据进行排序,从而得到每一查询维度对应的聚合数据,实现聚合数据标志位信息的梳理排列,然后根据聚合数据携带的标志位信息对排序后的聚合数据进行筛选,通过排序后的标志位信息剔除聚合数据中的冗余数据,从而高效查询实时流数据,节省人力物理,提高准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有实时流数据查询示意图;
图2为本发明实施例中实时流数据查询方法示意图;
图3~图5为本发明具体实施例中实时流数据查询方法示意图;
图6为本发明实施例中实时流数据查询装置结构图;
图7为本发明实施例提供的计算机设备的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
如前所述,Flink-SQL在使用聚合场景(即group by)的时候,由于数据是源源不断的流,所以其聚合的结果也是实时动态更改的。Flink对于这种更改的数据,其采用的是用标志位的方式,给失效结果数据打上false标签,给当前有效结果数据打上true标签的方式,呈现给用户。但是一般的数据分析人员只对sql语法熟练,而对Flink的这种原理并不清楚。例如,在实时流的场景下,Flink-SQL执行之后,产生的结果如图1所示,其采用的是用标志位的方式,给失效结果数据打上false标签,给当前有效结果数据打上true标签的方式,呈现给用户。而大部分的数据分析人员并不了解Flink的聚合原理,拿到这样的结果,也无从下手,不知道如何进行判断和筛选。而且,这样带有标志位的结果也非常杂乱,人工进行判断也非常容易出错。这就导致了很多数据分析人员没有办法对实时结果进行直观的反馈和分析,需要去学习Flink的聚合原理,但是这样学习成本高,而且效率比较低。这些数据输出之后,没有办法给领导或者负责晨会人数统计的负责人看的,结果数据既晦涩难懂,在人工摘取有效数据的时候也容易产生错误。
为了高效查询实时流数据,节省人力物理,提高准确率,本发明实施例提供一种实时流数据查询方法,如图2所示,该方法可以包括:
步骤201、接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;
步骤202、根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;
步骤203、根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;
步骤204、根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;
步骤205、根据筛选的结果,向用户反馈实时流数据查询结果。
由图2所示可以得知,本发明实施例通过接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;根据筛选的结果,向用户反馈实时流数据查询结果。本发明实施例无需对数据逐一进行人工分析,只需在接收到用户发送的本次实时流数据的查询指令之后,根据查询指令中携带查询维度字段信息,对携带标志位信息的聚合数据进行排序,从而得到每一查询维度对应的聚合数据,实现聚合数据标志位信息的梳理排列,然后根据聚合数据携带的标志位信息对排序后的聚合数据进行筛选,通过排序后的标志位信息剔除聚合数据中的冗余数据,从而高效查询实时流数据,节省人力物理,提高准确率。
具体实施时,接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度。根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据。
实施例中,所述查询指令中还携带查询次数信息;根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,包括:根据所述查询指令中携带的查询次数信息,确定本次实时流数据对应的存储位置信息;根据所述存储位置信息,从数据库中提取本次实时流数据对应的聚合数据。
实施例中,所述存储位置信息包括数据库中kafka消息队列的topic名称信息;根据所述存储位置信息,从数据库中提取本次实时流数据对应的聚合数据,包括:根据所述kafka消息队列的topic名称信息,从数据库中提取本次实时流数据对应的聚合数据。
实施例中,在用户发送本次实时流数据的查询指令之前,先执行Flink-SQL,由于对接的是实时流,所以SQL的执行结果都是带着标志位动态变化的,这些变化的原始数据可以存储在数据库中kafka消息队列的某一个topic里,为了保证之后数据流转的数据不乱序,每个topic只能有一个partition。为了之后能方便在请求时能知道在哪个topic里,设计topic名称采用递增方式,如第一次写入数据的topic名称为topic1,之后为topic2,topic3等累加命名。
具体实施时,根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序。根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选。
实施例中,所述标志位信息包括:true标签信息和false标签信息;根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选,包括:对同一查询维度,若聚合数据携带的标志位信息中存在与true标签信息匹配的false标签信息,则删除所述true标签信息对应的聚合数据以及与true标签信息匹配的false标签信息对应的聚合数据。
具体实施时,根据筛选的结果,向用户反馈实时流数据查询结果。
实施例中,根据筛选的结果,向用户反馈实时流数据查询结果,包括:根据筛选的结果,得到本次查询结果;若查询次数信息为第一次查询,则根据本次查询结果向用户反馈实时流数据查询结果,否则,根据本次查询结果和历史查询结果向用户反馈实时流数据查询结果,所述历史查询结果根据历史实时流数据得到。
实施例中,根据本次查询结果和历史查询结果向用户反馈实时流数据查询结果,包括:从缓存区提取历史查询结果;将所述本次查询结果和历史查询结果进行融合处理;根据融合处理的结果,向用户反馈实时流数据查询结果。
实施例中,将所述本次查询结果和历史查询结果进行融合处理,包括:将历史查询结果中与本次查询结果的查询维度相同的数据进行删除处理;将删除处理后的本次查询结果和历史查询结果作为融合处理的结果。
本实施例中,缓存区存储着上次topic里面计算的历史查询结果。当第一次用户查询时,缓存区肯定是空的,则:首先,获取到本次实时流数据对应的聚合数据后,由于每个topic都只有一个partiton分区,则数据都是有序到达的,对这批数据按照SQL里面聚合查询的维度字段,进行true标签信息和false标签信息的排序,如果相同维度的true后面跟随false,则认为前面的true无效,删除前面的true和与它匹配的false数据。最终留下来的数据就是本轮产生的结果,将这些数据的标志位都去掉,存储在缓存区中,由于之前那缓存区没有数据,则直接将结果返回。其次,当用户之后再查询时,做法同上述,得到一个新计算的结果集newData,但是先不要放入缓存区,在放入缓存区之前,需要先和之前的缓存区数据做融合处理,对于相同维度的数据,删除之前缓存区的数据,放入newData的这条维度统计的数据,对于不同维度的数据,追加进入缓存区即可,之前缓存区有的数据而newData中没有的,则不需要处理,依然保留在缓存区即可。全部操作完成之后,再将缓存区的结果返回给用户。
下面给出一个具体实施例,说明本发明提供的养老服务项目确定方法的具体应用。在如图3所示,为本发明具体实施例的实时流数据查询流程图中。在本发明具体实施例中,Flink-SQL对接Kafka的实时流数据,执行含有聚合语句的SQL。提交至Flink之后,对其产生的带有标志位的数据写入动态数据存储模块中,动态数据存储模块可以采用消息队列作为介质存储,其Topic的个数也是动态生成的。用户通过动态数据查询轮询模块,查询存储模块的数据,存储模块将数据返回给动态结果合并模块,合并模块Merge数据之后,将清晰的结果数据返回给用户。
下面给出图中每个模块的工作流程和原理:
动态数据存储模块与动态数据查询轮询模块:在常规的执行完Flink-SQL之后,由于对接的是实时流,所以SQL的执行结果都是带着标志位动态变化的,这些变化的原始数据可以存储在动态数据存储模块的消息队列的某一个topic里,为了保证之后数据流转的数据不乱序,每个topic只能有一个partition。为了之后能方便动态数据查询轮询模块在请求时能知道在哪个topic里,本发明设计topic名称采用递增方式,如第一次写入数据的topic名称为topic1,之后为topic2,topic3等累加命名。动态数据查询轮询模块里记录了kafka中实时流和其对应的迭加器的key-value结构,用户进行点击操作时,如图4所示,会根据SQL中的实时流,取出迭加器里记录的值,找到topic的顺序编号。动态数据查询轮询模块中用户第一次提交sql时,会向轮询模块初始化一个value值为1的key-value结构。和本发明有关的功能按钮包括提交运行、SQL编辑框、刷新数据这三部分。提供用户编辑SQL,用户对SQL进行“提交运行”的操作,即可将SQL第一次提交到Flink集群上,其反馈给用户的聚合数据为流数据产生到提交的时间段聚合出来的数据。可以看到,本次数据直接产生了聚合的结果,并没有出现例如文档第三部分出现的true或者false的Flink标识字段。当用户点击“刷新数据”后,系统会计算从第一次计算到第二次刷新之间的流数据聚合结果,已有的统计维度在没有新数据来的情况下可继续保留在前端页面(保留的数据加上了灰色的底色,标示在这个操作周期内没有因为流数据发生过改变),有新的统计维度结果可以追加(白色部分为已有维度统计的改变,或者新维度的追加),不会出现刷新流数据,数据时多时少的情况;如图5所示,通过本发明提出的方案,既合并了标识符,又合并了历史数据。
按照图3的流程,当用户①提交sql后,FLink就会产生动态结果数据,这些数据默认写入topic1的主题里,此时Flink只是在持续向topic1中产生数据,这些数据均是带有标志位的原始数据。当此时用户进行如图5部分的“刷新数据”点击事件时,会调用动态数据查询轮询模块,取出本个实时流对应的value,即1,拼接目标topic,即可获得topic1的名称,则触发图中的③行为,从topic1中读取数据,将数据写入动态结果合并模块中(即④行为)。一旦发生④行为,动态数据存储模块会再递增一个值,产生一个新的topic,即topic2,Flink-SQL产生的数据就向topic2中写入,于此同时,数据查询轮询模块中,实时流对应的value值也进行+1操作;下次用户再点击查询时,就需要从topic2中读取数据。
动态结果合并模块:动态结果合并模块分两步完成。在动态结果合并模块中,有一个缓存区存储着上次topic里面计算的结果值。当第一次用户查询时,缓存区肯定是空的,则:首先,获取到④返回的数据后,由于每个topic都只有一个partiton分区,则数据都是有序到达的,则对这批数据按照SQL里面聚合查询的维度字段,进行true和false的排序,如果相同维度的true后面跟随false,则认为前面的true无效,删除前面的true和与它匹配的false数据。最终留下来的数据就是本轮产生的结果,将这些数据的标志位都去掉,存储在缓存区中,由于之前那缓存区没有数据,则直接将结果返回。其次,当用户之后再查询时,做法同上述,得到一个新计算的结果集newData,但是先不要放入缓存区,在放入缓存区之前,需要先和之前的缓存区数据做Merge,相同维度的数据,删除之前缓存区的数据,放入newData的这条维度统计的数据,不同维度的数据,追加进入缓存区即可,之前缓存区有的数据而newData中没有的,则不需要处理,依然保留在缓存区即可。全部操作完成之后,再将缓存区的结果返回给用户。返回给用户的数据如图4和图5所示,其中,如果用户是第一次提交到集群,未点击过刷新数据,则结果显示和图4保持一致,如果用户已经提交到集群,点击刷新数据,则结果和图5保持一致。
本发明实施例为了将Flink-SQL实时计算的标志位去掉,并完成历史数据合并,保证不丢数,所以特地将流程分成了第一步提交集群,让SQL运行一段时间,产生一些数据,之后再刷新数据,进行合并的操作。例如目前有一些保险产品会通过直播渠道进行售卖,有很多的客户都会观看直播,这些客户源源不断的产生访问直播、观看、退出,再访问等行为的,如果我们想要实时给领导看有多少客户正在观看直播、各个地域或者年龄段购买的保险商品实时是多少等情况时,就需要对接Kafka中的实时流数据,使用Flink-SQL,聚合地域、年龄段等维度,得到统计结果,但是因为用户是实时产生的行为数据,聚合统计的结果也是动态更新的,Flink会不断的产生true和false的标志位。这些数据输出之后,没有办法给领导或者负责晨会人数统计的负责人看的,结果数据既晦涩难懂,在人工摘取有效数据的时候也容易产生错误。本方案提出的这种方式,能自动合并数据,将动态结果进行实时处理,反馈最终数值,清晰了然。本发明实施例取消掉原有的Flink-SQL聚合之后其标志位的问题,确保Flink-SQL每次的结果进行Merge的时候数据的有序性,将动态的、带有标志位的聚合结果进行处理,兼顾历史数据,最终呈现清晰明了的计算结果。
基于同一发明构思,本发明实施例还提供了一种实时流数据查询装置,如下面的实施例所述。由于这些解决问题的原理与实时流数据查询方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图6为本发明实施例中实时流数据查询装置的结构图,如图6所示,该装置包括:
指令接收模块601,用于接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;
数据提取模块602,用于根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;
数据排序模块603,用于根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;
数据筛选模块604,用于根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;
结果反馈模块605,用于根据筛选的结果,向用户反馈实时流数据查询结果。
如图7所示,本发明实施例还提供一种计算机设备,包括存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序,所述处理器702执行所述计算机程序时实现如下方法:
接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;
根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;
根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;
根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;
根据筛选的结果,向用户反馈实时流数据查询结果。
综上所述,本发明实施例通过接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;根据筛选的结果,向用户反馈实时流数据查询结果。本发明实施例无需对数据逐一进行人工分析,只需在接收到用户发送的本次实时流数据的查询指令之后,根据查询指令中携带查询维度字段信息,对携带标志位信息的聚合数据进行排序,从而得到每一查询维度对应的聚合数据,实现聚合数据标志位信息的梳理排列,然后根据聚合数据携带的标志位信息对排序后的聚合数据进行筛选,通过排序后的标志位信息剔除聚合数据中的冗余数据,从而高效查询实时流数据,节省人力物理,提高准确率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种实时流数据查询方法,其特征在于,包括:
接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;所述查询指令中还携带查询次数信息;
根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;其中,所述标志位信息包括:true标签信息和false标签信息;用标志位的方式,给失效结果数据打上false标签,给有效结果数据打上true标签;
根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;
根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;
根据筛选的结果,向用户反馈实时流数据查询结果;
其中,根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选,包括:对同一查询维度,若聚合数据携带的标志位信息中存在与true标签信息匹配的false标签信息,则删除所述true标签信息对应的聚合数据以及与true标签信息匹配的false标签信息对应的聚合数据;
根据筛选的结果,向用户反馈实时流数据查询结果,包括:
根据筛选的结果,得到本次查询结果;
若查询次数信息为第一次查询,则根据本次查询结果向用户反馈实时流数据查询结果,否则,根据本次查询结果和历史查询结果向用户反馈实时流数据查询结果,所述历史查询结果根据历史实时流数据得到;
根据本次查询结果和历史查询结果向用户反馈实时流数据查询结果,包括:
从缓存区提取历史查询结果;
将所述本次查询结果和历史查询结果进行融合处理;
根据融合处理的结果,向用户反馈实时流数据查询结果;
将所述本次查询结果和历史查询结果进行融合处理,包括:
将历史查询结果中与本次查询结果的查询维度相同的数据进行删除处理;
将删除处理后的本次查询结果和历史查询结果作为融合处理的结果。
2.如权利要求1所述的实时流数据查询方法,其特征在于,根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,包括:根据所述查询指令中携带的查询次数信息,确定本次实时流数据对应的存储位置信息;根据所述存储位置信息,从数据库中提取本次实时流数据对应的聚合数据。
3.如权利要求2所述的实时流数据查询方法,其特征在于,所述存储位置信息包括数据库中kafka消息队列的topic名称信息;
根据所述存储位置信息,从数据库中提取本次实时流数据对应的聚合数据,包括:根据所述kafka消息队列的topic名称信息,从数据库中提取本次实时流数据对应的聚合数据。
4.一种实时流数据查询装置,其特征在于,包括:
指令接收模块,用于接收用户发送的本次实时流数据的查询指令,所述查询指令中携带查询维度字段信息,所述查询维度字段信息中包括一个或多个查询维度;所述查询指令中还携带查询次数信息;
数据提取模块,用于根据所述查询指令,从数据库中提取本次实时流数据对应的聚合数据,所述聚合数据为本次实时流数据经过Flink-SQL处理后的携带标志位信息的数据;其中,所述标志位信息包括:true标签信息和false标签信息;用标志位的方式,给失效结果数据打上false标签,给有效结果数据打上true标签;
数据排序模块,用于根据所述查询维度字段信息,对所述携带标志位信息的聚合数据进行排序;
数据筛选模块,用于根据聚合数据携带的标志位信息,对排序后的聚合数据进行筛选;
结果反馈模块,用于根据筛选的结果,向用户反馈实时流数据查询结果;
其中,数据筛选模块,具体用于对同一查询维度,若聚合数据携带的标志位信息中存在与true标签信息匹配的false标签信息,则删除所述true标签信息对应的聚合数据以及与true标签信息匹配的false标签信息对应的聚合数据;
结果反馈模块,具体用于:
根据筛选的结果,得到本次查询结果;
若查询次数信息为第一次查询,则根据本次查询结果向用户反馈实时流数据查询结果,否则,根据本次查询结果和历史查询结果向用户反馈实时流数据查询结果,所述历史查询结果根据历史实时流数据得到;
结果反馈模块,具体用于:
从缓存区提取历史查询结果;
将所述本次查询结果和历史查询结果进行融合处理;
根据融合处理的结果,向用户反馈实时流数据查询结果;
结果反馈模块,具体用于:
将历史查询结果中与本次查询结果的查询维度相同的数据进行删除处理;
将删除处理后的本次查询结果和历史查询结果作为融合处理的结果。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3任一所述方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至3任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011115984.XA CN112231344B (zh) | 2020-10-19 | 2020-10-19 | 实时流数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011115984.XA CN112231344B (zh) | 2020-10-19 | 2020-10-19 | 实时流数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231344A CN112231344A (zh) | 2021-01-15 |
CN112231344B true CN112231344B (zh) | 2023-10-13 |
Family
ID=74117429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011115984.XA Active CN112231344B (zh) | 2020-10-19 | 2020-10-19 | 实时流数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231344B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905566A (zh) * | 2021-03-18 | 2021-06-04 | 苏州科达科技股份有限公司 | 数据处理方法、装置及电子设备 |
CN113256355B (zh) * | 2021-07-14 | 2021-09-17 | 北京宇信科技集团股份有限公司 | 一种积分权益实时确定方法、装置、介质、设备和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213829A (zh) * | 2017-06-30 | 2019-01-15 | 北京国双科技有限公司 | 数据查询方法及装置 |
CN109408347A (zh) * | 2018-09-28 | 2019-03-01 | 北京九章云极科技有限公司 | 一种指标实时分析系统及指标实时计算方法 |
CN109684352A (zh) * | 2018-12-29 | 2019-04-26 | 江苏满运软件科技有限公司 | 数据分析系统、方法、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997180B2 (en) * | 2018-01-31 | 2021-05-04 | Splunk Inc. | Dynamic query processor for streaming and batch queries |
-
2020
- 2020-10-19 CN CN202011115984.XA patent/CN112231344B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213829A (zh) * | 2017-06-30 | 2019-01-15 | 北京国双科技有限公司 | 数据查询方法及装置 |
CN109408347A (zh) * | 2018-09-28 | 2019-03-01 | 北京九章云极科技有限公司 | 一种指标实时分析系统及指标实时计算方法 |
CN109684352A (zh) * | 2018-12-29 | 2019-04-26 | 江苏满运软件科技有限公司 | 数据分析系统、方法、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112231344A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043348B2 (en) | System and method for performing set operations with defined sketch accuracy distribution | |
US20240078229A1 (en) | Generating, accessing, and displaying lineage metadata | |
EP2929467B1 (en) | Integrating event processing with map-reduce | |
CN102483745B (zh) | 共同选择图像分类 | |
US20160364093A1 (en) | Graphical user interface for high volume data analytics | |
US8725721B2 (en) | Personalizing scoping and ordering of object types for search | |
CN112231344B (zh) | 实时流数据查询方法及装置 | |
CN110647512A (zh) | 一种数据存储和分析方法、装置、设备和可读介质 | |
US20200074509A1 (en) | Business data promotion method, device, terminal and computer-readable storage medium | |
CN111191111A (zh) | 内容推荐方法、装置及存储介质 | |
CN111241122A (zh) | 任务监测方法、装置、电子设备和可读存储介质 | |
CN114564482A (zh) | 一种面向多实体的标签系统及处理方法 | |
CN104424325A (zh) | 数据查询方法和装置 | |
CN113705629B (zh) | 一种训练样本生成方法、装置、存储介质及电子设备 | |
CN112818223B (zh) | 用户画像的查询处理方法、装置、设备、程序产品及介质 | |
Koschel et al. | Evaluating time series database management systems for insurance company | |
CN114428776A (zh) | 一种面向时序数据的索引分区管理方法和系统 | |
CN115687374A (zh) | 数据发布方法、装置、存储介质及计算机设备 | |
CN113704272A (zh) | 一种人机物融合环境下的数字对象状态表达方法及装置 | |
CN111680072A (zh) | 基于社交信息数据的划分系统及方法 | |
CN113127574A (zh) | 基于知识图谱的业务数据展示方法、系统、设备及介质 | |
CN110705736A (zh) | 宏观经济预测方法、装置、计算机设备及存储介质 | |
Kaur et al. | Metamorphosis of data (small to big) and the comparative study of techniques (HADOOP, HIVE and PIG) to handle big data | |
AU2013404005A1 (en) | Data processing system including a search engine | |
CN115455031B (zh) | 一种Doris的数据查询方法、装置、存储介质及设备 |
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 |