数据处理方法及其相关设备技术

技术编号:39438172 阅读:10 留言:0更新日期:2023-11-19 16:21
本申请涉及一种数据处理方法及其相关设备,该方法包括:接收用于描述数据处理逻辑的字符串序列;确定构成字符串序列的字符串,以根据字符串确定构成数据处理逻辑的操作步骤;通过预先在内存中分配的存储空间存储字符串和用于描述操作步骤的执行码,并获得指向执行码的存储位置的第一指针,和指向字符串的存储位置的第二指针;基于第一指针和第二指针生成数据处理逻辑对应的中间码,以通过在内存运行中间码对数据集进行处理。本申请解决了目前的计算引擎无法在具有数据处理需求的轻量级边缘节点上运行,且不依赖计算引擎直接对数据进行处理会导致边缘节点相关产品很难使用的问题。题。题。

【技术实现步骤摘要】
数据处理方法及其相关设备


[0001]本申请涉及计算机
,特别是涉及数据处理方法及其相关设备。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。不应以此处的描述包括在本部分中就承认是现有技术。
[0003]物联网场景中,边缘计算是一种在物理上靠近数据生成的位置处理数据的方法,即事物、信息、数据所在的现场区域。物联网设备运行过程会产生大量的数据,在这些产生的数据中,存在大量重复、失效、价值低的数据,为了减少数据上云的数据量或提高数据处理实时性,有时需要在靠近数据生成的位置如边缘节点对其进行处理,边缘节点指在靠近用户的网络边缘侧构建的服务平台,提供存储、计算、网络等资源,将部分关键服务应用下沉到接入网络边缘,以减少网络传输和多级转发带来的宽度和时延损耗,物联网中的边缘节点包括边缘网关、边缘控制器、边缘服务器等边缘侧产品。
[0004]在靠近数据生成的位置对实时数据进行处理时,为了提高实时数据处理服务的实时性、可靠性,物联网场景中用于执行边缘计算的边缘节点上会有很多计算需求,举个例子:通过边缘网关给工业生产中的锅炉进行控温,边缘网关会每秒采集温度,并对锅炉进行燃料供给实现温度控制。为了实现锅炉温度的灵活控制以达到节能或其他工艺要求,对锅炉根据温度进行反控的数据处理逻辑是可以编排的,如基于某种工艺调参得到的公式。最后,对于云端来说,频繁更新的温度实时数据是无意义的,也浪费了带宽、云存储等资源,所以温度实时数据回传云端也需要边缘节点来进行聚合处理,聚合处理得到的温度数据可能是平均温度,可能是某时间段最高或最低的温度,也或者是抽样得到的温度。
[0005]为提高边缘节点处理实时数据的实时性,可在边缘节点上部署实时数据计算引擎。然而,虽然现有的用于处理实时数据的计算引擎有很多,如流式计算引擎:Storm计算引擎、Spark Streaming计算引擎、Flink计算引擎等,但上述计算引擎都适用于数据量大、计算复杂的云端场景,带来的结果是对设备硬件要求特别高、资源开销特别大、甚至需要进行分布式架构部署,无法在具有数据处理需求的轻量级边缘节点上运行。且由于用户输入的数据处理逻辑是文本的,比如:“max(a)”,“a+b”等数据处理逻辑,在不依赖计算引擎直接对数据进行处理的情况下,边缘节点的处理器运行数据处理逻辑时需要将数据处理逻辑编译为二进制的机器码,通过编译器将文本形式的数据处理逻辑编译成机器码需要用户进行编程、编译、调试、运行等操作,会导致边缘节点相关产品很难使用。因此,目前物联网场景中采集的大量实时数据仍需上传云端处理,不仅增加了数据上云的数据量,导致上行数据带宽要求较高,且难以保障实时数据的处理时效,因此,目前亟需一种能够在轻量级物联网边缘设备上运行的计算引擎,以减少数据上云的数据量以及提高数据处理实时性。

技术实现思路

[0006]本专利技术实施例提供的数据处理方法及其相关设备,至少解决目前的计算引擎无法
在具有数据处理需求的轻量级边缘节点上运行,且不依赖计算引擎直接对数据进行处理会导致边缘节点相关产品很难使用的问题。
[0007]根据本专利技术的一个方面,提供了一种数据处理方法,所述方法包括:
[0008]接收用于描述数据处理逻辑的字符串序列,所述数据处理逻辑为对待处理数据集进行处理的计算逻辑;
[0009]确定构成所述字符串序列的字符串,以根据所述字符串确定构成所述数据处理逻辑的操作步骤,其中,所述数据集中的数据为所述字符串序列中字符串类型属于变量的字符串的取值;
[0010]通过预先在内存中分配的存储空间存储所述字符串和用于描述所述操作步骤的执行码,并获得指向所述执行码的存储位置的第一指针,和指向所述字符串的存储位置的第二指针;
[0011]基于所述第一指针和所述第二指针生成所述数据处理逻辑对应的中间码,以通过在所述内存运行所述中间码对所述数据集进行处理。
[0012]在其中的一些实施例中,根据所述字符串确定构成所述数据处理逻辑的操作步骤的步骤包括:
[0013]确定所述字符串所属的所述字符串类型,并确定所述字符串在所述字符串序列中的运算顺序和位置,其中,所述字符串类型包括所述变量、和/或常量、和/或运算符、和/或函数;
[0014]根据所述字符串所属的所述字符串类型,以及所述运算顺序和位置,确定构成所述数据处理逻辑的所述操作步骤,其中,所述操作步骤包括取属于变量的字符串、和/或取属于常量的字符串、和/或取属于运算符的字符串、和/或取属于运算符或函数的字符串并计算。
[0015]在其中的一些实施例中,根据所述字符串确定构成所述数据处理逻辑的操作步骤时,所述方法还包括:
[0016]根据所述字符串的所述运算顺序和位置确定所述操作步骤的执行顺序,其中,所述第一指针按所述执行顺序从上一个待执行的所述操作步骤指向下一个待执行的所述操作步骤,所述第二指针从执行上一个所述操作步骤时需读取的所述字符串指向执行下一个所述操作步骤时需读取的所述字符串,以获得基于所述第一指针和所述第二指针生成的所述中间码。
[0017]在其中的一些实施例中,通过预先在内存中分配的存储空间存储所述字符串的步骤包括:
[0018]在所述存储空间对属于同一字符串类型的所述字符串进行分类存储,分类存储时,将属于常量的所述字符串存储于预先在所述存储空间划定的第一存储区,将属于运算符和函数的所述字符串存储于预先在所述存储空间划定的第二存储区,并获得指向属于常量的所述字符串的存储位置的常量指针,以及,指向属于运算符和函数的所述字符串的存储位置的函数指针,则所述第二指针包括所述常量指针和所述函数指针,且所述常量指针和所述函数指针均从执行上一个所述操作步骤时需读取的所述字符串指向执行下一个所述操作步骤时需读取的所述字符串,以获得基于所述第一指针、所述常量指针和所述函数指针生成的所述中间码。
[0019]在其中的一些实施例中,通过在所述内存运行所述中间码对所述数据集进行处理之前,所述方法还包括:
[0020]将属于变量的所述字符串对应的所述数据集中的所述数据,存储于预先在所述存储空间划定的第三存储区,并获得指向所述数据的存储位置的变量指针,其中,所述变量指针从上一个所述操作步骤执行所需的属于变量的所述字符串对应的所述数据指向下一个所述操作步骤执行所需的属于变量的所述字符串对应的所述数据;
[0021]则,通过在所述内存运行所述中间码对所述数据集进行处理的步骤包括:
[0022]基于所述第一指针依序读取各个所述执行码,并确定执行各个所述执行码描述的所述操作步骤时需读取的字符串,以根据需读取的所述字符串,基于所述常量指针从所述第一存储区读取属于常量的所述字符串,并将属于常量的所述字符串压入预先确定的堆栈中,和/或基于所述变量指针从所述第三存储区读取所述数据,并将所述数据压入所述堆栈中;
[0023]在基于所述第一指针读取的所述操作步骤为所述取属于运算符或函数的字符串并计算时,基于所述函数指针从所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,所述方法包括:接收用于描述数据处理逻辑的字符串序列,所述数据处理逻辑为对待处理数据集进行处理的计算逻辑;确定构成所述字符串序列的字符串,以根据所述字符串确定构成所述数据处理逻辑的操作步骤,其中,所述数据集中的数据为所述字符串序列中字符串类型属于变量的字符串的取值;通过预先在内存中分配的存储空间存储所述字符串和用于描述所述操作步骤的执行码,并获得指向所述执行码的存储位置的第一指针,和指向所述字符串的存储位置的第二指针;基于所述第一指针和所述第二指针生成所述数据处理逻辑对应的中间码,以通过在所述内存运行所述中间码对所述数据集进行处理。2.根据权利要求1所述的方法,其中,根据所述字符串确定构成所述数据处理逻辑的操作步骤的步骤包括:确定所述字符串所属的所述字符串类型,并确定所述字符串在所述字符串序列中的运算顺序和位置,其中,所述字符串类型包括所述变量、和/或常量、和/或运算符、和/或函数;根据所述字符串所属的所述字符串类型,以及所述运算顺序和位置,确定构成所述数据处理逻辑的所述操作步骤,其中,所述操作步骤包括取属于变量的字符串、和/或取属于常量的字符串、和/或取属于运算符的字符串、和/或取属于运算符或函数的字符串并计算。3.根据权利要求2所述的方法,其中,根据所述字符串确定构成所述数据处理逻辑的操作步骤时,所述方法还包括:根据所述字符串的所述运算顺序和位置确定所述操作步骤的执行顺序,其中,所述第一指针按所述执行顺序从上一个待执行的所述操作步骤指向下一个待执行的所述操作步骤,所述第二指针从执行上一个所述操作步骤时需读取的所述字符串指向执行下一个所述操作步骤时需读取的所述字符串,以获得基于所述第一指针和所述第二指针生成的所述中间码。4.根据权利要求2至3任一所述的方法,其中,通过预先在内存中分配的存储空间存储所述字符串的步骤包括:在所述存储空间对属于同一字符串类型的所述字符串进行分类存储,分类存储时,将属于常量的所述字符串存储于预先在所述存储空间划定的第一存储区,将属于运算符和函数的所述字符串存储于预先在所述存储空间划定的第二存储区,并获得指向属于常量的所述字符串的存储位置的常量指针,以及,指向属于运算符和函数的所述字符串的存储位置的函数指针,则所述第二指针包括所述常量指针和所述函数指针,且所述常量指针和所述函数指针均从执行上一个所述操作步骤时需读取的所述字符串指向执行下一个所述操作步骤时需读取的所述字符串,以获得基于所述第一指针、所述常量指针和所述函数指针生成的所述中间码。5.根据权利要求4所述的方法,其中,通过在所述内存运行所述中间码对所述数据集进行处理之前,所述方法还包括:将...

【专利技术属性】
技术研发人员:于立晓
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1