CN110727697A - 数据的处理方法和装置、存储介质、电子装置 - Google Patents
数据的处理方法和装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN110727697A CN110727697A CN201910810718.XA CN201910810718A CN110727697A CN 110727697 A CN110727697 A CN 110727697A CN 201910810718 A CN201910810718 A CN 201910810718A CN 110727697 A CN110727697 A CN 110727697A
- Authority
- CN
- China
- Prior art keywords
- target
- engine
- data stream
- computing engine
- data packet
- 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/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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据的处理方法和装置、存储介质、电子装置。其中,该方法包括:通过目标平台的第一接口接收配置信息,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据;查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的;将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,第二数据包的接收时间晚于第一数据包的接收时间。本申请解决了使用多个计算引擎进行数据处理的方式较为复杂的技术问题。
Description
技术领域
本申请涉及互联网领域,具体而言,涉及一种数据的处理方法和装置、存储介质、电子装置。
背景技术
随着科学技术的发展,对数据的处理显得越来越重要,由于在数据处理时需要对规模不同的数据量进行处理,结构化与非结构化处理混杂,实时与离线处理相结合等情况,使用单一引擎己经无法应对各类数据的处理需求。针对此问题,目前的解决思路是:通过人工管理多种引擎,将计算引擎分开部署,并采用人工方式管理计算引擎、执行计算任务,此方式需要大量人力,效率低下,同时若系统不保持全负载,就会造成巨大的资源浪费。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据的处理方法和装置、存储介质、电子装置,以至少解决使用多个计算引擎进行数据处理的方式较为复杂的技术问题。
根据本申请实施例的一个方面,提供了一种数据的处理方法,包括:通过目标平台的第一接口接收配置信息,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据,目标平台用于管理计算引擎集合中的引擎;查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的;将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,第二数据包的接收时间晚于第一数据包的接收时间。
根据本申请实施例的另一方面,还提供了一种数据的处理装置,包括:接收单元,用于通过目标平台的第一接口接收配置信息,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据,目标平台用于管理计算引擎集合中的引擎;查找单元,用于查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的;处理单元,用于将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,第二数据包的接收时间晚于第一数据包的接收时间。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本申请实施例中,可将多套计算引擎(如多套实时计算引擎)的接口API(如计算引擎1的原生API接口和计算引擎2的原生API接口)封装统一,形成一套唯一的实时计算开发接口,整套装置打包成目标平台SDK的形式发布出来,在开发业务逻辑时,调用SDK中的各种实时计算的处理方法(过滤、分组、聚合、统计等),将程序运行在不同的计算引擎上,而不需要人工根据所需进行引擎切换,可以解决使用多个计算引擎进行数据处理的方式较为复杂的技术问题,进而达到引擎的自动切换的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据的处理方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的代码工具包的示意图;
图3是根据本申请实施例的一种可选的数据的处理方法的流程图;
图4是根据本申请实施例的一种可选的代码工具包的示意图;
图5是根据本申请实施例的一种可选的数据的处理方案的示意图;
图6是根据本申请实施例的一种可选的数据的处理装置的示意图;
以及
图7是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在大数据领域实时计算领域,为了保证数据计算的实时性和准确性,通常采用实时计算引擎对数据进行处理,目前可用的实时计算引擎类型较多,不同的实时计算引擎具有各自的特点,以下面两类为典型代表:
流式计算引擎(代表如Apache Storm,Apache Flink)真实的流式计算引擎,其计算处理逻辑是,对到来的消息流,逐条进行处理,这种类型的计算引擎的特点是处理小数据量时速度高、处理延迟低,处理大数据量时延迟会显著增加,对机器资源的消耗会显著增大;伪流式计算引擎(代表如Apche Spark Streaming);伪实时计算引擎,其计算逻辑是,对于到来的消息流,按照一定的时间窗口进行分批,然后用批处理引擎去一批一批的连续处理,这种类型的计算引擎特点是处理大数据量时候的资源消耗小,但是由于时间窗口的存在,计算的延迟会比较高。
在具体的实时计算业务中,同一个业务在不同场景不同阶段,需求两种不同类型的计算引擎,例如,业务刚启动时,数据规模小,可以用流式计算引擎,当数据规模不断扩大,但机器资源跟不上,就要切换到伪流式计算引擎;另一种场景是,某业务原先使用伪流式计算引擎,计算的延迟较大,随着产品的迭代优化,需要进一步提高实时计算速度,就需要切换到真流式计算引擎上。在这些业务场景中,若采用人工切换的方式实现,操作较为复杂。
为了解决该问题,根据本申请实施例的一方面,提供了一种解决上述缺陷的方案。
可选地,在本实施例中,上述数据的处理方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如大数据的实时计算服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。本申请实施例的数据的处理方法可以由服务器103来执行。
在实际业务开发中,不同的计算引擎(以两套为例),其代码接口差距很大,故将一个业务逻辑从一个计算引擎切换到另一个计算引擎非常艰难,有很大的开发工作量,几乎相当于是将业务逻辑重新开发。为了解决该问题,本申请提出了一种用于实时计算开发的代码工具包SDK(Software Development Kit),如图2所示,可使用此工具包中的接口进行开发,业务的代码可以自由的在多套实时计算引擎之间切换执行,相当于服务器103执行本申请实施例的数据的处理方法也可以是继承在其上的软件开发工具包来执行。
图3是根据本申请实施例的一种可选的数据的处理方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S302,通过目标平台的第一接口接收配置信息,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据,目标平台用于管理计算引擎集合中的引擎。
上述目标平台相当于前述SDK;第一接口和第二接口为SDK上与数据流发送侧的终端进行交互的接口,第一接口和第二接口可以为两个独立的接口,也可是同一个接口;配置信息可用于配置对目标数据流的处理方式,如配置是否需要实时处理、处理的时延、过滤、分组、聚合、统计等。
步骤S304,查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的。
上述目标数据流的属性可以为目标数据流的单位时间收到的数据包数量bps、目标数据流的时延要求、目标数据流的处理方式、数据包大小等。
步骤S306,将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,第二数据包的接收时间晚于第一数据包的接收时间。考虑到数据的属性具有一定的延续性,故可以利用前一段时间的第一数据包来确定之后的第二数据包的属性。
在本申请的技术方案中,可将多套计算引擎(如多套实时计算引擎)的接口API(如计算引擎1的原生API接口和计算引擎2的原生API接口)封装统一,形成一套唯一的实时计算开发接口,整套装置打包成目标平台SDK的形式发布出来,在开发业务逻辑时,调用SDK中的各种实时计算的处理方法(过滤、分组、聚合、统计等),将程序运行在不同的计算引擎上,而不需要人工根据所需进行引擎切换,可以解决使用多个计算引擎进行数据处理的方式较为复杂的技术问题,进而达到引擎的自动切换的技术效果。下面结合图3和图4进一步详述本申请的技术方案:
在步骤S302提供的技术方案中,通过目标平台的第一接口接收配置信息,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据,目标平台用于管理计算引擎集合中的引擎。
该步骤相当于用户代码解析模块,负责解析用户撰写的代码逻辑,进而确定用户的需求,如处理方式、待处理的数据等。
在步骤S304提供的技术方案中,查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的。
该步骤相当于引擎适配模块,可按照当前任务选择合适的计算引擎,并将用户代码翻译成改引擎的实际执行代码。
可选地,步骤S304的查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎可以通过如下步骤S3042-步骤S3044实现:
步骤S3042,根据已接收到的第一数据包确定目标数据流的属性。此处的属性可以是多种类型的属性,既可以是数据中携带的、也可以是通过对数据分析得来的。
例如,业务刚启动时,数据规模小,可以用流式计算引擎,当数据规模不断扩大,但机器资源跟不上,就要切换到伪流式计算引擎,根据已接收到的第一数据包确定目标数据流的属性时,利用已接收到的第一数据包的数量(在一段时间内的接收数量)和接收时间(该一段时间的持续时长)确定目标数据流的数据包接收频率(即数量和持续时长之间的比值)。
再如,某业务原先使用伪流式计算引擎,计算的延迟较大,随着产品的迭代优化,需要进一步提高实时计算速度,就需要切换到真流式计算引擎上,此时,根据已接收到的第一数据包确定目标数据流的属性时,可利用数据包中的业务标识(如版本标识)确定匹配的计算引擎。
可选地,对于不同类型的属性(如上述数据流大小、业务版本等),引擎可以自适应切换,如检测到有“版本标识”这一信息,就以该类型的属性为依据进行切换,否则就以数据流大小为依据进行切换;引擎还可以用户配置的属性为准进行切换,如使用引擎进行数据处理之前,设定进行切换的属性类型为“版本标识”、或者“数据流大小”,则按照用户设定的该属性进行切换。
步骤S3044,利用目标数据流的属性从计算引擎集合中查找第一计算引擎,其中,第一计算引擎为计算引擎集合中属性与目标数据流的属性匹配的引擎。
利用目标数据流的属性从计算引擎集合中查找到第一计算引擎包括:利用数据包接收频率从计算引擎集合中查找第一计算引擎,计算引擎集合中不同引擎的属性所匹配的数据包接收频率不同,例如,利用一个阈值区分数据规模的大小,大于该阈值则选择伪流式计算引擎,否则选择流式计算引擎。
可选地,为了避免漏掉待处理的数据,在将目标数据流中的第二数据包转发至第一计算引擎之前,可将第一数据包转发至第三计算引擎,并指示第三计算引擎按照目标处理方式对第一数据包进行处理,第三计算引擎为计算引擎集合中的任意一个引擎。
在步骤S306提供的技术方案中,将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,第二数据包的接收时间晚于第一数据包的接收时间。
可选地,考虑到不同引擎支持的指令格式存在差异,故在指示第一计算引擎按照目标处理方式对第二数据包进行处理时,可将配置信息转换为第一格式的第一指令代码,通过第一指令代码指示第一计算引擎按照目标处理方式对第二数据包进行处理,第一计算引擎支持第一格式的指令代码。
上述第一计算引擎可以是流式引擎,此时,SDK可以将用户代码(即配置信息)转换为流式引擎执行代码,即在流式计算引擎上执行的具体逻辑代码,通过指示引擎执行该代码来完成用户指令;第一计算引擎也可以是伪流式引擎,此时,SDK可以将用户代码转换为伪流式引擎执行代码,即在伪流式计算引擎上执行的具体逻辑代码,通过指示引擎执行该代码来完成用户指令。
可选地,在数据处理过程中,数据量或者业务版本会发生变化,在指示第一计算引擎按照目标处理方式对第二数据包进行处理之后,需要按照实际情况实时更换成匹配的计算引擎进行计算:在目标数据流的属性发生变化的情况下,查找计算引擎集合中与目标数据流的变化后的属性匹配的第二计算引擎,其中,目标数据流的变化后的属性是根据第二数据包确定的;将目标数据流中的第三数据包转发至第二计算引擎,并指示第二计算引擎按照目标处理方式对第三数据包进行处理,其中,第三数据包的接收时间晚于第二数据包的接收时间。
可选地,指示第二计算引擎按照目标处理方式对第三数据包进行处理包括:将配置信息转换为第二格式的第二指令代码,通过第二指令代码指示第二计算引擎按照目标处理方式对第三数据包进行处理,其中,第二计算引擎支持第二格式的指令代码,第二计算引擎支持的第二格式与第一计算引擎支持的第一格式不同。
在实施例中,在目标数据流的属性发生变化的情况下,查找计算引擎集合中与目标数据流的变化后的属性匹配的第二计算引擎包括:可以周期性的计算目标数据流的变化,在目标数据流的属性在一个周期发生变化的情况下,继续监控后续周期是否发生变化,若本次变化之后的连续n个周期(如3个周期)保持属性不再变化,则查找计算引擎集合中与目标数据流的变化后的属性匹配的第二计算引擎进行切换,否则不切换,由于存在网络等外界原因造成数据接收的抖动,为了防止频繁的切换造成系统的不稳定,故可采用该方案予以预防。
需要说明的是,该实施例中选择引擎的过程、指令转换的过程与前述实施例相同,在此不再赘述。
作为一种可选的实施例,下面结合图5进一步详述本申请的技术方案。
在实现该工具包的过程中,可以让用户代码只撰写数据处理逻辑,无需撰写其他内容,尤其是和计算引擎相关的具体方法。下面是用一个实时数据过滤的场景举例,假设用户存在这样一个业务需求:对于输入的实时数据流,统计其中包含“ERROR”字样的消息数量,并把结果写入数据库的指定位置。
如图5所示,两个实时计算引擎的原生API里提供的接口方法本来是不同的,例如实时计算引擎里提供的API是“判断本条消息是否符合要求”,而伪实时计算引擎中提供的API是“查找本批次消息中有多少条符合要求”。对于上层用户代码开发时,只需要指定这个具体的要求(如本例中的包含ERROR),而不用关心自己的计算逻辑是使用哪个具体的计算引擎API去执行。
首先,用户撰写代码逻辑:
(1)数据流A=输入数据流→过滤(ERROR);
表示查找包括“ERROR”的数据。
(2)计数值=数据流A→计数;
表示对数据流A进行计数。
(3)计数值→写入数据库;
表示将计数值写入数据库。
真流式计算引擎的处理流程如下:
步骤S502,接收一条消息。
步骤S504,判断是否包括“error”,若是则执行步骤S506,否则丢弃,继续执行步骤S502。
步骤S506,修改数据库中对应计数值+1。
伪流式计算引擎的处理流程如下:
步骤S508,接收一批消息(如1分钟的消息);
步骤S510,得到这批消息中包括“error”的消息数量为n(n为自然数);
步骤S512,修改数据库中对应计数值+n。
上述方案可以应用于Storm/Flink为代表的真流式计算引擎,和以SparkStreaming为代表的伪流式计算引擎。本发明提出的转换装置可以软件开发工具包SDK的形式提供。用户调用该SDK中的方法进行代码开发。
采用本申请的技术方案。不需要开发人员为多套计算引擎开发多套不同代码(多套代码是相同的数据处理逻辑),通过该方案,开发人员只需要开发一套代码,这套代码可以在不同的实时计算引擎上运行,可以大幅减少实时计算类产品开发过程中,开发人员的代码开发工作量,让一套代码能在多个计算引擎上灵活切换执行,能大幅提升产品的灵活性。
该方案可以大幅提升实时计算产品的灵活性和扩展性,可选的实时计算产品如:1,各类实时监控,当监控数据量由小变大的时候,可以直接将计算任务从流式计算引擎切换到伪流式计算引擎,增加任务吞吐量;2,各类实时推荐产品,当产品需求更高的推荐速度时,可以把任务从伪流式计算引擎切换到流式计算引擎,降低实时计算的延迟。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述数据的处理方法的数据的处理装置。图6是根据本申请实施例的一种可选的数据的处理装置的示意图,如图6所示,该装置可以包括:
接收单元601,用于通过目标平台的第一接口接收配置信息,其中,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据,目标平台用于管理计算引擎集合中的引擎;
查找单元603,用于查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,其中,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的;
处理单元605,用于将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,其中,第二数据包的接收时间晚于第一数据包的接收时间。
需要说明的是,该实施例中的接收单元601可以用于执行本申请实施例中的步骤S302,该实施例中的查找单元603可以用于执行本申请实施例中的步骤S304,该实施例中的处理单元605可以用于执行本申请实施例中的步骤S306。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,查找单元包括:确定模块,用于根据已接收到的第一数据包确定目标数据流的属性;查找模块,用于利用目标数据流的属性从计算引擎集合中查找第一计算引擎,其中,第一计算引擎为计算引擎集合中属性与目标数据流的属性匹配的引擎。
可选地,确定模块还可用于利用已接收到的第一数据包的数量和接收时间确定目标数据流的数据包接收频率;查找模块还可用于利用数据包接收频率从计算引擎集合中查找第一计算引擎,其中,计算引擎集合中不同引擎的属性所匹配的数据包接收频率不同。
可选地,上述处理单元605还可用于:将配置信息转换为第一格式的第一指令代码,通过第一指令代码指示第一计算引擎按照目标处理方式对第二数据包进行处理,其中,第一计算引擎支持第一格式的指令代码。
可选地,查找单元还可用于在指示第一计算引擎按照目标处理方式对第二数据包进行处理之后,在目标数据流的属性发生变化的情况下,查找计算引擎集合中与目标数据流的变化后的属性匹配的第二计算引擎,其中,目标数据流的变化后的属性是根据第二数据包确定的;处理单元还可用于将目标数据流中的第三数据包转发至第二计算引擎,并指示第二计算引擎按照目标处理方式对第三数据包进行处理,其中,第三数据包的接收时间晚于第二数据包的接收时间。
上述处理单元还可用于将配置信息转换为第二格式的第二指令代码,通过第二指令代码指示第二计算引擎按照目标处理方式对第三数据包进行处理,其中,第二计算引擎支持第二格式的指令代码,第二计算引擎支持的第二格式与第一计算引擎支持的第一格式不同。
上述处理单元还可用于在将目标数据流中的第二数据包转发至第一计算引擎之前,将第一数据包转发至第三计算引擎,并指示第三计算引擎按照目标处理方式对第一数据包进行处理,其中,第三计算引擎为计算引擎集合中的任意一个引擎。
采用本申请的技术方案。不需要开发人员为多套计算引擎开发多套不同代码(多套代码是相同的数据处理逻辑),通过该方案,开发人员只需要开发一套代码,这套代码可以在不同的实时计算引擎上运行,可以大幅减少实时计算类产品开发过程中,开发人员的代码开发工作量,让一套代码能在多个计算引擎上灵活切换执行,能大幅提升产品的灵活性。
该方案可以大幅提升实时计算产品的灵活性和扩展性,可选的实时计算产品如:1,各类实时监控,当监控数据量由小变大的时候,可以直接将计算任务从流式计算引擎切换到伪流式计算引擎,增加任务吞吐量;2,各类实时推荐产品,当产品需求更高的推荐速度时,可以把任务从伪流式计算引擎切换到流式计算引擎,降低实时计算的延迟。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述数据的处理方法的服务器或终端。
图7是根据本申请实施例的一种终端的结构框图,如图7所示,该终端可以包括:一个或多个(图7中仅示出一个)处理器701、存储器703、以及传输装置705,如图7所示,该终端还可以包括输入输出设备707。
其中,存储器703可用于存储软件程序以及模块,如本申请实施例中的数据的处理方法和装置对应的程序指令/模块,处理器701通过运行存储在存储器703内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据的处理方法。存储器703可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器703可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置705用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置705包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置705为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器703用于存储应用程序。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤:
通过目标平台的第一接口接收配置信息,其中,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据,目标平台用于管理计算引擎集合中的引擎;
查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,其中,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的;
将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,其中,第二数据包的接收时间晚于第一数据包的接收时间。
处理器701还用于执行下述步骤:
在目标数据流的属性发生变化的情况下,查找计算引擎集合中与目标数据流的变化后的属性匹配的第二计算引擎,其中,目标数据流的变化后的属性是根据第二数据包确定的;
将目标数据流中的第三数据包转发至第二计算引擎,并指示第二计算引擎按照目标处理方式对第三数据包进行处理,其中,第三数据包的接收时间晚于第二数据包的接收时间。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图7所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行数据的处理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
通过目标平台的第一接口接收配置信息,其中,配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,目标数据流为通过目标平台的第二接口接收的待处理数据,目标平台用于管理计算引擎集合中的引擎;
查找计算引擎集合中与目标数据流的属性匹配的第一计算引擎,其中,目标数据流的属性是根据已接收到的目标数据流中的第一数据包确定的;
将目标数据流中的第二数据包转发至第一计算引擎,并指示第一计算引擎按照目标处理方式对第二数据包进行处理,其中,第二数据包的接收时间晚于第一数据包的接收时间。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
在目标数据流的属性发生变化的情况下,查找计算引擎集合中与目标数据流的变化后的属性匹配的第二计算引擎,其中,目标数据流的变化后的属性是根据第二数据包确定的;
将目标数据流中的第三数据包转发至第二计算引擎,并指示第二计算引擎按照目标处理方式对第三数据包进行处理,其中,第三数据包的接收时间晚于第二数据包的接收时间。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据的处理方法,其特征在于,包括:
通过目标平台的第一接口接收配置信息,其中,所述配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,所述目标数据流为通过所述目标平台的第二接口接收的待处理数据,所述目标平台用于管理所述计算引擎集合中的引擎;
查找所述计算引擎集合中与所述目标数据流的属性匹配的第一计算引擎,其中,所述目标数据流的属性是根据已接收到的所述目标数据流中的第一数据包确定的;
将所述目标数据流中的第二数据包转发至所述第一计算引擎,并指示所述第一计算引擎按照所述目标处理方式对所述第二数据包进行处理,其中,所述第二数据包的接收时间晚于所述第一数据包的接收时间。
2.根据权利要求1所述的方法,其特征在于,查找所述计算引擎集合中与所述目标数据流的属性匹配的第一计算引擎包括:
根据已接收到的所述第一数据包确定所述目标数据流的属性;
利用所述目标数据流的属性从所述计算引擎集合中查找所述第一计算引擎,其中,所述第一计算引擎为所述计算引擎集合中属性与所述目标数据流的属性匹配的引擎。
3.根据权利要求2所述的方法,其特征在于,
根据已接收到的所述第一数据包确定所述目标数据流的属性包括:利用已接收到的所述第一数据包的数量和接收时间确定所述目标数据流的数据包接收频率;
利用所述目标数据流的属性从所述计算引擎集合中查找到所述第一计算引擎包括:利用所述数据包接收频率从所述计算引擎集合中查找所述第一计算引擎,其中,所述计算引擎集合中不同引擎的属性所匹配的数据包接收频率不同。
4.根据权利要求1所述的方法,其特征在于,指示所述第一计算引擎按照所述目标处理方式对所述第二数据包进行处理包括:
将所述配置信息转换为第一格式的第一指令代码,通过所述第一指令代码指示所述第一计算引擎按照所述目标处理方式对所述第二数据包进行处理,其中,所述第一计算引擎支持所述第一格式的指令代码。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在指示所述第一计算引擎按照所述目标处理方式对所述第二数据包进行处理之后,所述方法还包括:
在所述目标数据流的属性发生变化的情况下,查找所述计算引擎集合中与所述目标数据流的变化后的属性匹配的第二计算引擎,其中,所述目标数据流的变化后的属性是根据所述第二数据包确定的;
将所述目标数据流中的第三数据包转发至所述第二计算引擎,并指示所述第二计算引擎按照所述目标处理方式对所述第三数据包进行处理,其中,所述第三数据包的接收时间晚于所述第二数据包的接收时间。
6.根据权利要求5所述的方法,其特征在于,指示所述第二计算引擎按照所述目标处理方式对所述第三数据包进行处理包括:
将所述配置信息转换为第二格式的第二指令代码,通过所述第二指令代码指示所述第二计算引擎按照所述目标处理方式对所述第三数据包进行处理,其中,所述第二计算引擎支持所述第二格式的指令代码,所述第二计算引擎支持的所述第二格式与所述第一计算引擎支持的第一格式不同。
7.根据权利要求1至4中任意一项所述的方法,其特征在于,在将所述目标数据流中的第二数据包转发至所述第一计算引擎之前,所述方法还包括:
将所述第一数据包转发至第三计算引擎,并指示所述第三计算引擎按照所述目标处理方式对所述第一数据包进行处理,其中,所述第三计算引擎为所述计算引擎集合中的任意一个引擎。
8.一种数据的处理装置,其特征在于,包括:
接收单元,用于通过目标平台的第一接口接收配置信息,其中,所述配置信息用于指示计算引擎集合中的引擎按照目标处理方式对目标数据流中的数据进行处理,所述目标数据流为通过所述目标平台的第二接口接收的待处理数据,所述目标平台用于管理所述计算引擎集合中的引擎;
查找单元,用于查找所述计算引擎集合中与所述目标数据流的属性匹配的第一计算引擎,其中,所述目标数据流的属性是根据已接收到的所述目标数据流中的第一数据包确定的;
处理单元,用于将所述目标数据流中的第二数据包转发至所述第一计算引擎,并指示所述第一计算引擎按照所述目标处理方式对所述第二数据包进行处理,其中,所述第二数据包的接收时间晚于所述第一数据包的接收时间。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810718.XA CN110727697B (zh) | 2019-08-29 | 2019-08-29 | 数据的处理方法和装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810718.XA CN110727697B (zh) | 2019-08-29 | 2019-08-29 | 数据的处理方法和装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727697A true CN110727697A (zh) | 2020-01-24 |
CN110727697B CN110727697B (zh) | 2022-07-12 |
Family
ID=69218787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910810718.XA Active CN110727697B (zh) | 2019-08-29 | 2019-08-29 | 数据的处理方法和装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727697B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112036577A (zh) * | 2020-08-20 | 2020-12-04 | 第四范式(北京)技术有限公司 | 基于数据形式的应用机器学习的方法、装置和电子设备 |
CN112507029A (zh) * | 2020-12-18 | 2021-03-16 | 上海哔哩哔哩科技有限公司 | 数据处理系统及数据实时处理方法 |
CN112765188A (zh) * | 2020-12-31 | 2021-05-07 | 北京奇艺世纪科技有限公司 | 配置信息处理方法、配置管理系统、电子设备及存储介质 |
CN116521963A (zh) * | 2023-07-04 | 2023-08-01 | 北京智麟科技有限公司 | 一种基于组件化的计算引擎数据处理方法及系统 |
CN116991792A (zh) * | 2023-09-20 | 2023-11-03 | 北京星宇天航科技有限公司 | 应用于人工智能芯片的计算处理方法、装置及芯片 |
CN117135181A (zh) * | 2023-08-15 | 2023-11-28 | 三一重型装备有限公司 | 一种综采设备的数据传输方法、装置及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633347A (zh) * | 2017-08-22 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 一种数据指标统计方法及装置 |
CN108961080A (zh) * | 2018-06-29 | 2018-12-07 | 渤海人寿保险股份有限公司 | 保险业务分布式处理方法、装置、存储介质及终端 |
CN108985367A (zh) * | 2018-07-06 | 2018-12-11 | 中国科学院计算技术研究所 | 计算引擎选择方法和基于该方法的多计算引擎平台 |
CN109324793A (zh) * | 2018-10-24 | 2019-02-12 | 北京奇虎科技有限公司 | 支持算法组件化的处理系统及方法 |
CN109558392A (zh) * | 2018-11-20 | 2019-04-02 | 南京数睿数据科技有限公司 | 一种跨平台多引擎支持的海量数据迁移装置 |
CN109697118A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 流式计算任务管理方法、装置、电子设备及存储介质 |
CN109739663A (zh) * | 2018-12-29 | 2019-05-10 | 深圳前海微众银行股份有限公司 | 作业处理方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-08-29 CN CN201910810718.XA patent/CN110727697B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633347A (zh) * | 2017-08-22 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 一种数据指标统计方法及装置 |
CN109697118A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 流式计算任务管理方法、装置、电子设备及存储介质 |
CN108961080A (zh) * | 2018-06-29 | 2018-12-07 | 渤海人寿保险股份有限公司 | 保险业务分布式处理方法、装置、存储介质及终端 |
CN108985367A (zh) * | 2018-07-06 | 2018-12-11 | 中国科学院计算技术研究所 | 计算引擎选择方法和基于该方法的多计算引擎平台 |
CN109324793A (zh) * | 2018-10-24 | 2019-02-12 | 北京奇虎科技有限公司 | 支持算法组件化的处理系统及方法 |
CN109558392A (zh) * | 2018-11-20 | 2019-04-02 | 南京数睿数据科技有限公司 | 一种跨平台多引擎支持的海量数据迁移装置 |
CN109739663A (zh) * | 2018-12-29 | 2019-05-10 | 深圳前海微众银行股份有限公司 | 作业处理方法、装置、设备及计算机可读存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112036577A (zh) * | 2020-08-20 | 2020-12-04 | 第四范式(北京)技术有限公司 | 基于数据形式的应用机器学习的方法、装置和电子设备 |
CN112036577B (zh) * | 2020-08-20 | 2024-02-20 | 第四范式(北京)技术有限公司 | 基于数据形式的应用机器学习的方法、装置和电子设备 |
CN112507029A (zh) * | 2020-12-18 | 2021-03-16 | 上海哔哩哔哩科技有限公司 | 数据处理系统及数据实时处理方法 |
CN112507029B (zh) * | 2020-12-18 | 2022-11-04 | 上海哔哩哔哩科技有限公司 | 数据处理系统及数据实时处理方法 |
CN112765188A (zh) * | 2020-12-31 | 2021-05-07 | 北京奇艺世纪科技有限公司 | 配置信息处理方法、配置管理系统、电子设备及存储介质 |
CN112765188B (zh) * | 2020-12-31 | 2023-09-08 | 北京奇艺世纪科技有限公司 | 配置信息处理方法、配置管理系统、电子设备及存储介质 |
CN116521963A (zh) * | 2023-07-04 | 2023-08-01 | 北京智麟科技有限公司 | 一种基于组件化的计算引擎数据处理方法及系统 |
CN117135181A (zh) * | 2023-08-15 | 2023-11-28 | 三一重型装备有限公司 | 一种综采设备的数据传输方法、装置及电子设备 |
CN116991792A (zh) * | 2023-09-20 | 2023-11-03 | 北京星宇天航科技有限公司 | 应用于人工智能芯片的计算处理方法、装置及芯片 |
CN116991792B (zh) * | 2023-09-20 | 2024-04-16 | 北京星宇天航科技有限公司 | 应用于人工智能芯片的计算处理方法、装置及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN110727697B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727697B (zh) | 数据的处理方法和装置、存储介质、电子装置 | |
US20220038362A1 (en) | Intercepting and examining a packet header or trailer | |
US11221743B2 (en) | Information processing method, terminal, server, and computer storage medium | |
US20140162680A1 (en) | Providing Multiple Interfaces for Traffic | |
CN108664270A (zh) | 环境动态切换方法、装置、计算机设备及存储介质 | |
US11722371B2 (en) | Utilizing unstructured data in self-organized networks | |
US10609206B1 (en) | Auto-repairing mobile communication device data streaming architecture | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
US10489179B1 (en) | Virtual machine instance data aggregation based on work definition metadata | |
US9154985B2 (en) | Mechanism for facilitating dynamic and segment-based monitoring of cellular network performance in an on-demand services environment | |
EP3091712A1 (en) | Smart device for realizing multiple-device collaboration and working method for multiple-device collaboration | |
CN109753424B (zh) | Ab测试的方法和装置 | |
CN112748961A (zh) | 启动任务的执行方法和装置 | |
CN114095876A (zh) | 广播数据的处理方法和装置、存储介质及电子装置 | |
CN109032693A (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
CN114564249A (zh) | 推荐调度引擎、推荐调度方法及计算机可读存储介质 | |
CN114090074A (zh) | 运行环境的配置方法和装置、存储介质及电子装置 | |
JP2022028633A (ja) | 重要業績評価指標の階層的計算のためのシステム及び方法 | |
CN113315709B (zh) | 地址缓存的创建方法、路由选址方法和装置 | |
WO2014173129A1 (en) | Mobile terminal flow identification method and apparatus | |
CN114661563B (zh) | 基于流处理框架的数据处理方法以及系统 | |
CN117311803A (zh) | 数据处理方法、推荐方法、装置、电子设备及存储介质 | |
CN114090917A (zh) | 城市信息的显示方法及装置、存储介质及电子装置 | |
CN112988156A (zh) | 热点代码确定方法、装置、服务器以及存储介质 | |
CN115269055A (zh) | Nginx请求数据采集方法、装置、设备及存储介质 |
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 |