CN110347399A - 数据处理方法、实时计算系统以及信息系统 - Google Patents
数据处理方法、实时计算系统以及信息系统 Download PDFInfo
- Publication number
- CN110347399A CN110347399A CN201910471262.9A CN201910471262A CN110347399A CN 110347399 A CN110347399 A CN 110347399A CN 201910471262 A CN201910471262 A CN 201910471262A CN 110347399 A CN110347399 A CN 110347399A
- Authority
- CN
- China
- Prior art keywords
- data
- script
- real
- computing unit
- script 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种数据处理方法、实时计算系统以及信息系统。所述方法包括:当实时计算单元接收到进行数据处理的任务指令时,实时计算单元从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;实时计算单元将所述目标脚本数据发送到脚本引擎;脚本引擎运行目标脚本数据。在该方法中,数据处理任务改变以后所读取的更新后的目标脚本数据并不需要进行重新编译,就可以直接执行对应的数据处理任务,从而提升了实时计算系统的数据处理效率,降低了实时计算系统的维护成本。并且,除了脚本引擎以外的程序均是静态语言开发得到,进一步的保证了整个信息系统的稳定性。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种数据处理方法、实时计算系统以及信息系统。
背景技术
实时计算框架一般是基于静态语言(强制数据类型定义的语言)开发,如Flink是基于Scala,Spark-streaming是基于Scala,Strom是基于Java。对于在基于实时计算框架开发的信息系统中的每个业务功能都需要在实时计算框架的基础进行开发。其中,对于每个用户的业务需求是多变且不确定的,因而会涉及到新增或修改业务规则。但是,每次新增或修改业务规则都需修改代码,进而需要重新编译代码和重启系统。
发明内容
鉴于上述问题,本申请提出了一种数据处理方法、实时计算系统以及信息系统,以改善上述问题。
第一方面,本申请提供了一种数据处理方法,应用于实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,所述方法包括:当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;所述实时计算单元将所述目标脚本数据发送到所述脚本引擎;所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
第二方面,本申请提供了一种数据处理方法,应用于信息系统,所述信息系统包括消息队列以及实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,所述方法包括:当接收到所述消息队列推送的进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;所述实时计算单元将所述目标脚本数据发送到所述脚本引擎;所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
第三方面,本申请提供了一种实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,所述实时计算单元包括触发模块以及分发模块;所述分发模块,用于当接收到进行数据处理的任务指令时,向所述触发模块转发所述进行数据处理的任务指令;所述触发模块,用于接收到所述任务指令时,从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;将所述目标脚本数据发送到所述脚本引擎;所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
第四方面,本申请提供了一种信息系统,所述信息系统包括消息队列以及实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到;所述消息队列,用于接收数据源发送的待处理的数据,并生成携带所述待处理的数据的任务指令;所述实时计算单元,用于当接收到所述消息队列推送的进行数据处理的任务指令时,从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;所述实时计算单元将所述目标脚本数据发送到所述脚本引擎;所述脚本引擎运行所述目标脚本数据,以便对所述待处理的数据进行处理。
本申请提供的一种数据处理方法、实时计算系统以及信息系统,在该实时计算系统中包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,从而在当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取执行所述任务指令的目标脚本数据,然后将所述目标脚本数据发送到所述脚本引擎,使得所述脚本引擎运行所述目标脚本数据。从而可以利用所述脚本数据在被运行前无需编译特性,使得实时计算系统可以根据要处理的数据处理任务来读取对应的目标脚本数据来处理数据,并且在数据处理任务改变以后所读取的更新后的目标脚本数据并不需要进行重新编译,就可以直接执行对应的数据处理任务,从而提升了实时计算系统的数据处理效率,降低了实时计算系统的维护成本。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的信息系统的结构框图;
图2示出了本申请实施例提供的一种信息系统的架构示意图;
图3示出了本申请实施例提供的另一种信息系统的架构示意图;
图4示出了本申请一实施例提出的一种数据处理方法的流程图;
图5示出了本申请另一实施例提出的一种数据处理方法的流程图;
图6示出了本申请实施例提出的一种信息展示界面的示意图;
图7示出了本申请实施例提出的一种编辑界面的示意图;
图8示出了本申请实施例提出的另一种编辑界面的示意图;
图9示出了本申请实施例提出的一种编辑界面进行编辑的示意图;
图10示出了本申请实施例提出的一种服务器的结构框图;
图11示出了本申请实施例的用于保存或者携带实现根据本申请实施例的数据处理方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着大数据的快速发展,业务场景越来越复杂,离线式的批处理框架已经不能满足业务需求,更多大量的场景需要实时的数据处理,并且对处理结果进行分析。而通常实时的数据处理是由实时计算框架来完成的。
实时计算框架一般是基于静态语言(强制数据类型定义的语言)开发,如Flink是基于Scala,Spark-streaming是基于Scala,Strom是基于Java。对于在基于实时计算框架开发的信息系统中的每个业务功能都需要在实时计算框架的基础进行开发。并且,对于每个用户的业务需求是多变且不确定的,因而会涉及到新增或修改业务规则。
发明人在研究中发现,由于实时计算框架是基于静态语言开发,那么当实时计算框架中的程序涉及到删除、修改或者增加时,需要对实时计算框架的程序代码进行重新编译,并且重启实时计算框架才能运行新的功能,再加上对于每个用户的业务需求是多变且不确定的,因而会涉及到新增或修改业务规则,但是,每次新增或修改业务规则都需修改代码,如前述内容所述需要重新编译代码和重启系统,进而造成较高的成本消耗。
在一种相关方式中,可以由动态语言来进行实时计算框架的开发,虽然这种方式可以减小重新编译的时间消耗,但是发明人发现,由于动态语言的特性,使得使用动态语言去整体构建复杂系统的时候会容易使系统变得难以维护并且很难保证系统的性能。
因此,为了改善上述问题,发明人提出了本申请实施例提供的一种数据处理方法、实时计算系统以及信息系统,进而可以利用所述脚本数据在被运行前无需编译特性,使得实时计算系统可以根据要处理的数据处理任务来读取对应的目标脚本数据来处理数据,并且在数据处理任务改变以后所读取的更新后的目标脚本数据并不需要进行重新编译,就可以直接执行对应的数据处理任务,从而提升了实时计算系统的数据处理效率,降低了实时计算系统的维护成本,并且同时由于实时计算系统中除了脚本引擎外的程序均是由静态语言开发的,充分的保证了整个实时计算系统以及信息系统的稳定性。
下面将对本申请实施例所涉及的应用环境进行介绍。
如图1所示的一种信息系统。在该信息系统100中包括实时计算系统110、消息队列120以及配置服务130。其中,实时计算系统110用于对数据进行实时处理。消息队列120用于接收数据源发送的数据作为待处理的数据发送给实时计算系统110进行处理。配置服务130用于向用户提供配置界面对后续直接进行数据处理的脚本数据进行和编辑。作为一种方式,当用于在配置服务130提供的可视化操作界面中完成脚本数据编辑后,配置服务130会向消息队列发送的更新信号,消息队列在接收到该更新信号后会将该更新信号发送给实时计算系统110,以便实时计算系统调取更新后的脚本数据覆盖更新前的覆盖数据。
请继续参阅图1,在图1所示的一种实时方式中,实时计算系统110包括实时计算单元以及脚本引擎113。其中,实时计算单元包括分发模块111、触发模块112、缓存模块114以及刷新模块115。
其中,分发模块111用于在接收到消息队列120发送的数据后,将接收到的数据分发到触发模块112或者刷新模块115。作为一种方式,分发模块111接收到进行数据处理的任务指令时,表征该条数据需要后续的脚本引擎113进行处理,那么分发模块111将需要脚本引擎113处理的数据发送给触发模块112。那么分发模块111接收到更新信号后,表征需要刷新存储区域中的数据,那么分发模块111会将该更新信号分发给刷新模块115。
如上述内容所示,触发模块112接收都分发模块111发送的任务指令后,会从指定的存储区域读取执行所述任务指令的目标脚本数据,将所述目标脚本数据发送到所述脚本引擎113,以便所述脚本引擎113运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
刷新模块113,用于接收到分发模块发送的更新信号后,从持久化存储区域(例如,数据库)中查找到更新后的数据,然后用于该更新后的数据覆盖缓存区域中对应的更新前的数据。此外,刷新模块113,还用于当所述实时计算系统初始化时,所述实时计算单元从持久化存储区域中读取所述多个脚本数据存储到所述缓存区域中。作为一种方式,刷新模块113,可以将持久化存储区域中所有的脚本数据存储到所述缓存区域中。
缓存模块114,用于对所需的脚本数据进行缓存,并还可以对已经缓存的数据进行编辑。
再者,需要说明的是,本申请实施例中的实时计算系统和信息系统可以由一个服务器单独承载,也可以由多个服务器组合的服务集群进行承载。例如,如图2所示,在单个的服务器中运行有前述的信息系统100。如图3所示,包括实时计算系统110的信息系统承载在多个服务器中。在这种方式下,信息系统所包括的多个系统或者模块可以分别运行在不同的服务器中。例如,信息系统100包括实时计算系统110、消息队列120以及配置服务130。那么在服务集群包括相互可以通信的服务器A、服务器B以及服务器C的情况下,实时计算系统110可以运行在服务器A上、而消息队列120可以运行在服务器B上,配置服务130可以运行在服务器C上。通过这种方式,可以利用多个服务器同时运行,提升运算效率。此外,在该服务集群中还可以部署更多的服务器,进而将实施计算系统110所包括的实时计算单元中的分发模块111、触发模块112以及刷新模块115均分别部署到不同的服务器中。
下面将结合附图具体描述本申请的各实施例。
请参阅图4,本申请实施例提供的一种数据处理方法,应用于实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,所述方法包括:
步骤S110:当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译。
其中,实时计算单元所接收到的需要进行处理的数据为数据源生产并发送给实时计算系统的。作为一种方式,该数据源为业务系统,对应的,作为业务系统的数据源所产生的数据为业务数据。在这种方式下,业务系统在生成业务数据以后,会将该业务数据传输给实时计算单元,然后指示实时计算单元对业务数据进行处理。
例如,若该业务系统为一个购物系统,那么所产生的业务数据可以为订单数据,进而当用户在业务系统上购物产生订单数据后,业务系统会将产生的订单数据发送给实时计算系统以便实时计算系统对该订单数据进行处理。再例如,该业务系统可以为物联网设备的数据采集系统,在这种方式中,物联网设备在接收数据采集系统后,会按照设定的规则向数据采集系统上传设备数据。
例如,对于接入数据采集系统的温度传感器,会按照设定的周期向数据采集系统上传所采集的温度数据。那么当数据采集系统获取到物联网设备上传的设备数据以后,如果判断该设备数据需要进行下一步的计算,就会将该设备数据传输给实时计算系统,以便实时计算系统进行下一步的计算。还是以前述的温度传感器为例,当温度传感器上传了当次采集的温度数据以后,如果数据采集系统检测到该温度传感器对应有数据统计流程,统计当前的温度平均值,那么数据采集系统会将当次接收到的温度数据传输给实时计算系统,而实时计算系统接收到温度数据后,就会统计当前的温度平均值。
其中,实时计算系统可以通过判断所接收到的数据的内容或者格式来判定是否需要进行处理的数据,如果是,就判定为接收到了进行数据处理的任务指令。
步骤S120:所述实时计算单元将所述目标脚本数据发送到所述脚本引擎。
步骤S130:所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
需要说明的是,对于本申请实施例中的脚本数据在被脚本引擎运行之前均不需要再进行重新编译,并且也不需要实时计算系统重新启动,从而使得整个系统可以更加高效、低成本的运行。
其中,在本申请实施例中,脚本引擎在执行目标脚本数据的过程中可以直接利用脚本引擎本身来执行目标脚本数据。此外,脚本引擎也可以在执行过程中读取目标脚本数据所指定的外部文件,以便获取外部文件中的数据。再者,脚本引擎在执行目标脚本数据的过程中也可以调用预先定义的一些函数来进行数据处理。
其中,作为一种方式,所述任务指令所指定的数据可以直接携带在任务指令中,也可以是存储在某一个存储区域中。
本申请提供的一种数据处理方法,在该实时计算系统中包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,从而在当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取执行所述任务指令的目标脚本数据,然后将所述目标脚本数据发送到所述脚本引擎,使得所述脚本引擎运行所述目标脚本数据。从而可以利用所述脚本数据在被运行前无需编译特性,使得实时计算系统可以根据要处理的数据处理任务来读取对应的目标脚本数据来处理数据,并且在数据处理任务改变以后所读取的更新后的目标脚本数据并不需要进行重新编译,就可以直接执行对应的数据处理任务,从而提升了实时计算系统的数据处理效率,降低了实时计算系统的维护成本。
请参阅图5,本申请实施例提供的一种数据处理方法,应用于上述实时计算系统,所述方法包括:
步骤S210:当所述实时计算系统初始化时,所述实时计算单元从持久化存储区域中读取所述多个脚本数据存储到所述缓存区域中。
可以理解的是,对于缓存区域中所存储的数据在缓存区域所在的硬件设备断电以后会被删除掉。那么在缓存区域中的脚本数据都被删除以后,当实时计算系统重新上电之后或者是在系统数据还原之后,为了便于后续可以直接从缓存区域中读取脚本数据,会先从持久化的存储区域中读取多个脚本数据存储到缓存区域中。
其中,所述实时计算单元从持久化存储区域中读取所述多个脚本数据存储到所述缓存区域中的方式有多种。
作为一种方式,实时计算单元可以将持久化存储区域中存储的所有的脚本数据均储到所述缓存区域中。
作为另外一种方式,为了便于降低缓存区域的存储空间的占用,实时计算单元可以有选择性的从持久化存储区域中选择脚本数据存储到缓存区域中。
可选的,持久化存储区域中所存储的脚本数据还对应存储有调用的次数。那么实时计算单元,可以基于每个脚本数据对应的调用次数,将调用次数超过设定阈值次数的脚本数据从持久化存储区域中读取出来存储到所述缓存区域中。
此外,需要说明的是,持久化存储区域中存储的脚本数据可以由用户根据当前的实际需求进行编辑,那么持久化存储区域中所存储的脚本数据还可以对应存储有一个最近一次编辑时间。那么编辑时间距离当前时刻越近,说明被用户期望使用的概率越高,那么可选的,实时计算单元就可以依据编辑时间,将对应的最近一次编辑时间距离当前时刻较近的脚本数据从持久化存储区域中读取出来存储到所述缓存区域中。
例如,如下表所示:
ID | Data | Editing_time | Use_count |
1 | a*1000 | tima_A | 10 |
2 | a*500 | tima_B | 8 |
3 | (a+b)/arr.length | tima_C | 7 |
在上表中有“Data”、“Editing_time”以及“Use_count”这三个字段。其中,“Data”用于表征脚本数据,“Editing_time”表征最近一次编辑时间,“Use_count”表征总计被调用的次数。那么基于上表,实时计算系统可以基于“Editing_time”这个字段的值,将最近一周编辑过的,或者最近一个月编辑过的脚本数据从持久化存储区域中读取出来存储到所述缓存区域中。
再者,实时计算系统也可以基于多个参数来确定所要从持久化存储区域中读取的脚本数据。例如,实时计算系统可以结合最近一次编辑时间以及调用次数来确定所要从持久化存储区域中所调用的脚本数据。例如,在一种方式中,虽然有的脚本数据有可能是最近一周才进行了一次编辑的,但是,只是对原来的脚本数据进行的更新,但是其调用次数却不高,那么作为一种方式,实时计算系统可以将最近一次编辑时间以及调用次数均满足设定条件的脚本数据从持久化存储区域中读取出来存储到所述缓存区域中。
还是以上表的内容为例,若配置最近一次编辑时间为一周内,且调用次数不少于10次,那么上表中可能会被调用的脚本数据就只有ID为1的脚本数据。
步骤S220:当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从所述缓存区域存储的多个脚本数据中读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译。
可以理解的是,存储在缓存区域中的脚本数据都对应配置有一个用于唯一标识自身的标识。作为一种方式,该标识可以为脚本数据存储在持久化存储区域中的ID。对应的,作为一种方式,为了便于后续确定所要调用的脚本数据,在实时计算单元所接收到的任务指令中,也会对应携带有一个所要调用的脚本数据的标识。那么在这种方式下,所述实时计算单元从所述任务指令中获取所携带的数据脚本的标识作为参考脚本标识;将所述参考脚本标识与所述指定的存储区域存储的多个脚本标识进行匹配,其中,所述指定的存储区域中每个脚本标识对应有一个脚本数据,且不同的脚本标识所对应的脚本数据可执行的数据处理内容不同;将与所述参考脚本标识匹配的脚本标识所对应的脚本数据作为目标脚本数据。
还是以上表中的数据为例。若上表中的ID为1和2的数据均被存储到了缓存区域中。那么当实时计算单元获取到参考脚本标识为1的情况下,表征需要对待处理的数据进行乘以1000的计算,那么实时计算单元就可以直接从缓存区域中读取对应的脚本数据。但是,若实时计算单元获取到的参考脚本标识为3,那么实时计算单元在缓存中进行脚本数据查找以后就会发现无法查找到对应的脚本数据。那么实时计算单元,就可以直接从最初读取脚本数据的持久化存储区域中再去查找ID为3的脚本数据,并直接读取到缓存区域中。
步骤S230:所述实时计算单元将所述目标脚本数据发送到所述脚本引擎。
需要说明的是,对于每个脚本数据除了可以有对应的数据计算内容外,还可以对应一个触发条件。在这种情况下,实时计算单元在检测到触发条件满足以后,才会触发将对应的脚本数据发送给脚本引擎。在这种方式下,所述脚本数据对应有脚本内容触发条件;所述实时计算单元将所述目标脚本数据发送到所述脚本引擎的步骤包括:所述实时计算单元检测到满足所述目标脚本数据对应的脚本触发条件时,将所述目标脚本数据发送到所述脚本引擎。
步骤S240:所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
在本申请实施例中,对于持久化存储区域中存储的数据可以预先由开发人员录入,也可以由系统的用户根据自己的需要进行灵活的编辑。例如,某一条脚本数据A是用于对应的某一个温度采集设备的温度数据做平均计算。在更新之前,该脚本数据A是用于对当前所采集到温度数据均进行平均。那么如果用户出于数据采集的需求,期望获取的平均值为一天内采集的数据的平均值,那么用户就可以对脚本数据A进行编辑,将脚本数据A对应的程序代码修改为对一天内的温度数据进行平均计算。
其中,用户可以通过多种操作方式对已经有的脚本数据进行编辑。
如图6所示的信息展示界面99中,可以罗列出持久化存储区域中当前已经存储的脚本数据。并且对于每一条脚本数据都配置有一个操作控件98,通过该操作控件用于可以对脚本数据进行编辑或者直接删除。其中,可以通过计算机、智能手机或者平板电脑等设备来显示信息展示界面99。
作为一种方式,当用户触控操作控件98中的编辑以后,可以展示图7所示的基于代码操作的编辑界面。在该编辑界面中配置有菜单栏97以及代码显示区域96。其中,菜单栏97用于放置常用的编辑工具,以便用户对代码显示区域96的属性进行编辑。例如,背景颜色、区域大小等属性。代码显示区域96用于对用户所选择编辑的脚本数据的代码进行显示,并且用户可以直接对代码显示区域96中所显示的代码进行编辑。
而作为另外一种方式,当用户触控操作控件98中的编辑以后,可以展示图8所示的基于控件操作的编辑界面。在显示图8所示的编辑界面过程中,配置服务可以对用户所选择的脚本数据的代码进行解析,识别出其中用户可以进行编辑的功能,然后展示在图8所示的编辑界面中。例如,图8中所示的编辑界面中为配置服务识别到用户所选择的脚本数据是对设备A所上传的所有的温度数据求平均值的计算。在这种情况下,用户可以通过可视化操作的方式对其中的周期时间进行调整,提升用户编辑脚本数据过程中的便利性和易操作性。如图9所示,当用户点击其中的周期后,可以显示备选菜单,在该备选菜单中显示有各个时间周期,当用户选定新的时间周期后,配置服务可以自动的根据用户所选定的时间周期对脚本数据进行更新。
其中,需要说明的是,为了便于提升识别可编辑功能的概率以及通用性,配置服务可以根据脚本数据所包括的代码中所调用的函数或者代码旁边的注释来确定该脚本数据包括哪些功能。可选的,对于一些常用的开发语言中,通常会预先封装有常用的函数,以便于用户在开发阶段直接调用函数就可以实现对应的功能。那么配置服务通过识别脚本数据中所包括的函数名就可以识别出该脚本数据所包括的一些功能。那么在用户编辑阶段,配置服务通过修改所调用函数中的参数的值,就可以实现修改该函数的具体计算功能。再者,对于一些用户自定义的函数,通常都会对应配置有注释。那么基于这种方式,开发人员可以在注释中标明自定义函数的功能,并且在注释中标明自定义函数中所定义的参数以及该参数对应的意义。那么通过上述方式,配置服务就可以识别出脚本数据中的可以编辑的功能。
可以理解的是,当用户基于前述方式进行脚本数据的编辑以后,配置服务也会对应的对持久化存储区域中的脚本数据进行更新,将对应的脚本数据的内容更新为用户编辑以后的内容,从而实现缓存区域中的脚本数据的动态实时更新。
需要说明的是,对于持久化存储区域中的脚本数据,在实时计算系统初始化的时候,会被读取并存储到缓存区域中,以便实时计算系统可以直接从缓存区域中读取脚本数据。那么为了实现数据更新的同步,作为一种方式,所述方法还包括:所述实时计算单元接收到表征所述持久化存储区域中的脚本数据更新的更新信号后,从所述持久化存储区域中读取更新后的脚本数据;获取所处缓存区域中的待覆盖脚本数据,所述待覆盖脚本数据为所述更新后的脚本数据对应的更新前的脚本数据;使所述更新后的脚本数据覆盖所述待覆盖脚本数据。
以前述数据表中的ID为1的脚本数据为例,在用户更新该ID为1的脚本数据之前,该脚本数据的内容为前述表中的“a*1000”,即将采集的数据乘以1000。而用户后面出于显示单位的改变,将乘以1000修改为乘以500,那么修改后的脚本数据为“a*500”。在配置服务检测到进行了上述操作以后,就会生成一个更新信号,将该更新信号发送给实时计算系统,以便该实时计算系统将缓存区域中存储的“a*1000”替换为“a*500”。作为一种方式,请参阅图1,配置服务可以将生成的更新信号先发送到消息队列中,然后由消息队列推送给实时计算单元中的分发模块,然后分发模块将更新信号传输给刷新模块,最后由刷新模块从持久化存储区域中读取更新后的脚本数据传输给缓存模块,再由缓存模块实现脚本数据的替换。需要说明的是,在本申请实施例中,分发模块除了要向触发模块转发任务指令外,还会向刷新模块转发更新信号。那么对于分发模块而言,分发模块可以基于设定的数据格式来确定当前所接收到的是任务指令,还是更新信号。
本申请提供的一种数据处理方法,可以利用所述脚本数据在被运行前无需编译特性,使得实时计算系统可以根据要处理的数据处理任务来读取对应的目标脚本数据来处理数据,并且在数据处理任务改变以后所读取的更新后的目标脚本数据并不需要进行重新编译,就可以直接执行对应的数据处理任务,从而提升了实时计算系统的数据处理效率,降低了实时计算系统的维护成本。并且,因为备选的多个脚本数据都是存储在缓存区域中的,基于缓存区域更加快速的数据处理效率,实时计算系统可以更加快速的获取到目标脚本数据,从而提升整个实时计算系统的数据处理效率。
请再参阅图1,本申请实施例提供的一种实时计算系统110,所述实时计算系统110包括实时计算单元以及脚本引擎113,所述实时计算单元为静态语言编译得到,所述实时计算单元包括触发模块112以及分发模块111。
所述分发模块111,用于当接收到进行数据处理的任务指令时,向所述触发模块转发所述进行数据处理的任务指令;
所述触发模块112,用于接收到所述任务指令时,从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;将所述目标脚本数据发送到所述脚本引擎。
所述脚本引擎113,用于运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
作为一种方式,所述指定的存储区域包括缓存区域,所述实时计算单元还包括用于进行数据缓存处理的缓存模块114;所述触发模块112,具体用于当所述实时计算单元接收到进行数据处理的任务指令时,触发所述缓存模块114从所述缓存区域存储的多个脚本数据中读取目标脚本数据,并返回给所述触发模块112。
作为一种方式,所述实时计算单元,还包括刷新模块115;
所述刷新模块115,用于当所述实时计算系统初始化时,从持久化存储区域中读取所述多个脚本数据发送给所述缓存模块114,以便所述缓存模块114存储到所述缓存区域中。
作为一种方式,所述分发模块111,还用于接收到表征所述持久化存储区域中的脚本数据更新的更新信号后,将所述更新信号转发给所述刷新模块115;
所述刷新模块115,用于从所述持久化存储区域中读取更新后的脚本数据;触发所述所处缓存模块114缓存区域所述缓存区域中的待覆盖脚本数据,所述待覆盖脚本数据为所述更新后的脚本数据对应的更新前的脚本数据;使缓存模块114用所述更新后的脚本数据覆盖所述待覆盖脚本数据。
下面将结合图10对本申请提供的一种服务器进行说明。
请参阅图10,基于上述的数据处理方法、实时计算系统及信息系统,本申请实施例还提供的一种可以执行数据处理方法或者承载上述实时计算系统及信息系统的服务器300。服务器300包括相互耦合的一个或多个(图中仅示出一个)处理器302、存储器304以及接口模块306。此外,该服务器300还可以包括指示灯以及按键等。其中,该存储器304中存储有可以执行前述实施例中内容的程序,而处理器302可以执行该存储器304中存储的程序。
其中,处理器302可以包括一个或者多个处理核。处理器302利用各种接口和线路连接整个服务器300内的各个部分,通过运行或执行存储在存储器304内的指令、程序、代码集或指令集,以及调用存储在存储器304内的数据,执行服务器300的各种功能和处理数据。
存储器304可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器304可用于存储指令、程序、代码、代码集或指令集。存储器304可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现下述各个方法实施例的指令等。
接口模块306用于服务器与外部的设备或者网络进行通信。
请参考图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质900中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质900可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质900包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质900具有执行上述方法中的任何方法步骤的程序代码910的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码910可以例如以适当形式进行压缩。
综上所述,本申请提供的一种数据处理方法、实时计算系统以及信息系统,在该实时计算系统中包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,从而在当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取执行所述任务指令的目标脚本数据,然后将所述目标脚本数据发送到所述脚本引擎,使得所述脚本引擎运行所述目标脚本数据。从而可以利用所述脚本数据在被运行前无需编译特性,使得实时计算系统可以根据要处理的数据处理任务来读取对应的目标脚本数据来处理数据,并且在数据处理任务改变以后所读取的更新后的目标脚本数据并不需要进行重新编译,就可以直接执行对应的数据处理任务,从而提升了实时计算系统的数据处理效率,降低了实时计算系统的维护成本。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (13)
1.一种数据处理方法,其特征在于,应用于实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,所述方法包括:
当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;
所述实时计算单元将所述目标脚本数据发送到所述脚本引擎;
所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述指定的存储区域包括缓存区域;所述当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据的步骤包括:
当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从所述缓存区域存储的多个脚本数据中读取目标脚本数据。
3.根据权利要求2所述的方法,其特征在于,所述当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从所述缓存区域存储的多个脚本数据中读取目标脚本数据的步骤之前还包括:
当所述实时计算系统初始化时,所述实时计算单元从持久化存储区域中读取所述多个脚本数据存储到所述缓存区域中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述实时计算单元接收到表征所述持久化存储区域中的脚本数据更新的更新信号后,从所述持久化存储区域中读取更新后的脚本数据;
获取所处缓存区域中的待覆盖脚本数据,所述待覆盖脚本数据为所述更新后的脚本数据对应的更新前的脚本数据;
使所述更新后的脚本数据覆盖所述待覆盖脚本数据。
5.根据权利要求1所述的方法,其特征在于,所述当所述实时计算单元接收到进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据的步骤包括:
所述实时计算单元从所述任务指令中获取参考脚本标识;
将所述参考脚本标识与所述指定的存储区域存储的多个脚本标识进行匹配,其中,所述指定的存储区域中每个脚本标识对应有一个脚本数据,且不同的脚本标识所对应的脚本数据可执行的数据处理内容不同;
将与所述参考脚本标识匹配的脚本标识所对应的脚本数据作为目标脚本数据。
6.根据权利要求1所述的方法,其特征在于,所述脚本数据对应有脚本内容触发条件;所述实时计算单元将所述目标脚本数据发送到所述脚本引擎的步骤包括:
所述实时计算单元检测到满足所述目标脚本数据对应的脚本触发条件时,将所述目标脚本数据发送到所述脚本引擎。
7.一种数据处理方法,其特征在于,应用于信息系统,所述信息系统包括消息队列以及实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,所述方法包括:
当接收到所述消息队列推送的进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;
所述实时计算单元将所述目标脚本数据发送到所述脚本引擎;
所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
8.根据权利要求7所述的方法,其特征在于,所述信息系统还包括配置系统,所述配置系统设置有配置界面;
所述当接收到所述消息队列推送的进行数据处理的任务指令时,所述实时计算单元从指定的存储区域读取目标脚本数据的步骤包括:
当接收到所述消息队列推送的进行数据处理的任务指令时,所述实时计算单元从指定的存储区域中的多个脚本数据中读取目标脚本数据;
所述方法还包括:
响应于在所述配置界面的脚本数据编辑操作,生成与所述脚本数据编辑操作对应的更新后的脚本数据;
获取所处指定的存储区域中待覆盖脚本数据,所述待覆盖脚本数据为所述更新后的脚本数据对应的更新前的脚本数据;
使所述更新后的脚本数据覆盖所述待覆盖脚本数据。
9.一种实时计算系统,其特征在于,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到,所述实时计算单元包括触发模块以及分发模块;
所述分发模块,用于当接收到进行数据处理的任务指令时,向所述触发模块转发所述进行数据处理的任务指令;
所述触发模块,用于接收到所述任务指令时,从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;将所述目标脚本数据发送到所述脚本引擎;
所述脚本引擎运行所述目标脚本数据,对所述任务指令所指定的数据进行处理。
10.根据权利要求9所述的实时计算系统,其特征在于,所述指定的存储区域包括缓存区域,所述实时计算单元还包括用于进行数据缓存处理的缓存模块;所述触发模块,具体用于当所述实时计算单元接收到进行数据处理的任务指令时,触发所述缓存模块从所述缓存区域存储的多个脚本数据中读取目标脚本数据,并返回给所述触发模块。
11.根据权利要求9所述的实时计算系统,其特征在于,所述实时计算单元,还包括刷新模块;
所述刷新模块,用于当所述实时计算系统初始化时,从持久化存储区域中读取所述多个脚本数据发送给所述缓存模块,以便所述缓存模块存储到所述缓存区域中。
12.根据权利要求11所述的实时计算系统,其特征在于,
所述分发模块,还用于接收到表征所述持久化存储区域中的脚本数据更新的更新信号后,将所述更新信号转发给所述刷新模块;
所述刷新模块,用于从所述持久化存储区域中读取更新后的脚本数据;触发所述所处缓存模块缓存区域所述缓存区域中的待覆盖脚本数据,所述待覆盖脚本数据为所述更新后的脚本数据对应的更新前的脚本数据;使缓存模块用所述更新后的脚本数据覆盖所述待覆盖脚本数据。
13.一种信息系统,其特征在于,所述信息系统包括消息队列以及实时计算系统,所述实时计算系统包括实时计算单元以及脚本引擎,所述实时计算单元为静态语言编译得到;
所述消息队列,用于接收数据源发送的待处理的数据,并生成携带所述待处理的数据的任务指令;
所述实时计算单元,用于当接收到所述消息队列推送的进行数据处理的任务指令时,从指定的存储区域读取目标脚本数据,所述目标脚本数据为执行所述任务指令的脚本数据,所述目标脚本数据在被运行前无需编译;
所述实时计算单元,还用于将所述目标脚本数据发送到所述脚本引擎;
所述脚本引擎,用于运行所述目标脚本数据,以便对所述待处理的数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910471262.9A CN110347399B (zh) | 2019-05-31 | 2019-05-31 | 数据处理方法、实时计算系统以及信息系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910471262.9A CN110347399B (zh) | 2019-05-31 | 2019-05-31 | 数据处理方法、实时计算系统以及信息系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347399A true CN110347399A (zh) | 2019-10-18 |
CN110347399B CN110347399B (zh) | 2023-06-06 |
Family
ID=68174162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910471262.9A Active CN110347399B (zh) | 2019-05-31 | 2019-05-31 | 数据处理方法、实时计算系统以及信息系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347399B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381830A (zh) * | 2020-03-10 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 程序中的数据请求处理方法、装置和计算机设备 |
CN111784353A (zh) * | 2020-07-02 | 2020-10-16 | 北京白龙马云行科技有限公司 | 实时特征计算方法、订单风险预测方法、装置及订单系统 |
CN112148270A (zh) * | 2020-08-12 | 2020-12-29 | 珠海伟诚科技股份有限公司 | 实时计算和数据交互方法、系统及介质 |
CN113641421A (zh) * | 2021-08-18 | 2021-11-12 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
WO2022028220A1 (zh) * | 2020-08-06 | 2022-02-10 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
CN114638689A (zh) * | 2022-03-21 | 2022-06-17 | 北京自如信息科技有限公司 | 一种信用信息生成方法、装置、系统和电子设备 |
WO2022257710A1 (zh) * | 2021-06-11 | 2022-12-15 | 京东科技控股股份有限公司 | 安卓系统下的编译方法、终端和管理系统平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736943A (zh) * | 2012-06-12 | 2012-10-17 | 电子科技大学 | 一种嵌入式浏览器引擎动态编译执行方法 |
CN103092817A (zh) * | 2013-01-18 | 2013-05-08 | 五八同城信息技术有限公司 | 一种基于脚本引擎的数据采集方法和装置 |
US20130339841A1 (en) * | 2012-06-14 | 2013-12-19 | Open Text S.A. | Systems and methods of a script generation engine |
CN106681781A (zh) * | 2015-11-05 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 实时计算业务的实现方法和系统 |
-
2019
- 2019-05-31 CN CN201910471262.9A patent/CN110347399B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736943A (zh) * | 2012-06-12 | 2012-10-17 | 电子科技大学 | 一种嵌入式浏览器引擎动态编译执行方法 |
US20130339841A1 (en) * | 2012-06-14 | 2013-12-19 | Open Text S.A. | Systems and methods of a script generation engine |
CN103092817A (zh) * | 2013-01-18 | 2013-05-08 | 五八同城信息技术有限公司 | 一种基于脚本引擎的数据采集方法和装置 |
CN106681781A (zh) * | 2015-11-05 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 实时计算业务的实现方法和系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381830A (zh) * | 2020-03-10 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 程序中的数据请求处理方法、装置和计算机设备 |
CN111784353A (zh) * | 2020-07-02 | 2020-10-16 | 北京白龙马云行科技有限公司 | 实时特征计算方法、订单风险预测方法、装置及订单系统 |
CN111784353B (zh) * | 2020-07-02 | 2024-01-30 | 北京白龙马云行科技有限公司 | 实时特征计算方法、订单风险预测方法、装置及订单系统 |
WO2022028220A1 (zh) * | 2020-08-06 | 2022-02-10 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
CN112148270A (zh) * | 2020-08-12 | 2020-12-29 | 珠海伟诚科技股份有限公司 | 实时计算和数据交互方法、系统及介质 |
CN112148270B (zh) * | 2020-08-12 | 2024-05-14 | 珠海伟诚科技股份有限公司 | 实时计算和数据交互方法、系统及介质 |
WO2022257710A1 (zh) * | 2021-06-11 | 2022-12-15 | 京东科技控股股份有限公司 | 安卓系统下的编译方法、终端和管理系统平台 |
CN113641421A (zh) * | 2021-08-18 | 2021-11-12 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
CN114638689A (zh) * | 2022-03-21 | 2022-06-17 | 北京自如信息科技有限公司 | 一种信用信息生成方法、装置、系统和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110347399B (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347399A (zh) | 数据处理方法、实时计算系统以及信息系统 | |
CN107391114B (zh) | 页面可视化渲染方法及装置 | |
CN103718177B (zh) | 通过云计算增强的网络浏览 | |
US10453165B1 (en) | Computer vision machine learning model execution service | |
CN108369591B (zh) | 用于缓存和参数化ir的系统和方法 | |
CN112036577B (zh) | 基于数据形式的应用机器学习的方法、装置和电子设备 | |
CN108008944A (zh) | 规则引擎响应方法及系统、规则引擎、服务终端、存储器 | |
CN109754072B (zh) | 网络离线模型的处理方法、人工智能处理装置及相关产品 | |
CN110674408A (zh) | 业务平台、训练样本的实时生成方法及装置 | |
CN113722020B (zh) | 接口调用方法、装置和计算机可读存储介质 | |
CN110991871A (zh) | 风险监测方法、装置、设备与计算机可读存储介质 | |
CN112148343A (zh) | 规则发布方法、装置及终端设备 | |
CN108595178B (zh) | 一种基于hook的数据采集方法、装置及设备 | |
CN112906206A (zh) | 数字孪生模型构建方法和装置 | |
CN111857803A (zh) | 页面更新方法、装置、服务器及存储介质 | |
CN109191078A (zh) | 一种流程业务建模方法、装置及设备 | |
CN117289929B (zh) | 一种插件框架、插件及数据处理方法、装置及电子设备 | |
CN111160638A (zh) | 一种转化预估方法及装置 | |
CN110362317B (zh) | 一种代码转换方法、装置和存储介质 | |
CN112711542A (zh) | 一种用于手机客户端进行测试环境切换的方法 | |
CN114025027A (zh) | 数据传输脚本的运行方法、装置、存储介质和电子装置 | |
CN110209565A (zh) | 一种元数据模型调试方法及其装置 | |
CN115344786A (zh) | 一种云资源推荐系统、方法、设备及存储介质 | |
CN113495723B (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN115292641A (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 |