数据处理方法、装置以及计算机可读存储介质与流程

文档序号:32768052发布日期:2022-12-31 11:26阅读:36来源:国知局
数据处理方法、装置以及计算机可读存储介质与流程

1.本发明涉及计算机技术领域,具体提供一种数据处理方法、装置以及计算机可读存储介质。


背景技术:

2.数字化项目实施过程中,业务方的数据多为复合异构数据,既包括文档类数据(word/pdf/excel等),也包括多媒体数据(视频/音频/图片),还包括流式数据(系统日志/物联网数据/用户访问记录等),不同数据的形式、规模、处理方法各异。
3.传统的数据处理方案需要针对不同数据来源、数据类型的数据给予垂直性的技术栈进行数据分析治理,如针对多媒体感知类数据(如摄像头采集的视频数据、抓拍图片数据)使用深度学习ai(人工智能)模型、gpu(图形处理模块)算力进行特征提取;而对于结构化数据采用大数据存储与分析工具进行数据的结构化计算,两套技术栈各自有独立的编程模型范式,相互之间无法复用,整体方案复杂。系统间进行数据交换需要做额外传输交换动作,资源消耗大。
4.另外,传统方案中使用数据仓库,其采用的是计算与存储结合的模式,即计算引擎与数据存储紧密结合,该模式由于是本地化数据存取访问,可以达到最佳计算性能效率,但在大规模甚至超大规模数据量级上需要进行分布式扩容时由于计算引擎和数据存储绑定,扩容时会带来数据迁移,很难进行计算资源的弹性扩容。
5.因此,需要一种新的数据处理方案,破解传统方案中存在的技术栈割裂、难以弹性扩容的技术问题。


技术实现要素:

6.为了克服上述缺陷,提出了本发明,以提供一种具有统一计算、适于弹性扩容的数据处理方法、装置以及计算机可读存储介质。
7.在第一方面,本发明提供一种数据处理方法,所述方法包括:获取用户提交的数据处理请求;根据所述数据处理请求,生成数据处理任务;将所述数据处理任务发送至具有用于处理所述数据处理任务的计算引擎的计算节点;调用所述计算引擎,从数据湖中获取所述数据处理任务使用的数据并执行所述数据处理任务;从所述计算节点获取所述数据处理任务的数据处理结果,将所述数据处理结果返回给所述用户。
8.优选地,前述的数据处理方法,所述数据处理请求为sql语句,“根据所述数据处理请求,生成数据处理任务”的步骤包括:解析所述数据处理请求对应的sql语句得到语法树,根据所述语法树生成sql执行计划,根据所述sql执行计划生成所述数据处理任务。
9.优选地,前述的数据处理方法,在“根据所述sql执行计划生成所述数据处理任务”的步骤之前,还包括:根据预设的多个计算节点的分布情况,对所述sql执行计划进行优化。
10.优选地,前述的数据处理方法,在“将所述数据处理任务发送至具有用于处理所述数据处理任务的计算引擎的计算节点”的步骤之前,还包括:根据所述数据处理任务的类
型,查找具有用于处理所述类型数据处理任务的所述计算节点。
11.优选地,前述的数据处理方法,在所述数据处理任务的类型为ai解析任务时,所述计算引擎为ai计算引擎。
12.优选地,前述的数据处理方法,在所述数据处理任务的类型为sql执行任务时,所述计算引擎为sql执行引擎。
13.优选地,前述的数据处理方法,所述数据处理任务为多个,所述计算节点为多个,“从所述计算节点获取所述数据处理任务的数据处理结果”的步骤还包括:对来自多个计算节点的数据处理结果进行整合。
14.在第二方面,本发明提供一种数据处理装置,所述装置包括:请求获取模块,获取用户提交的数据处理请求;任务生成模块,根据所述数据处理请求,生成数据处理任务;任务发送模块,将所述数据处理任务发送至具有用于处理所述数据处理任务的计算引擎的计算节点;任务执行模块,调用所述计算引擎,从数据湖中获取所述数据处理任务使用的数据并执行所述数据处理任务;结果获取模块,从所述计算节点获取所述数据处理任务的数据处理结果,将所述数据处理结果返回给所述用户。
15.在第三方面,提供一种控制装置,该控制装置包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述数据处理方法的技术方案中任一项技术方案所述数据处理方法。
16.在第四方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述数据处理方法的技术方案中任一项技术方案所述的上述数据处理方法。
17.本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
18.本发明的技术方案中,与现有技术方案不同的是,对计算和存储进行了分离,计算依赖于部署在多个计算节点上的计算引擎,而存储依赖于统一汇聚存储多种数据的数据湖,本发明的技术方案提供了统一的数据处理过程,即在接收用户的数据处理请求时,生成数据处理任务,并发送至具有能够处理该任务的计算引擎的计算节点,该计算引擎从数据湖中获取任务使用数据并进行数据处理,产生结果后返回给用户,统一的数据处理过程避免产生技术栈割裂的情况,而计算和存储分离的机制确保了更容易对计算和存储能力进行扩容。
附图说明
19.参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本发明的保护范围组成限制。其中:
20.图1是根据本发明的一个实施例的数据处理方法的流程图;
21.图2是根据本发明的一个实施例的数据处理方法的流程图;
22.图3是根据本发明的一个实施例的数据处理方法中的工作流程图。
具体实施方式
23.下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
24.在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“a和/或b”表示所有可能的a与b的组合,比如只是a、只是b或者a和b。术语“至少一个a或b”或者“a和b中的至少一个”含义与“a和/或b”类似,可以包括只是a、只是b或者a和b。单数形式的术语“一个”、“这个”也可以包含复数形式。
25.如图1所示,本发明的一个实施例中提供一种数据处理方法,该方法包括:
26.步骤s110,获取用户提交的数据处理请求。
27.本实施例中,对用户请求处理的内容、方式不进行限制。
28.步骤s120,根据数据处理请求,生成数据处理任务。
29.步骤s130,将数据处理任务发送至具有用于处理数据处理任务的计算引擎的计算节点。
30.本实施例中,计算节点有多个,可部署不同的计算引擎,以用于处理不同的数据处理任务。
31.步骤s140,调用计算引擎,从数据湖中获取数据处理任务使用的数据并执行数据处理任务。
32.本实施例中,以数据湖作为存储基座,按照异构数据的特性与使用场景适配整合不同的存储方案,可进行分布式弹性扩容,对数据使用方提供统一访问管理,解决异构数据的统一存储管理问题。本实施例中,数据湖适配对接不同的存储框架,包括并不限于本地文件、对象存储、hdfs、nas等,按照不同存储的优势特点合理规划数据的存储介质与存储形态,并提供统一的文件访问入口。本实施例中,对传统数仓架构改造实现了存算分离,数据存储与数据计算可以按照需要各自独立弹性扩容,并按照数据类型与使用场景引入分级缓存机制,在数据存储与使用成本上取得平衡。
33.步骤s150,从计算节点获取数据处理任务的数据处理结果,将数据处理结果返回给用户。
34.本实施例的技术方案,对计算和存储进行了分离,计算依赖于部署在多个计算节点上的计算引擎,而存储依赖于统一汇聚存储多种数据的数据湖,本实施例提供了统一的数据处理过程,即在接收用户的数据处理请求时,生成数据处理任务,并发送至具有能够处理该任务的计算引擎的计算节点,该计算引擎从数据湖中获取任务使用数据并进行数据处理,产生结果后返回给用户,统一的数据处理过程避免产生技术栈割裂的情况,而计算和存储分离的机制确保了更容易对计算和存储能力进行扩容。
35.如图2所示,本发明的一个实施例中提供一种数据处理方法,该方法包括:
36.步骤s210,获取用户提交的数据处理请求。
37.具体地,该数据处理请求为sql语句,以业界通用成熟的sql语言作为统一的数据计算查询语言。
38.步骤s220,解析数据处理请求对应的sql语句得到语法树,根据语法树生成sql执
行计划。
39.步骤s230,根据预设的多个计算节点的分布情况,对sql执行计划进行优化。
40.本实施例中,多个计算节点的分布情况包括了每个计算节点的工作状态、执行任务数量以及资源占用等。基于计算节点分布情况对对sql执行计划进行优化,有利于提升sql的执行效率或降低资源占用。
41.步骤s240,根据sql执行计划生成数据处理任务。
42.本实施例中,将异构数据计算任务封装为统一的sql语句执行任务,可以充分利用sql成熟的生态快速构建业务流程实现而无需了解ai模型底层算法执行细节,解决异构数据的统一计算问题。
43.步骤s250,根据数据处理任务的类型,查找具有用于处理类型数据处理任务的计算节点,其中,数据处理任务为多个,计算节点为多个。
44.本实施例中,根据数据处理请求生成多个数据处理任务,并根据多个数据处理任务的类型,将多个数据处理任务分别发送至具有能够对其进行处理的计算引擎的多个计算节点。
45.其中,在数据处理任务的类型为ai解析任务时,计算引擎为ai计算引擎;在数据处理任务的类型为sql执行任务时,计算引擎为sql执行引擎。
46.本实施例中,将异构计算引擎(ai计算引擎与sql执行引擎)进行sql执行器封装,接收基于sql执行计划生成的任务,执行得到结果。本实施例中,可以将不同ai计算引擎以插件形式进行封装后,挂载计算节点上,提供sql原生调用函数入口,以调用计算引擎处理sql任务并返回结果。
47.步骤s260,将数据处理任务发送至具有用于处理数据处理任务的计算引擎的计算节点。
48.步骤s270,调用计算引擎,从数据湖中获取数据处理任务使用的数据并执行数据处理任务。
49.本实施例中,数据湖适配接入不同存储介质,并提供统一的数据访问入口。本实施例中,在计算节点上挂载数据访问入口,供计算引擎从数据湖中访问任务所需数据。本实施例中,还可以在计算节点上缓存常用数据,通过缓存技术提供本地化数据访问效率,并对数据访问权限进行控制。
50.步骤s280,从计算节点获取数据处理任务的数据处理结果,对来自多个计算节点的数据处理结果进行整合,将数据处理结果返回给用户。
51.本实施例中,由于使用多个计算节点的计算引擎来执行数据处理任务,所以需要对多个计算节点返回的数据进行整合,形成完整结果再提供给用户。本实施例中,在接收sql语句后,进行了sql语句解析、执行计划生成与优化、执行计划分派与结果回收整合。
52.本实施例的技术方案,提供了一套能融合多源异构数据的统一汇集、统一存储、统一计算、存算分离的分布式架构方案,较好的解决了传统方案中ai与大数据技术栈割裂、整体架构复杂、难以弹性扩容的问题。
53.本实施例技术方案的一个具体实施方式如图3所示:
54.步骤s310,sql解析。接受发起方提交的sql执行语句,对sql语句进行语法校验,生成ast语法树。
55.步骤s320,sql执行计划生成。对sql ast语法树进行语义解析,翻译为对应的sql执行计划。
56.步骤s330,执行计划优化。按照当前计算节点分布情况对执行计划进行优化,包括谓词下推、列裁剪等,生成最终的执行计划。
57.步骤s340,执行计划分发。将执行计划进行分解,按照子任务计算类别分发到相应的计算节点上,如属于ai解析任务则分发到ai计算引擎节点上,如属于sql执行任务则分发到sql执行引擎所在节点上,等待各子任务执行结果上报。
58.步骤s350,ai解析任务执行。调用指定的ai计算引擎进行数据计算,得到结果以sql执行结果形式进行封装后返回。
59.步骤s360,sql计算任务执行。按照执行计划中划分的sql计算子任务进行sql执行动作,得到结果后返回。
60.步骤s370,sql结果整合。整合所有子任务执行结果,根据执行计划步骤s340-s370可能重复多次,得到最终结果。
61.步骤s380,sql结果返回。将sql最终执行结果返回给请求发起方,结束流程。
62.调用ai引擎进行非结构化数据处理的任务在传统上是在业务应用层进行调用,结构化处理结果与其他结构化数据的整合处理计算也是在业务应用层实现,不仅需要同时考虑两条技术栈不同的调用处理逻辑,而且在应用层实现需要有较多的数据传输成本,效率不高,本实施例的技术方案将非结构化数据处理任务封装为普通sql查询任务,并支持在数据库底层与其他结构化数据表进行统一计算查询,充分利用了数据库计算实例的算力资源与既有分布式调度框架,减少了数据传输的消耗,效率更高,并对请求调用方提供了统一的sql查询接口,减少了跨技术栈带来的编程心智负担。
63.本领域技术人员能够理解的是,本发明实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
64.进一步,本发明还提供了一种控制装置。在根据本发明的一个控制装置实施例中,控制装置包括处理器和存储装置,存储装置可以被配置成存储执行上述方法实施例的数据处理方法的程序,处理器可以被配置成用于执行存储装置中的程序,该程序包括但不限于执行上述方法实施例的数据处理方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该控制装置可以是包括各种电子设备形成的控制装置设备。
65.进一步,本发明还提供了一种计算机可读存储介质。在根据本发明的一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的数
据处理方法的程序,该程序可以由处理器加载并运行以实现上述数据处理方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机可读存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。
66.进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的装置的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。
67.本领域技术人员能够理解的是,可以对装置中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。
68.至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1