流数据处理方法、装置及设备与流程

文档序号:18475330发布日期:2019-08-20 20:57阅读:128来源:国知局
流数据处理方法、装置及设备与流程
本申请涉及流处理
技术领域
,更具体地说是涉及一种流数据处理方法、装置及设备。
背景技术
:流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合,包括有多种数据,如客户使用移动或web应用程序生成的日志文件、网购数据、游戏内玩家活动、社交网站信息、金融交易大厅或地理空间服务,以及来自数据中心内所连接设备或仪器的遥测数据等等。目前,在网络监控、传感器网络、航空航天、气象测控和金融服务等很多应用领域,通常是通过对滚动时间窗口内的数据,或仅对最近的数据记录进行聚合、筛选或取样等处理,实现卫星云图监测、股市走向分析、网络攻击判断,还能够帮助企业实时跟踪公众对其品牌和产品的看法的变化,以便在必要时及时做出反应。基于此,现有的流数据处理方法通常是对接收到的流数据进行逐条分析处理后,发送至数据库存储,之后,用户再通过查询数据库,获得所需的统计结果,如分析某类流数据变化趋势等。然而,这种方式需要等待规定时间段的流数据都保存至数据库,才能查询数据得到所需统计结果,具有很长的滞后时间,无法满足目前很多业务实时掌握流数据的变化趋势的要求。技术实现要素:鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的流数据处理方法、装置及设备。本申请实施例提供了一种流数据处理方法,所述方法包括:检测到针对流数据源产生的流数据的查询指令;对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,所述第一时间段是从检测到所述查询指令时刻开始的预设时长;获得查询条件,并按照所述查询条件对所述数据记录进行查询;输出得到的查询结果。优选的,所述方法还包括:清除所述第一时间段内生成的数据记录。优选的,所述对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,包括:按照预设表结构信息,对从检测到所述查询指令时刻开始接收到的流数据进行拆分;将拆分得到的每一项数据内容记录到所述预设表结构信息对应的字段下,生成相应时刻接收到的流数据对应的数据记录,直至计时结果达到第一时间段。优选的,所述按照所述查询条件对所述数据记录进行查询,包括:筛选所述数据记录中满足所述查询条件的目标数据记录,所述目标数据记录包含目标数据;统计所述目标数据记录的数量,和/或,获得所述目标数据记录中目标数据的变化趋势。优选的,所述对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录包括:按照第一时间段内接收到的所述流数据中的分隔符,对所述流数据进行拆分;利用一个流数据拆分得到的各数据,生成对应的一条数据记录。优选的,所述输出查询结果包括:将得到的查询结果发送至外部存储设备保存;对下一个所述第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,直至所述外部存储设备得到第一数量查询结果。本申请实施例还提供了一种流数据处理装置,所述装置包括:检测模块,用于检测到针对流数据源发送的流数据的查询指令;拆分模块,用于对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,所述第一时间段是从检测到所述查询指令时刻开始的预设时长;查询模块,用于获得查询条件,并按照所述查询条件对所述数据记录进行查询;输出模块,用于输出得到的查询结果。本申请实施例还提供了一种流数据处理装置数据处理设备,所述设备包括:通信接口,用于获得流数据源产生的流数据;存储器,用于保存实现上所述的流数据处理方法的程序;处理器,用于加载并执行所述存储器保存的程序,包括:检测到针对流数据源产生的流数据的查询指令;对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,所述第一时间段是从检测到所述查询指令时刻开始的预设时长;获得查询条件,并按照所述查询条件对所述数据记录进行查询;输出得到的查询结果。本申请实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的流数据处理方法。本申请实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的流数据处理方法。借由上述技术方案,本申请提供的流数据处理方法、装置、设备、存储介质及处理器,检测到针对流数据源产生的流数据的查询指令时,开始对第一时间段内接收到的流数据进行拆开,生成与该流数据对应的数据记录,第一时间段到达时,将得到与接收到的多条流数据一一对应的数据记录,此时,通过查询得到的多条数据记录,即可直接得到所需查询结果,尤其是能够实时获得流数据的变化趋势,无需长时间等待,大大提高了数据查询效率,满足了满足目前很多业务实时掌握流数据的变化趋势的要求。上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本申请实施例提供的一种流数据处理方法的流程图;图2示出了本申请实施例提供的另一种流数据处理方法的流程图;图3示出了本申请实施例提供的一种流数据变化趋势示意图;图4示出了本申请实施例提供的一种流数据处理装置的结构图;图5示出了本申请实施例提供的另一种流数据处理装置的结构图;图6示出了本申请实施例提供的又一种流数据处理装置的结构图;图7示出了本申请实施例提供的又一种流数据处理装置的结构图;图8示出了本申请实施例提供的一种流数据处理设备的硬件结构图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。目前,通常是对某数据源产生的连续流进行分析,确定流数据变化情况,或者统计包含的某些内容的数据量等,以便据此做出相应的战略调整;现有流数据处理方法中,通常是在获得一条流数据后,就对该流数据就进行处理,如转换成预设格式的流数据后,再发送至外部存储设备如数据库保存。此时,用户才能输入查询条件对数据库进行查询,得到所需统计结果,滞后时间较长,降低了查询效率。例如:现有的这种流数据处理方法中,要想知道最近10分钟内的某类数据的变化趋势,需要等到10分钟内的流数据全部处理完毕并放入数据库后,用户才能通过查询数据库,查找出这类数据,再统计出10分钟内的该类数据的变化趋势,具有很大滞后性。为了改善上述问题,本申请提出在对得到的流数据进行分析处理时,将规定时间内得到的每一条流数据拆分开,生成对应的多条数据记录,之后,通过对生成的多条数据记录进行查询,直接得到所需的统计结果,不需要再对查询到的数据进行统计分析,大大提高了查询效率,满足了某些业务对实时查看某数据的变化趋势的要求。如图1所示,为本申请实施例提供的一种流数据处理方法的流程图,该方法可以包括:步骤s101,检测到针对流数据源产生的流数据的查询指令;在本实施例实际应用中,当需要对某流数据源产生的流数据进行分析,如需要实时跟踪股市波动,计算风险价值,为了得到相应的股票数据源输出的股票类型、股票价格、所属企业等内容构成的流数据,可以向流数据处理装置发送针对股票数据源产生的流数据的查询指令,以便与该股票数据源建立通信连接,使得股票数据源产生的流数据能够发送至本系统。当需要统计游戏内玩家活动,为了得到关于玩家与游戏间互动的流数据,用户可以向该系统输入针对这类流数据的查询指令。由此可见,为了使流数据处理装置能够准确接收到所需分析的流数据,本申请实施例可以向该系统输入相应的查询指令,该查询指令可以包括待分析的流数据所属流数据源的标识,和/或待分析的流数据的属性信息,以便据此确定其所属流数据源,以及查询条件等,本申请实施例对该查询指令包含的内容,以及流数据源的标识指代内容均不做限定。可选的,对于上述流数据源可以是实时监控数据的应用平台或检测设备,或者是特定类型的通信接口,或某功能的网络插件等等,本申请对流数据源的类型及其结构不做限定,可以根据实际需要统计分析的流数据的产生场景确定。步骤s102,对第一时间段内接收到的流数据进行拆分,生成对应的数据记录;其中,第一时间段可以是从检测到查询指令时刻开始的预设时长,具体可以是1分钟、10分钟、1小时、1天或一个月等等,具体可以根据实际查询需求确定,比如,若需要统计1分钟内的不同用户数,第一时间段可以为1分钟;若需要统计1天内用户对各歌曲的点击量,第一时间段可以是1天。可见,本申请实施例对第一时间段的数值不做限定。可选的,本申请实施例可以参照预设表结构,实现对接收到的当前流数据的拆分,从而使生成的该流数据的数据记录的每一项记录对应预设表结构的一个字段。当然,本申请实施例也可以根据接收到的当前流数据中的分隔符,对该流数据进行拆分,生成对应的数据记录。本申请对接收到每一条流数据的拆分方法不做限定。可选的,当需要统计某类数据的数量时,本申请实施例在对接收到的流数据进行拆分,生成相应数据记录时,可以在数据记录中设置数据标识,用来区分不同数据类型,该数据标识可以是序号或其他代码,本申请对其指代的内容不作限定。比如,当需要统计1分种内的不同用户数,可以将流数据拆分成序号、姓名、年龄等组成的数据记录,对于姓名和年龄等数据内容相同的序号可以采用同一个,这样,本实施例可以直接通过查询最大序号,得知1分钟内的不同用户数。当然,也可以通过查询其他能够区分不同用户的数据内容,得知1分钟内的不同用户数,此时可以不增加区分不同用户的序号。所以说,本申请实施例对统计某类数据的数量这类查询指令下,生成数据记录的方法不做限定。作为本申请另一实施例,当需要统计某类数据变化趋势,可以在生成数据记录的同时,基于得到的数据记录中这类数据,生成相应的柱状图或曲线图,来表示这类数据的变化情况,但并不局限于此。步骤s103,获得查询条件,并按照该查询条件对生成的数据记录进行查询;在本申请实施例中,查询条件可以根据针对流数据源产生的流数据的查询要求确定,如对某类流数据或流数据中的某些内容的数量统计,变化趋势分析等等,本申请实施例对查询条件包含的内容不作限定,针对不同流数据源的不同目的,用户确定的查询条件可以不同。例如,当需要统计1分钟内的不同用户数,查询条件可以包括用于区别不同用户的标识,从而通过统计1查询到的不同标识数量,得知不同用户数;当需要统计某网站中一周内各用户对某歌曲的点击数的变化情况,查询条件可以包括某歌曲的标识以及点击数,从而按照时间变化,统计查询到的该歌曲的点击数的变化趋势等等,本申请实施例对查询条件不再一一列举。结合上述描述,由于本申请实施例是将一条流数据按照其包含的不用内容进行拆分,形成对应的一条数据记录,而同一流数据源产生的各流数据包含的内容类型是类似,所以说,本实施例生成的多条数据记录中可能包含相同的多个数据类型,若数据记录采用表格方式记录,一条数据记录可以是该表格中的同一行不同类型的数据。需要说明的是,本申请对数据记录的表示形式不做限定,并不局限于表格形式。基于此,按照查询条件对数据记录进行查询时,可以根据查询条件确定查询的数据类型,再获取所有数据记录中该数据类型对应的数据,如表格中某一列数据等等。可选的,当本申请实施例采用预设表结构实现对流数据的拆分,由不同字段对应的数据生成对应的数据记录,步骤s103可以利用用户输入的sql(structuredquerylanguage,结构化查询语言)指令,对生成的数据记录进行查询,可见,此时查询条件可以基于用户输入的sql指令获得。其中,sql是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据系统。其允许用户在高层数据结构上工作,不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,通常包括数据查询语言、数据操作语言、事务处理语言、数据控制语言、数据定义语言以及指针控制语言等六部分组成语言结构,本申请实施例对如何生成sql指令及其对数据记录的查询方法不作限定。步骤s104,输出得到的查询结果。对于本申请实施例得到的查询结果,可以是对生成的多条数据记录查询的直接结果,如符合查询条件的目标数据及其所在的目标数据记录等,也可以是通过对查询得到的直接结果,按照查询条件做进一步处理的结果,如对查询得到的目标数据变化分析,得到的变化趋势;对查询得到的目标数据或其所在的目标数据记录的总数量的统计,得到的统计结果等等,本申请实施例对查询结果包含的内容不作限定。可选的,本申请实施例可以将得到的查询结果,通过显示器直接显示或播报等方式输出,以使用户直观得知本次查询结果;也可以将查询结果发送至外部存储设备保存,以便后续查阅,或通过外部存储设备输出查询结果等等。作为本申请另一实施例,在得到本次查询的查询结果后,本申请实施例还可以对下一个第一时间段内接收到的流数据进行拆分,生成对应的数据记录,直至得到第一数量查询结果,从而通过比较各第一时间段内得到的查询结果,得知各第一时间段内查询对象的变化情况。可选的,完成本次查询后,为了减少对内存空间占用,影响后续查询性能,本申请实施例还可以清除第一时间段内生成的数据记录,之后,用户可以根据查询需要的改变,对接下来的第二时间段内接收到的流数据继续进行拆分,从而按照新的查询条件对新生成的数据记录进行查询,以满足新的查询需求。当然,若当前内存容量未达到预设阈值,也可以先不对第一时间断内生成的数据记录进行清除,直接对按照上述方法对接来下第二时间段内接收到的流数据继续拆分。其中,第二时间段可以与第一时间段相同,也可以不同。另外,完成本次查询后,本申请实施例还可以根据获得的不同查询条件,对第一时间段内生成的数据记录继续查询,得到相应的查询结果。由此可见,本申请针对同一时间段接收到的流数据,需要获得不同查询结果时,可以在获得由该时间段内的流数据生成的数据记录后,用户通过输入不同查询条件对其进行查询,得到所需查询结果;也可以完成一次查询后,再继续对下一个该时间段内的流数据进行查询,来得到其他查询结果;而且,对于流数据源连续不断产生的流数据,用户在任意时间具有查询需求,都可以按照上述实施例描述的方式,对流数据源接来下规定时间段内产生的流数据进行拆分处理,生成对应的数据记录,待规定时间段到达后,直接通过对生成的数据记录进行查询,得到所需查询结果。综上,本申请实施例中,在确定需要查询的流数据源产生的流数据后,即检测到针对流数据源产生的流数据的查询指令,系统将开始接收产生的流数据,同时对接收到的每一个流数据进行拆分处理,并生成对应的数据记录,由该数据记录表示该流数据包含的不同类型的数据内容。可见,本申请实施例在对接收到的每一条流数据进行分析的同时,生成了对应的数据记录,待完成对所需流数据的接收到,系统将同时得到各流数据对应的数据记录,此时,按照获得的任意查询条件对得到的数据记录进行查询,即可直接得到所需查询结果,尤其是对流数据中某类数据内容的变化情况,实现了实时监测,解决了现有的流数据处理方法中,需要再次查询存储流数据的数据库,才能得知所需查询结果,导致无法实时查看某类数据变化趋势的技术问题,且大大提高了数据查询效率。如图2所示,为本申请实施例提供的另一种流数据处理方法的流程图,该方法可以包括:步骤s201,检测到针对流数据源产生的流数据的查询指令;在本申请实施例中,当用户启动电子设备中的流数据处理装置后,用户可以通过输入相应指令,或者是通过对系统界面上进行选择操作等方式,生成针对流数据源产生的流数据的查询指令,从而使系统通过检测该查询指令,得知后续对什么流数据进行处理。基于此,本申请实施例确定对哪个流数据源产生的流数据进行处理后,可以主动与该流数据源建立通信连接,接收该流数据源产生的流数据。可选的,本申请还可以由流数据源直接将其产生的流数据,直接发送至流数据处理装置进行处理,此时,本申请可以直接执行步骤s202。可见,本申请对系统如何获得流数据的方法不作限定。步骤s202,从当前时刻开始计时,并按照预设表结构信息,对接收到的每一条流数据进行拆分;在实际应用中,对流数据查询时,通常是通过对规定时间段内接收到的流数据进行分析,得到所需的查询结果,因此,本申请实施例可以在系统开始接收流数据时,通过计时器等具有计时功能的设备开始计时,以便通过计时时间,判断接收流数据的时间是否达到规定时间段。可选的,本申请实施例也可以通过对规定数量的流数据进行分析,得到所述的查询结果,此时,在开始接收流数据时,可以对接收到的流数据进行计数,一旦确定接收到的流数据的数量达到规定数量,可以暂停对流数据的接收,但这并不影响流数据的产生,即此时流数据源仍然会连续不断的产生流数据。其中,关于对接收到的流数据数量的统计方法,与本实施例提供的对接收流数据的时间的统计方法类似,本申请在此不再详述。表结构是定义一个表的字段、类型、注释或索引等属性组成的数据库的表结构,其中,字段可以包括id、name、sex、email、card等,类型可以包括intvarchar、char、text、bit、unsigned等等。可选的,在本申请实施例中,可以根据流数据源及其产生的流数据的类型,定义预设表结构信息,之后,按照预设表结构信息包含的各字段,对接收到的流数据进行拆分,以使得拆分后的每一项数据对应该预设表结构中的一个字段。比如,流数据源产生的是id&name&age&school形式的流数据,如1&张三&23&北京xx学校,2&李四&26&上海xx大学,id可以是用户唯一标识,以便通过id来区分不同用户,此时,可以预先定义表结构信息为:表名为user,拥有四个字段id、name、age以及school。需要说明的是,本实施例也可以通过其他字段作为用户的唯一标识,实现对不同用户的区分,并不局限于id。基于此,当接收到上述形式的流数据后,可以按照预设表结构信息中的各字段id、name、age以及school,对流数据进行拆分,从而使每一条流数据拆分得到各字段对应的数据内容。步骤s203,将拆分得到的每一项数据记录到该预设表结构信息对应的字段下,生成与当前时刻接收到的流数据对应的数据记录;步骤s204,将该数据记录发送至内存,以构建相应的数据表;可选的,结合下表1,本实施例在此仅以预设表结构信息包含的字段名称为例进行说明,对于该预设表结构信息中的其他内容,也可以按照这种方式拆分,并填写到相应的内容下,且本申请对接收到的流数据的数据类型不做限定。对于接收到的每一条流数据,按照预设表结构信息包含的各种内容进行拆分后,可以将拆分出的每一项数据内容填写到对应的字段下,从而形成对应的一条数据记录,如表1这种每一行的数据记录。序号\字段名idnameageschool11张三23北京xx学校22李四26上海xx大学32李四26上海xx大学43王二25深圳xx大学表1可选的,本申请可以直接将得到的数据表实时呈现出来,以供用户掌握流数据的处理进度。当然,本申请也可以采用进度条等其他方式,告知用户对流数据的处理进度,本申请对此不做限定。另外,需要说明的是,对于构成的数据表,并不局限于上表1所示的格式以及内容,针对不同流数据源产生的不同流数据,据此定义出的预设表结构信息可能不同,因此,系统对接收到得到流数据的拆分结果不同,生成的数据记录包含的数据类型不同,进而生成的数据表也会有所区别。例如,当需要对各网站中用户在一月内每天对歌曲a的点击数的变化进行监测,可以接收到的流数据可以是各网站产生的用户对歌曲a的点击数,此时,预设表结构信息包括的字段可以包括网站名、用户id、点击数、用户名、该网站一天点击数、各网站一天总点击数等。其中,每个网站用户对歌曲a一天的点击数,可以通过对该网站的各用户对歌曲a的点击数的求和得到,同理,各网站中对歌曲a一天的总点击数可以对每个网站一天点击数求和得到,该求和过程可以在生成数据表的同时进行,以使的生成的数据表中包含这类内容,这样,后续就可以直接查询得到所需结果。其中,关于对各网站产生的用户对歌曲a的点击数这一内容的流数据的处理,生成对应数据表的过程本实施例在此不再赘述。在本申请实施例中,每生成一条数据记录,就可以发送至内存,并与上次生成的数据记录对应保存,直至得到最后一条数据记录,也就直接构成了如表1所示的数据表;当然,本申请也可以在得到所有数据记录后,再构建数据表,将该数据表发送至内存,本申请对数据表的构建方式不作限定。作为本申请另一实施例,关于上述生成的数据记录也可以是一条代码信息,此时,也可以在内存得到的所有流数据一一对应的数据记录后,构建相应的数据表。所以说,本申请实施例对生成的的数据记录的表现形式不做限定,可以是单行表形式,或代码形式等。步骤s205,确定计时结果达到第一时间段,利用获得的sql指令,对内存中数据表进行查询;如上述描述,本申请实施例接收到所需要处理的所有流数据后,同时也按照上述方法,将这些流数据处理成相应的数据记录,并构建成数据表,此时可以直接执行用户输入的sql指令(如sql语句),对内存的中数据表包含的多条数据记录进行查询,即可得到所需的查询结果,并不需要再进行统计分析,避免了查询结果长时间滞后,降低查询效率。需要说明的是,本申请对用户输入的sql指令的内容不作限定,可以与上述预先定义的表结构信息确定。步骤s206,将得到的查询结果发送至外部存储设备保存;可选的,在系统得到本次查询结果后,可以直接发送至电子设备的显示器进行显示,与此同时,也可以将查询结果发送至系统外的外部存储设备保存,如电子设备中的硬盘,或与电子设备拦截的外接存储设备等进行保存,以便今后查阅。步骤s207,清除内存中的数据表。由于本申请实施例是将生成的数据记录或数据表发送至内存保存,所以,为了减少流数据对存储空间的占用,可以定期对内存进行清理。比如,经预设时间后,对内存中的数据表清理一次;或者检测到内存的当前容量达到预设阈值,清除内存中的数据表;或者完成一次查询后,就将本次查询过程中保存到内存中的数据表删除,从而为后续产生的数据记录留出足够的内存空间。可见,本申请实施例大大减少了数据的存储量,避免了占用内存空间过多,而影响数据查询性能。其中,系统对内存中的数据表的清除,实际上是对内存保存的数据记录的清除。可选的,在此之后,可以按照上述方法进行下一轮查询,具体可以输入新的sql指令,对内存中的数据表进行查询,得到新的查询结果;当然,也可以按照上述方法,对接下来接收到的流数据进行处理,之后,再对新生成的多个数据记录进行sql查询,得到所需的查询结果。在实际应用中,当用户需要查询流数据的某类数据内容,即拆分后的某字段下的数据的变化趋势,可以查询数据表中该字段下的数据,由于数据表中的各数据记录是按照生成的数据记录的先后顺序构建,所以,查询到的该字段下的数据随查询顺序的变化,即为该数据随着产生时间的变化,即所需的该类数据的变化趋势。可见,本申请实施例能够实时获得流数据的变化趋势,解决了现有技术中,需要重新查询数据库中规定时间段内产生的数据后,再对这些数据的变化进行分析,才能得到所需流数据变化趋势,导致其具有长时间的滞后性,无法满足某些业务对实时获得流数据变化趋势的要求的技术问题。可选的,对于本申请实施例得到的某数据的变化趋势这一查询结果,可以是通过查询数据表中对应字段下的多个数据,此时由这多个数据数值变化体现其变化趋势;也可以是利用查询到的多个数据生成的曲线图或柱状图等,以使用户直接观看这些图得知数据变化情况。如图3所示的用曲线表示一周内用户对不同歌曲的点击量的变化情况,但并不局限于此。本申请对数据的变化趋势的表示形式不作限定。如图4所示,为本申请实施例提供的一种流数据处理装置的结构图,该装置可以包括:检测模块41,用于检测到针对数据源发送的流数据的查询指令;拆分模块42,用于对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录;其中,第一时间段可以是从检测到所述查询指令时刻开始的预设时长,本申请实施例对该预设时长的具体数值不做限定。可选的,如图5所示,该拆分模块42可以包括:第一拆分单元421,用于从检测到所述查询指令时刻开始计时,并按照预设表结构信息,对接收到的流数据进行拆分;第一生成单元422,用于将拆分得到的每一项数据内容记录到所述预设表结构信息对应的字段下,生成相应时刻接收到的流数据对应的数据记录,直至计时结果达到第一时间段。其中,第一时间段可以根据用户查询要求确定,对于不同查询要求,对应的第一时间段可以不同,本申请实施例对该第一时间段的具体数值不做限定。作为本申请另一实施例,由于发送至本装置的流数据可能通过分隔符进行不同类型隔离,如id&姓名&年龄,分隔符“&”实现了id、姓名和年两之间的分割,这种情况下,上述拆分模块42可以包括:第二拆分单元,用于按照第一时间段内接收到的所述流数据中的分隔符,对所述流数据进行拆分;第二生成单元,用于利用一个流数据拆分得到的各数据,生成对应的一条数据记录。由此可见,本申请在每接收到一条流数据,就会对其进行拆分,生成对应的数据记录,即将每一条流数据转换为对应的数据记录,该数据记录的每一个记录内容对应流数据拆分后的一项数据内容。其中,本实施例生成的数据记录可以是表记录,也可以是代码记录,本申请对数据记录的表现形式不作限定。查询模块43,用于获得查询条件,并按照所述查询条件对所述数据记录进行查询;可选的,在本申请实施例中,如图6所示,该查询模块43可以包括:筛选单元431,用于筛选所述数据记录中满足所述查询条件的目标数据记录,该目标数据记录包含目标数据;其中,目标数据可以是满足查询条件的数据,如查询条件为不同用户的考勤情况,那么,目标数据可以包括用户的考勤次数;查询条件为某网站不同歌曲的点击量变化情况,那么,目标数据可以包括不同歌曲的点击量,或者同一歌曲的多天点击量。可见,在不同查询条件下,筛选得到的目标数据,或是说是目标数据所在的目标数据记录是不同的,本申请实施例在此不再一一详述。统计单元432,用于统计该目标数据记录的数量;获得单元433,用于获得所述目标数据记录中目标数据的变化趋势。可选的,在本申请实施例实际应用中,若查询条件是统计规定时间内得到的目标数据的总量,或者是规定时间内,不同标识对应的目标数据的数量等,即查询条件是基于数量查询确定的条件,那么,可以直接筛选符合查询条件的目标数据记录或者其包含的目标数据,并统计其数量。其中,若上述目标数据只是某一类数据,在生成数据记录时,对于这一类数据的不同数据可以设置对应的不同标识,对于同一数据可以设置相同的标识,那么,本申请可以通过统计或查看(标识为编号的情况)该类数据具有的不同标识数量即可。另外,关于目标数据的变化趋势的获得过程可以参照上述方法实施例相应部分的描述,本实施例在此不再赘述。输出模块44,用于输出得到的查询结果。可选的,在本申请实施例中,输出模块44具体可以将得到的查询结果发送至外部存储设备保存;当然,若该输出模块44具有显示或播报等功能,也可以通过显示或播报等方式,直接输出得到的查询结果,本申请对此不做限定。在上述各实施例的基础上,完成一次查询后,还可以触发拆分模块继续对下一个第一时间段内接收到的流数据进行拆分,生成对应的数据记录,直至得到第一数量查询结果。当然,也可以对接下来的第二时间段内接收到流数据进行拆分,具体可以根据实际查询要求确定;另外,本申请实施例也可以针对已有的数据记录,获得新的查询条件对数据记录进行查询,得到新的查询结果。综上,本申请实施例中,在接收到流数据源发送的每条流数据的同时,对该流数据进行拆分,从而将其转换成由各类型内容构成的数据记录,完成规定时间内的流数据接收时,也就得到的这些流数据一一对应的数据记录,所以,此时直接对多个数据记录中对应类型的数据查询,就能够直接得到需要的查询结果,无滞后时间,大大提高了数据查询效率。可选的,在上述实施例的基础上,如图7所示,该装置还可以包括:清除模块45,用于清除第一时间段内生成的数据记录。在本申请实施例中,由于装置会将生成的数据记录发送至内存中,所以,为了降低装置的储存量,可以定期或实时清理每次查询内存存储的数据记录,或者是由多个数据记录生成的数据表,以便有足够的空间保存后续对流数据处理生成的数据记录。上面主要是从装置的虚拟功能描述其功能组成,从硬件结构来看,该流数据处理装置可以包括处理器和存储器,上述检测模块、拆分模块、查询模块、输出模块以及清楚模块等等均可以作为程序模块存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。处理器中包含内核,由内核去存储器中调取相应的程序模块。内核可以设置一个或以上,通过调整内核参数实现对接收到的每一个流数据的拆分处理,以生成对应的数据记录,规定时间到达时,通过查询数据记录,即可直接得到查询结果,如某类数据的数量或变化趋势等,无需长时间等等,大大提高了数据查询效率。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。本申请实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时,控制该存储介质所在设备执行上述流数据处理方法。本申请实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述流数据处理方法。如图8所示,本申请实施例还提供了一种流数据处理设备的硬件结构图,该设备可以包括:通信接口81、存储器82以及处理器83。通信接口81可以是wifi模块、gsm模块或gprs模块等无线通信模块的接口,也可以是有线通信模块的接口,如usb口等,本申请对通信接口的类型及其结构不作限定,可以根据设备与流数据源之间的通信方式确定。存储器82,用于存储上述流数据处理方法的程序;处理器83,用于加载并执行存储器82存储的程序,包括:检测到针对流数据源产生的流数据的查询指令;对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录所述第一时间段是从检测到所述查询指令时刻开始的预设时长;获得查询条件,并按照所述查询条件对所述数据记录进行查询;输出得到的查询结果。可选的,处理器执行程序还可以实现以下步骤:清除所述第一时间段内生成的数据记录。作为本申请另一实施例,处理器执行程序具体实现步骤包括:从检测到所述查询指令时刻开始计时,并按照预设表结构信息,对接收到的流数据进行拆分;将拆分得到的每一项数据内容记录到所述预设表结构信息对应的字段下,生成相应时刻接收到的流数据对应的数据记录,直至计时结果达到第一时间段;筛选所述数据记录中满足所述查询条件的目标数据记录,所述目标数据记录包含目标数据;统计所述目标数据记录的数量,和/或,获得所述目标数据记录中目标数据的变化趋势。可选的,处理器运行程序还可以实现步骤包括:按照第一时间段内接收到的所述流数据中的分隔符,对所述流数据进行拆分;利用一个流数据拆分得到的各数据,生成对应的一条数据记录。以及,将得到的查询结果发送至外部存储设备保存;对下一个所述第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,直至所述外部存储设备得到第一数量查询结果。在本申请实际应用中,本申请实施例提供的流数据处理设备可以是服务器、pc、pad、手机等。本申请还提供了一种计算机程序产品,当在流数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:检测到针对流数据源产生的流数据的查询指令;对第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,所述第一时间段是从检测到所述查询指令时刻开始的预设时长;获得查询条件,并按照所述查询条件对所述数据记录进行查询;输出得到的查询结果。可选的,流数据处理设备上还可以执行如下方法的程序:清除所述第一时间段内生成的数据记录。可选的,流数据处理设备上执行上述方法的可选程序:从检测到所述查询指令时刻开始计时,并按照预设表结构信息,对从当前时刻开始接收到的流数据进行拆分;将拆分得到的每一项数据内容记录到所述预设表结构信息对应的字段下,生成相应时刻接收到的流数据对应的数据记录,直至计时结果达到第一时间段;筛选所述数据记录中满足所述查询条件的目标数据记录,所述目标数据记录包含目标数据;统计所述目标数据记录的数量,和/或,获得所述目标数据记录中目标数据的变化趋势;将得到的查询结果发送至外部存储设备保存;对下一个所述第一时间段内接收到的所述流数据进行拆分,生成对应的数据记录,直至所述外部存储设备得到第一数量查询结果。可选的,流数据处理设备上执行上述方法的可选程序:按照第一时间段内接收到的所述流数据中的分隔符,对所述流数据进行拆分;利用一个流数据拆分得到的各数据,生成对应的一条数据记录。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1