CN115857918A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115857918A CN115857918A CN202211690214.7A CN202211690214A CN115857918A CN 115857918 A CN115857918 A CN 115857918A CN 202211690214 A CN202211690214 A CN 202211690214A CN 115857918 A CN115857918 A CN 115857918A
- Authority
- CN
- China
- Prior art keywords
- task
- processing request
- data
- processing system
- task processing
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 68
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 472
- 238000000034 method Methods 0.000 claims abstract description 74
- 230000008569 process Effects 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 claims description 31
- 238000013500 data storage Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 9
- 239000000306 component Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013499 data model Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000003638 chemical reducing agent Substances 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000282813 Aepyceros melampus Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、装置、电子设备及存储介质,涉及数据处理技术领域。该方法通过预先定义的接口描述语言编写任务处理请求,通过对任务处理请求中关键字段的解析,可确定任务处理请求所对应的目标处理系统,从而将任务处理请求转换为目标处理系统所支持的执行代码,通过目标处理系统运行执行代码以执行任务处理请求,并生成任务执行结果。本方法通过预先定义的接口描述语言编写任务处理请求,使得不同的用户仅需学习所定义的统一的接口描述语言即可实现对数据处理系统中各目标处理系统的调用,从而大大的降低了用户的学习成本,使得数据处理系统的学习门槛更低,提高了数据处理系统的通用性和使用性能。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
数据存储和数据计算是数据处理发展过程中的重要技术,强大的数据处理系统均是基于数据存储系统和数据计算系统而运行的,从而实现数据的各方面处理需求。
通常数据存储系统和数据计算系统又分别包括多种处理引擎,以全面适配各种场景下的数据计算。但是由于不同的处理引擎其所使用的应用接口语言并不通用,这使得开发人员需要学习各种处理引擎的专用语言,导致开发人员的学习成本较高。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种数据处理方法、装置、电子设备及存储介质,以便于解决现有技术中存在的数据处理系统使用门槛较高,用户学习成本较高的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种数据处理方法,应用于数据处理系统,所述方法包括:
获取输入的任务处理请求,所述任务处理请求包括:待处理的数据、以及待执行的操作,所述任务处理请求采用预先定义的接口描述语言编写;
根据所述任务处理请求,确定所述任务处理请求对应的目标处理系统;
将所述任务处理请求转换为所述目标处理系统对应的执行代码,并提交至所述目标处理系统,并通过所述目标处理系统运行所述执行代码,生成所述任务处理请求对应的任务执行结果。
第二方面,本申请实施例还提供了一种数据处理装置,应用于数据处理系统,所述装置包括:获取模块、确定模块、执行模块;
所述获取模块,用于获取输入的任务处理请求,所述任务处理请求包括:待处理的数据、以及待执行的操作,所述任务处理请求采用预先定义的接口描述语言编写;
所述确定模块,用于根据所述任务处理请求,确定所述任务处理请求对应的目标处理系统;
所述执行模块,用于将所述任务处理请求转换为所述目标处理系统对应的执行代码,并提交至所述目标处理系统,并通过所述目标处理系统运行所述执行代码,生成所述任务处理请求对应的任务执行结果。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一方面中提供的数据处理方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的数据处理方法的步骤。
本申请的有益效果是:
本申请提供一种数据处理方法、装置、电子设备及存储介质,通过预先定义的接口描述语言编写任务处理请求,通过对任务处理请求中关键字段的解析,可确定任务处理请求所对应的目标处理系统,从而将任务处理请求转换为目标处理系统所支持的执行代码,通过目标处理系统运行执行代码以执行任务处理请求,并生成任务执行结果。本方法通过预先定义的接口描述语言编写任务处理请求,使得不同的用户仅需学习所定义的统一的接口描述语言即可实现对数据处理系统中各目标处理系统的调用,从而大大的降低了用户的学习成本,使得数据处理系统的学习门槛更低,提高了数据处理系统的通用性和使用性能。
而基于所定义的接口描述语言所实现的数据能力系统,打通了数据存储和计算能力,给运维、开发、以及使用提供了统一的视角,在性能和通用型上实现了很好的平衡。能够支持更多的数据模型,提供更加清晰的数据访问接口;将计算系统与存储系统进行了融合,无需为各类存储系统单独设计复杂的连接器,该数据处理系统同时支持数据批处理和流式处理,支持丰富的计算算子,使得用户能方便地基于现有的算子进行数据处理系统的拓展开发。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数据处理方法的流程示意图一;
图2为本申请实施例提供的数据处理方法的流程示意图二;
图3为本申请实施例提供的一种数据处理系统的架构示意图;
图4为本申请实施例提供的另一种数据处理系统的架构示意图;
图5为本申请实施例提供的数据处理方法的流程示意图三;
图6为本申请实施例提供的数据处理方法的流程示意图四;
图7为本申请实施例提供的一种数据处理装置的示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
首先,对本方案的相关背景信息进行简单说明:
数据技术按照系统分,有数据库、大数据系统等;按照处理的数据模式分,有关系型数据库、文档数据库、搜索引擎、图数据库等;按照处理时效性,有实时数据处理,离线数据处理等。围绕着数据技术,诞生了形形色色的软件,如数据库领域的MySQL、PostgreSQL、Oracle,大数据领域的Hadoop、Hive、Spark、Flink等,这些软件构建在操作系统之上,广泛地兼容各类硬件,并在过去的几十年发展中,从单机系统逐渐发展为分布式系统。
纷繁复杂的数据软件一方面解决了业务领域诸多的问题,另一方面也引入了复杂性,例如,搭建一套基于Hadoop体系的大数据系统,会涉及到十几种关键的组件(HadoopMapReduce、Yarn、Hive、Kafka、Elasticsearch、Spark、Flink等等)的部署,这些组件除了在部署的复杂度上不同,在使用方式、长期运维难度上也不尽相同,给开发人员带来了繁重的负担。例如,对于负责业务日志接入的数据开发人员,除了要用计算框架(MR(MapReduce,分布式计算的编程框架)、Hive、Spark、Flink等)提供的编程API(Application ProgrammingInterface,应用程序编程接口)编写日志解析逻辑,还需要熟悉上下游的组件的使用,譬如怎样从消息队列中读取数据,如何将解析好的数据写入到下游各类存储引擎。
纷繁复杂的数据技术除了对于专业的数据开发人员引入了不小的学习成本,也给从事算法开发、数据科学以及相关领域的工作人员带来了较高的上手门槛,例如,对于算法工程师,通常需要从各类大数据存储系统批量读取数据,并进行一定的清洗和转换,来构建出训练集和测试集,进而训练机器学习/深度学习模型,然而,他们经常在数据读取、清洗和转换的过程中就遇到了诸多使用问题,比如无法找到适合自身运行时的软件工具包SDK(Software Development Kit,软件开发工具包),或工具包上手使用难度大,不得不深入了解大数据相关的技术细节。
目前,SQL(Structured Query Language,结构化查询语言)是数据库领域被广泛使用的进行数据操作的特定目的编程语言(Domain-specific language,DSL)。传统的关系型数据库(MySQL/Oracle等)、大数据计算框架(Spark/Flink等)都支持通过SQL来编写数据处理逻辑,它们将用户输入的SQL通过解析器转化成对应的执行计划并下发到执行器进行执行,实现数据的增删改查。
SQL给数据(尤其是结构化数据)相关的工作带来了极大的便捷,无论是数据开发人员,还是数据分析师,抑或是数据科学家,都可以通过统一的SQL语言来进行数据访问,并且无需关系系统底层的细节。不同的数据库引擎(例如MySQL、SQL Serve、PostgreSQL等)通过实现SQL接口,显著降低了用户的上手门槛,用户无需专门学习某款数据库系统专用的DSL语言。
但是,随着大数据存储技术的成熟,许多支持大规模数据量的分布式NoSQL数据库并不支持通过SQL的方式来操作数据(如Cassandra,Hbase等),这些系统通常独立实现了数据访问API协议以及查询语言。随着软件系统越老越复杂,软件开发人员不得不学习不同数据库的操作方式,带来了显著的学习成本。
除了存储技术,越来越多的大数据计算引擎(如Spark、Flink)也开始使用SQL作为用户触达层的API,用户通过SQL(如SparkSQL)编写数据处理代码,这些代码被提交到大数据计算引擎翻译和执行。存储系统和计算系统虽然使用了相似的SQL语言,但支持的完备程度、使用的原语并不完全相同,例如,在大数据流式计算场景下,在原先SQL的基础上进行了比较多的拓展,和存储系统的SQL语言并不完全相同。
不论是存储系统还是计算系统,通常和一定的软硬件系统强绑定,例如有的数据库只能运行在特定的操作系统、硬件设备上(比如IBM推出的DB2),受限于软硬件环境,开发人员经常需要尝试将原有的系统迁移到新的系统,并重新系统学习新系统的运维和使用,给开发人员带来了不小的负担,而底层的数据库系统,受限于生态绑定关系,往往又不愿意将各自的系统迁移到其他软硬件平台,进一步造成了整个存储和计算生态产品丛生,相互割裂的局面。
因此,亟需一种更加通用的接口描述语言能够统一各类存储系统的访问、统一各类数据计算框架的使用、兼容各类软硬件系统。实现了通用接口描述语言的系统,不论是存储系统,还是计算系统,都能使用统一的接口描述语言来描述数据存储、计算的语义;不论是数据开发人员,还是数据科学家,都能使用统一的接口描述语言来描述数据处理逻辑,从而极大的降低数据处理系统的使用门槛。
基于此需求,本方案提出了如下解决方式:
第一、定义了一种通用的接口描述语言,在接口描述语言种中定义了数据处理的核心的关键字段,是数据处理的顶层抽象。
第二、基于所定义的通用的接口描述语言实现了一套数据能力系统,定义了一系列基本的接口,通过组件化的设计适配各类存储、计算框架。
如下通过具体的实施例对本方案的实现步骤和原理进行说明:
图1为本申请实施例提供的数据处理方法的流程示意图一;本方法可以应用于数据处理系统中,这里的数据处理系统可以是包含存储系统和计算系统的完整处理系统,既可实现数据库访问操作,例如数据的增删改查、高级操作等,也可实现复杂的数据逻辑计算,例如数据的实时计算和逻辑计算等。
如图1所示,该方法可包括:
S101、获取输入的任务处理请求,任务处理请求包括:待处理的数据、以及待执行的操作,任务处理请求采用预先定义的接口描述语言编写。
通常,在采用数据处理系统执行数据处理任务时,用户可通过向数据处理系统发送任务处理请求的方式,以告诉数据处理系统当前的数据处理需求。
可选地,任务处理请求中可包括至少两部分内容,一部分可以是待处理的数据,也即指示当前要处理的数据是什么,另一部分可以是待执行的操作,也即指示对待处理的数据执行怎样的数据操作。
本实施例中,任务处理请求可以是采用预先定义好的接口描述语言进行编写的,这样,不同的用户均只需要学习预先定义的一套接口描述语言即可实现不同的数据处理业务,无需掌握数据处理系统中各计算引擎、各数据库以及各组件的专用接口语言,从而可有效的降低用户的学习任务量,使得数据处理系统的使用门槛变低,提高了数据处理系统的使用性能和通用性。
S102、根据任务处理请求,确定任务处理请求对应的目标处理系统。
这里的目标处理系统可以指数据处理系统中的某个具体的细分系统。目标处理系统按照大类可以分为存储系统和计算系统,而存储系统和计算系统下面又包含很多细分的子系统,本实施例中的目标处理系统则是指细分的一个或多个子系统。
可对任务处理请求中的关键字段进行解析,确定任务处理请求对应的目标处理系统,确定出的目标处理系统则是用于处理任务处理请求所指示的处理任务。
S103、将任务处理请求转换为目标处理系统对应的执行代码,并提交至目标处理系统,并通过目标处理系统运行执行代码,生成任务处理请求对应的任务执行结果。
由于任务处理请求是采用预先定义的接口描述语言编写的,其并不属于目标处理系统所能识别执行的语言,那么,可先将任务处理请求转换为目标处理系统对应的执行代码,并将转换后的执行代码提交至目标处理系统中,从而在目标处理系统中运行该执行代码,以执行任务处理请求所请求的处理事项,生成任务执行结果。
在一些实施例中,这里的目标处理系统并非指单纯的一种系统,当任务处理请求所请求的处理事项较复杂时,可能需要通过数据处理系统中的多个处理系统之间相互配合以执行处理事项,那么目标处理系统可能包括多个,从而多个目标处理系统之间相互配合执行任务处理请求,并最终生成任务执行结果。
综上,本实施例提供的数据处理方法,通过预先定义的接口描述语言编写任务处理请求,通过对任务处理请求中关键字段的解析,可确定任务处理请求所对应的目标处理系统,从而将任务处理请求转换为目标处理系统所支持的执行代码,通过目标处理系统运行执行代码以执行任务处理请求,并生成任务执行结果。本方法通过预先定义的接口描述语言编写任务处理请求,使得不同的用户仅需学习所定义的统一的接口描述语言即可实现对数据处理系统中各目标处理系统的调用,从而大大的降低了用户的学习成本,使得数据处理系统的学习门槛更低,提高了数据处理系统的通用性和使用性能。
图2为本申请实施例提供的数据处理方法的流程示意图二;可选地,步骤S101中,获取输入的任务处理请求之前,可以包括:
S201、采用预设格式的语言创建语言描述关键字段,语言描述关键字段包括:命名空间、数据集、流程、任务。
可选地,可采用预设格式的语言定义适配于数据处理系统中各目标处理系统的接口描述语言,其中,可以创建语言描述关键字段,语言描述关键字段可以是数据处理的核心的关键字,是数据处理的顶层抽象。
可选地,语言描述关键字段包括了数据存储抽象和数据计算抽象,数据存储和数据计算进一步地抽象了命名空间、数据集、流程、任务等概念。
其中,任务处理请求中待处理的数据对应于命名空间关键字段及数据集关键字段,通过命名空间关键字段和数据集关键字段,可以确定出待处理的数据。
当然,也有一种情况下,待处理的数据可以是直接采用其他的字段进行指定,这种情况下待处理的数据可以直接是一个特定的数字。
任务处理请求中的待执行的操作则可对应于命名空间关键字段、流程关键字段、任务关键字段,通过命名空间、流程以及任务各关键字段,可确定出调用什么流程下的哪个具体任务来执行任务请求。
本实施例中,预设格式的语言可以为JSON语言,JSON是一种轻量级的数据交换格式(data interchange format),其内容由属性(key)和值(value)构成,JSON由于其通用性和开放型,已经成为web开发等软件开发领域最常用的数据交换格式。
当然,并不仅限于是JSON语言,也可以是python语言,当预设格式的语言选择不同时,数据处理系统中的部分组件进行适应性调整。
S202、根据各语言描述关键字段,生成接口描述语言。
可选地,基于上述所创建的语言描述关键字段,可生成接口描述语言,从而用户可根据接口描述语言种定义的各语言描述关键字段编写任务处理请求。
图3为本申请实施例提供的一种数据处理系统的架构示意图。数据处理系统可包括:数据存取抽象以及数据计算抽象,数据存取抽象用于表达存储系统中数据的增删改查以及高阶的复杂查询和处理,数据计算抽象用于表达计算系统中离线或实时的计算任务。
不论是数据存取抽象还是数据计算抽象,最上层均定义了命名空间关键字段,命名空间是逻辑上的工作空间,通过命名空间,能对数据集、元信息、权限等资源进行统一管理。例如,同一个命名空间下,可以包括若干数据集,可以包含若干数据处理流程。
针对存储系统而言,命名空间下一级还定义了数据集关键字段,数据集是用于管理数据存取的基本单元,每一个数据集都和唯一的数据源进行绑定(例如关系型数据库、分布式文件存储等),数据集存储若干数据模型一致的数据,例如,对于关系型数据库的数据集,其下存储若干数据模型(schema)一致的记录(record)。
针对计算系统而言,命名空间的下一级还定义了流程关键字段、任务关键字段。
流程是用于管理数据计算任务的基本单元,每一个流程都和唯一的计算调度引擎绑定(例如Airflow调度器、Yarn调度器等)绑定,流程下包含若干任务,例如Spark计算任务、Hive计算任务等,流程通常具有业务属性,业务上具有紧密关联的一系列数据计算任务通常会放置在同一个流程下,并形成上下依赖关系。
任务是用于进行数据计算的基本单元,每个任务都和唯一的算子进行绑定(例如Spark算子、Flink算子、Hive算子、Http算子等),每个任务一定归属于某个流程,任务通常分为短时计算任务(Short-running)和长时计算任务(Long-running)。
除了上述基本的关键字段外,数据存取抽象和数据计算抽象还包括了元数据(Metadata)、权限(Auth)等概念,例如每一个数据集都和一份元数据进行绑定,元数据描述了数据集的基本模型,又例如,命名空间和若干权限进行绑定,权限控制了用户对命名空间下数据集、流程以及任务的操作权限。
可选地,命名空间包括:命名空间的名称字段及版本字段;数据集包括:数据集的名称字段及数据集的来源字段;流程包括:流程的名称字段及流程对应的调度器的描述字段;任务包括:任务的名称字段及任务所绑定的算子字段。
接下来将结合示意性代码对各关键字段所包含的具体字段进行说明:
对于命名空间,除了基础的name名称字段,还定义了包括描述(desc),版本(version)等字段,其中描述字段是可选的,版本是必选的:
1.{
2."name":"my_namespace",
3."desc":"这是一个命名空间",
4."version"1
}
不同版本的命名空间中存储的数据存在不同,也即命名空间中的数据是不断更新的,会有多个版本,通常在不指定具体版本时,可默认选定最新版本的命名空间。
对于数据集,除了基础的name名称字段,也包括了描述、版本等信息,同时数据集还包括了source字段,这里所说的source字段也即指如下代码中所展示的engine字段,source字段和engine字段代表相同的含义,表示了这个数据集底层的存储引擎,source字段是对数据集来源的物理层面的一种叫法,而engine字段则是逻辑层面的一种叫法,下文具体描述中均将以source字段作为数据集的来源字段进行描述。
1.{
2."name":"ds1",
3."desc":"这是一个数据集",
4."version":1,
5."engine""mysql",
6."input":"task1"
}
"input":"task1"、"engine""mysql"表示名称为ds1的数据集由任务1生成并被存储至mysql数据库中。任务代表了一个数据计算任务。
对于流程,其基本结构和命名空间类似,也包括了名称、描述、版本等字段,此外流程还包括了调度器(scheduler)字段,表达了该流程采用何种调度引擎(Airflow、Yarn等):
1.{
2."name":"workflow1",
3."desc":"这是一个流程",
4."version"1,
5."scheduler":"Airflow"
6.}
不同的调度器通常适合不同的场景,例如Airflow适合于离线批处理流程,Yarn适合于大数据离线+实时混合作业流程。
流程下可以包括一系列任务,任务的字段除了基础的名称、描述、版本等字段外,还包括算子(operator)字段:
1.{
2."name":"task1",
3."desc":"这是一个任务",
4."version":1,
5."operator":"Spark"
6.}
这里任务(task)的名称(name)通常在同一个namespace+workflow下唯一,因而可以在同一个流程下不同的数据集间进行引用(source字段),不同流程下的数据集也可以构成依赖关系,只不过在这种情况下,数据集的source字段需要带上相应的workflow名称前缀,不同的命名空间下的数据集也可以构成依赖关系,只不过在这种情况下,数据集的source字段需要带上命名空间+流程的前缀。
可选地,步骤S101中,获取输入的任务处理请求,可以包括:按照接口描述语言中定义的各语言描述关键字段中的各字段,输入各字段对应的信息,生成任务处理请求。
在一些实施例中,用户可根据定义的语言描述关键字段中的各字段,在各字段中输入对应的任务相关的信息,生成任务处理请求,用户在编写生成任务处理请求后,可通过提交等操作,将任务处理请求发不出去,从而数据处理系统可接收并获取到用户输入的任务处理请求。
可选地,步骤S102中,根据任务处理请求,确定任务处理请求对应的目标处理系统,可以包括:根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
在一些实施例中,可以根据任务处理请求中数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。由于数据集是数据处理系统中的存储系统中定义的语言描述关键字段,数据集的来源字段可以确定任务处理请求调用的是数据处理系统中的存储系统,并且可以具体的确定所调用的是存储系统中的哪个存储引擎。流程是数据处理系统中的计算系统中定义的语言描述关键字段,流程对应的调度器的描述字段可以唯一的确定任务处理请求所调用的是数据处理系统中计算系统的哪个计算引擎。
从而基于数据集的来源字段和/或流程对应的调度器的描述字段可以准确的确定出任务处理请求对应的目标处理系统。
图4为本申请实施例提供的另一种数据处理系统的架构示意图。如图4所示,本实施例提供的数据处理系统可包括:解释器和至少一种目标处理系统。
在上述根据数据集的来源字段和/流程对应的调度器的描述字段确定了目标处理系统之后,如何能够保证通过任务处理请求可以对目标处理系统中相应的存储引擎、调度器以及算子能够被调用到,这就涉及到了由定义的接口描述语言到目标处理系统的转译问题,基于此,在本方案的数据处理系统中还设计了解释器,通过解释器可以将用户输入的接口描述语言翻译为目标处理系统所能够运行的执行代码,从而在目标处理系统中可以执行任务处理请求。
在一种可实现的方式中,解释器可包括:1.注册器(register)2.连接器(connector)3.代码生成器(generator)4.代码执行器(executor)5.结果收集器(collector)。
注册器面向不同的异构存储、计算系统,凡是所定义的接口描述语言所支持的存储引擎、调度器、算子均需要在注册器中注册,注册器底层依托于强一致性的中心存储(如ETCD),保证了注册过程的原子性。
连接器用来实现不同存储计算引擎的连接,例如对于存储引擎,通常需要初始化对应的连接池实例,对于计算引擎,通常需要初始化对应的计算会话。
代码生成器是解释器的核心组件,用于基于采用预先定义的接口描述语言所编写的任务处理请求生成对应目标处理系统的执行代码,这里的难点在于如何对不同的存储引擎或计算引擎进行统一。
基于此,可选地,在代码生成器中可定义一系列接口,如数据的增删改查接口,高级接口,数据计算接口等,对于不同的存储、计算引擎,需要实现对应的接口。
对于存储引擎,基础的接口可包括:Create创建、Delete删除、Update更新、Select筛选,分别代表了数据的增删改查。
存储引擎还包括了一系列高级接口,如:batch_create/delete/update/sele ct批量增删改查、aggregate聚合、group分组、order排序、count计数、slice分片、limit限制数量。
对于计算引擎,基础的接口可包括:map、reduce;分别代表大数据处理的两个典型阶段,map阶段将数据分成一个个分片,mapper在每个分片上执行对应的map操作(map可以理解为一个函数),不同的分片通常是在不同的计算节点(worker node)进行,并将结果以(key,value)元组的形式输出。Map阶段完成后,进入到reduce阶段,reduce阶段中相同的key会被分配给同一个reducer,对数据做进一步的聚合。map和reduce阶段之间,一般可能还会包括以下阶段:shuffle:将相同key的元组发送到相同的计算节点;combine:将同一个mapper函数下的数据进行归并;partition:必选,将mapper阶段的数据准备好划分给reducer。
计算引擎还包括了一系列高级的接口,如:project:对现有的数据做reshape转换,比如增减字段;match:匹配过滤操作;group:分组操作;search:全文检索;sort:排序;union:合并;flatMap:展开数组类型字段;aggregate:通用的聚合,可以传入用户自定义函数。
对于自定义聚合函数(aggregate),支持绑定(binding)到某种编程语言,如Python,但需要底层的计算引擎支持对应语言的SDK。
代码执行器用于将生成的执行代码提交到目标处理系统执行,并等待目标处理系统的返回执行结果。代码执行器采用分布式的方式实现,因为一般来讲,单个任务处理请求相互之间无依赖关系,因而可以方便地实现横向拓展。
结果收集器用于将生成的任务执行结果返回给用户,一个任务处理请求从解释到执行可能包含多个阶段,某一阶段的输出可能是另一个阶段的输入,根据任务处理请求最终输出结果的不同,任务处理请求根据内容的不同又可以分为:
Data definition(数据定义):涉及命名空间、数据集、流程、任务的创建、删除、更新和查询,也即任务处理请求中的待处理数据。
Data Manipulation(数据操作):涉及数据集的存储或计算逻辑,也即任务处理请求中的待执行操作。
目标处理系统:目标处理系统接受解释器中的代码执行器提交的代执行码,在引擎中执行对应的代码逻辑并将任务执行结果返回给代码执行器。目标处理系统按照大类可以分为存储系统和计算系统,存储系统可以分为面向联机事务处理(OLTP)的系统和面向联机分析处理(OLAP)的系统,计算系统可以分为离线批处理系统和实时计算系统。
典型的OLTP系统如:MySQL、Oracle、PostgreSQL、Hbase、Cassandra;
典型的OLAP系统如:Hive、Impala、ClickHouse、Hadoop HDFS;
典型的离线批处理系统如:Spark、Hadoop、MapReduce;
典型的实时计算系统如:Storm、Flink。
目标处理系统纷繁复杂,各有其适应的场景,通过本发明中所定义的接口描述语言进行任务处理请求的编写以及解释器对任务处理请求的翻译,能够屏蔽这些底层系统的差异和细节,对外给用户提供统一的入口。目标处理系统通过在解释器中注册,实现接口描述语言规范中定义的结构,就能够方便地使用接口描述语言提供的完备的抽象能力,这种方式能显著降低用户的使用门槛,释放数据的生产力。
基于上述对于数据处理系统的整体架构的说明。可选地,步骤S102中,根据任务处理请求,确定任务处理请求对应的目标处理系统,可以包括:通过代码执行器,根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
在通过解释器接收到任务处理请求后,可通过解释器中的代码执行器根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段来确定任务处理请求对应的目标处理系统。
图5为本申请实施例提供的数据处理方法的流程示意图三;可选地,上述步骤中,通过代码执行器,根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统,可以包括:
S501、根据数据集的来源字段,确定任务处理请求对应的数据存储引擎。
可选地,可根据数据集的来源字段,确定任务处理请求对应的为存储系统,而根据来源字段的具体信息,则可以确定任务处理请求对应的具体的数据存储引擎。
例如:来源字段为:"engine""mysql",由此可确定任务处理请求对应的为存储系统中的mysql存储引擎。
S502、根据流程对应的调度器的描述字段、以及任务所绑定的算子字段,确定任务处理请求对应的数据计算引擎。
同样的,根据流程对应的调度器的描述字段以及任务所绑定的算子字段,可确定任务请求对应的为计算系统,且可确定对应计算系统中的某个具体的数据计算引擎。
调度器主要负责把任务调度到具体的物理计算节点,并分配CPU、内存等物理资源,算子则对应了某一种具体的数据计算引擎,如Spark算子、Hive算子、Flink算子,结合调度器和算子两个信息,则可确定任务处理请求所要调用的具体的数据计算引擎。
例如:流程对应的调度器的描述字段为"scheduler":"Airflow",由此可确定任务处理请求对应的为计算系统中的Airflow调度器,而任务所绑定的算子字段为“Spark算子”,则可确定任务处理请求对应的为计算系统中的Spark算子,由此可确定任务处理请求通过Airflow调度器在所调用的物理计算节点中应用Spark算子执行任务。
S503、目标处理系统包括数据存储引擎和/或数据计算引擎。
可选地,目标处理系统则可包括上述所确定出的数据存储引擎和数据计算引擎,当数据集的来源字段为空时,确定出的目标处理系统则可仅包括数据计算引擎,而当流程对应的调度器的描述字段及算子字段为空时,则确定出的目标处理系统可仅包括数据存储引擎。
图6为本申请实施例提供的数据处理方法的流程示意图四;可选地,步骤S103中,将任务处理请求转换为目标处理系统对应的执行代码,并提交至目标处理系统,可以包括:
S601、通过代码生成器中预先定义的基础接口,将任务处理请求转换为目标处理系统对应的执行代码。
可根据任务处理请求中的待执行操作,确定待执行操作对应的基础接口,从而通过各基础接口,将任务处理请求转换为目标处理系统对应的执行代码。
S602、通过代码执行器将执行代码提交至目标处理系统。
而生成的执行代码则可通过代码执行器提交至目标处理系统,从而在目标处理系统中运行执行代码,生成任务处理请求对应的任务执行结果。
综上,本实施例提供的数据处理方法,通过预先定义的接口描述语言编写任务处理请求,通过对任务处理请求中关键字段的解析,可确定任务处理请求所对应的目标处理系统,从而将任务处理请求转换为目标处理系统所支持的执行代码,通过目标处理系统运行执行代码以执行任务处理请求,并生成任务执行结果。本方法通过预先定义的接口描述语言编写任务处理请求,使得不同的用户仅需学习所定义的统一的接口描述语言即可实现对数据处理系统中各目标处理系统的调用,从而大大的降低了用户的学习成本,使得数据处理系统的学习门槛更低,提高了数据处理系统的通用性和使用性能。
而基于所定义的接口描述语言所实现的数据能力系统,打通了数据存储和计算能力,给运维、开发、以及使用提供了统一的视角,在性能和通用型上实现了很好的平衡。能够支持更多的数据模型,提供更加清晰的数据访问接口;将计算系统与存储系统进行了融合,无需为各类存储系统单独设计复杂的连接器,该数据处理系统同时支持数据批处理和流式处理,支持丰富的计算算子,使得用户能方便地基于现有的算子进行数据处理系统的拓展开发。
下述对用以执行本申请所提供的数据处理方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图7为本申请实施例提供的一种数据处理装置的示意图,该数据处理装置实现的功能对应上述方法执行的步骤。该装置可以理解为数据处理系统,数据处理系统可以部署于计算机设备上。如图7所示,该装置可包括:获取模块710、确定模块720、执行模块730;
可选地,获取模块710,用于获取输入的任务处理请求,任务处理请求包括:待处理的数据、以及待执行的操作,任务处理请求采用预先定义的接口描述语言编写;
确定模块720,用于根据任务处理请求,确定任务处理请求对应的目标处理系统;
执行模块730,用于将任务处理请求转换为目标处理系统对应的执行代码,并提交至目标处理系统,并通过目标处理系统运行执行代码,生成任务处理请求对应的任务执行结果。
可选地,该装置还可包括:生成模块;
生成模块,用于采用预设格式的语言创建语言描述关键字段,语言描述关键字段包括:命名空间、数据集、流程、任务;
根据各语言描述关键字段,生成接口描述语言。
可选地,命名空间包括:命名空间的名称字段及版本字段;数据集包括:数据集的名称字段及数据集的来源字段;流程包括:流程的名称字段及流程对应的调度器的描述字段;任务包括:任务的名称字段及任务所绑定的算子字段。
可选地,获取模块710,具体用于按照接口描述语言中定义的各语言描述关键字段中的各字段,输入各字段对应的信息,生成任务处理请求。
可选地,确定模块720,具体用于根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
可选地,数据处理系统包括:解释器及至少一种目标处理系统,解释器包括:代码生成器及代码执行器;
确定模块720,具体用于通过代码执行器,根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
可选地,确定模块720,具体用于根据数据集的来源字段,确定任务处理请求对应的数据存储引擎;
根据流程对应的调度器的描述字段、以及任务所绑定的算子字段,确定任务处理请求对应的数据计算引擎;
目标处理系统包括数据存储引擎和/或数据计算引擎。
可选地,执行模块730,具体用于通过代码生成器中预先定义的基础接口,将任务处理请求转换为目标处理系统对应的执行代码;
通过代码执行器将执行代码提交至目标处理系统。
通过上述装置,获取模块在获取了采用预先定义的接口描述语言编写任务处理请求之后,确定模块通过对任务处理请求中关键字段的解析,可确定任务处理请求所对应的目标处理系统,从而执行模块可将任务处理请求转换为目标处理系统所支持的执行代码,通过目标处理系统运行执行代码以执行任务处理请求,并生成任务执行结果。通过预先定义的接口描述语言编写任务处理请求,使得不同的用户仅需学习所定义的统一的接口描述语言即可实现对数据处理系统中各目标处理系统的调用,从而大大的降低了用户的学习成本,使得数据处理系统的学习门槛更低,提高了数据处理系统的通用性和使用性能。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。
图8为本申请实施例提供的一种电子设备的结构示意图,包括:处理器801、存储介质802和总线803,存储介质802存储有处理器801可执行的机器可读指令,当电子设备运行如实施例中的一种数据处理方法时,处理器801与存储介质802之间通过总线803通信,处理器801执行机器可读指令,以执行以下步骤:
获取输入的任务处理请求,任务处理请求包括:待处理的数据、以及待执行的操作,任务处理请求采用预先定义的接口描述语言编写;
根据任务处理请求,确定任务处理请求对应的目标处理系统;
将任务处理请求转换为目标处理系统对应的执行代码,并提交至目标处理系统,并通过目标处理系统运行执行代码,生成任务处理请求对应的任务执行结果。
在一个可行的实施方案中,处理器801在执行获取输入的任务处理请求之前,具体用于:采用预设格式的语言创建语言描述关键字段,语言描述关键字段包括:命名空间、数据集、流程、任务;
根据各语言描述关键字段,生成接口描述语言。
在一个可行的实施方案中,命名空间包括:命名空间的名称字段及版本字段;数据集包括:数据集的名称字段及数据集的来源字段;流程包括:流程的名称字段及流程对应的调度器的描述字段;任务包括:任务的名称字段及任务所绑定的算子字段。
在一个可行的实施方案中,处理器801在执行获取输入的任务处理请求时,具体用于:按照接口描述语言中定义的各语言描述关键字段中的各字段,输入各字段对应的信息,生成任务处理请求。
在一个可行的实施方案中,处理器801在执行根据任务处理请求,确定任务处理请求对应的目标处理系统时,具体用于:根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
在一个可行的实施方案中,处理器801在执行根据任务处理请求,确定任务处理请求对应的目标处理系统时,具体用于:通过代码执行器,根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
在一个可行的实施方案中,处理器801在执行通过代码执行器,根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统时,具体用于:根据数据集的来源字段,确定任务处理请求对应的数据存储引擎;
根据流程对应的调度器的描述字段,确定任务处理请求对应的数据计算引擎;
目标处理系统包括数据存储引擎和/或数据计算引擎。
在一个可行的实施方案中,处理器801在执行将任务处理请求转换为目标处理系统对应的执行代码,并提交至目标处理系统时,具体用于:通过代码生成器中预先定义的基础接口,将任务处理请求转换为目标处理系统对应的执行代码;
通过代码执行器将执行代码提交至目标处理系统。
通过上述方式,当数据处理系统获取到采用预先定义的接口描述语言编写的任务处理请求之前,通过对任务处理请求中关键字段的解析,可确定任务处理请求所对应的目标处理系统,从而将任务处理请求转换为目标处理系统所支持的执行代码,通过目标处理系统运行执行代码以执行任务处理请求,并生成任务执行结果。本方法通过预先定义的接口描述语言编写任务处理请求,使得不同的用户仅需学习所定义的统一的接口描述语言即可实现对数据处理系统中各目标处理系统的调用,从而大大的降低了用户的学习成本,使得数据处理系统的学习门槛更低,提高了数据处理系统的通用性和使用性能。
其中,存储介质802存储有程序代码,当程序代码被处理器801执行时,使得处理器801执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的数据处理方法中的各种步骤。
处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储介质802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储介质802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
可选地,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,处理器执行以下步骤:
获取输入的任务处理请求,任务处理请求包括:待处理的数据、以及待执行的操作,任务处理请求采用预先定义的接口描述语言编写;
根据任务处理请求,确定任务处理请求对应的目标处理系统;
将任务处理请求转换为目标处理系统对应的执行代码,并提交至目标处理系统,并通过目标处理系统运行执行代码,生成任务处理请求对应的任务执行结果。
在一个可行的实施方案中,处理器801在执行获取输入的任务处理请求之前,具体用于:采用预设格式的语言创建语言描述关键字段,语言描述关键字段包括:命名空间、数据集、流程、任务;
根据各语言描述关键字段,生成接口描述语言。
在一个可行的实施方案中,命名空间包括:命名空间的名称字段及版本字段;数据集包括:数据集的名称字段及数据集的来源字段;流程包括:流程的名称字段及流程对应的调度器的描述字段;任务包括:任务的名称字段及任务所绑定的算子字段。
在一个可行的实施方案中,处理器801在执行获取输入的任务处理请求时,具体用于:按照接口描述语言中定义的各语言描述关键字段中的各字段,输入各字段对应的信息,生成任务处理请求。
在一个可行的实施方案中,处理器801在执行根据任务处理请求,确定任务处理请求对应的目标处理系统时,具体用于:根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
在一个可行的实施方案中,处理器801在执行根据任务处理请求,确定任务处理请求对应的目标处理系统时,具体用于:通过代码执行器,根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统。
在一个可行的实施方案中,处理器801在执行通过代码执行器,根据任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定任务处理请求对应的目标处理系统时,具体用于:根据数据集的来源字段,确定任务处理请求对应的数据存储引擎;
根据流程对应的调度器的描述字段,确定任务处理请求对应的数据计算引擎;
目标处理系统包括数据存储引擎和/或数据计算引擎。
在一个可行的实施方案中,处理器801在执行将任务处理请求转换为目标处理系统对应的执行代码,并提交至目标处理系统时,具体用于:通过代码生成器中预先定义的基础接口,将任务处理请求转换为目标处理系统对应的执行代码;
通过代码执行器将执行代码提交至目标处理系统。
通过上述方式,当数据处理系统获取到采用预先定义的接口描述语言编写的任务处理请求之前,通过对任务处理请求中关键字段的解析,可确定任务处理请求所对应的目标处理系统,从而将任务处理请求转换为目标处理系统所支持的执行代码,通过目标处理系统运行执行代码以执行任务处理请求,并生成任务执行结果。本方法通过预先定义的接口描述语言编写任务处理请求,使得不同的用户仅需学习所定义的统一的接口描述语言即可实现对数据处理系统中各目标处理系统的调用,从而大大的降低了用户的学习成本,使得数据处理系统的学习门槛更低,提高了数据处理系统的通用性和使用性能。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (11)
1.一种数据处理方法,其特征在于,应用于数据处理系统,所述方法包括:
获取输入的任务处理请求,所述任务处理请求包括:待处理的数据、以及待执行的操作,所述任务处理请求采用预先定义的接口描述语言编写;
根据所述任务处理请求,确定所述任务处理请求对应的目标处理系统;
将所述任务处理请求转换为所述目标处理系统对应的执行代码,并提交至所述目标处理系统,并通过所述目标处理系统运行所述执行代码,生成所述任务处理请求对应的任务执行结果。
2.根据权利要求1所述的方法,其特征在于,所述获取输入的任务处理请求之前,包括:
采用预设格式的语言创建语言描述关键字段,所述语言描述关键字段包括:命名空间、数据集、流程、任务;
根据各语言描述关键字段,生成所述接口描述语言。
3.根据权利要求2所述的方法,其特征在于,所述命名空间包括:命名空间的名称字段及版本字段;所述数据集包括:数据集的名称字段及数据集的来源字段;所述流程包括:流程的名称字段及流程对应的调度器的描述字段;所述任务包括:任务的名称字段及任务所绑定的算子字段。
4.根据权利要求2或3所述的方法,其特征在于,所述获取输入的任务处理请求,包括:
按照所述接口描述语言中定义的各语言描述关键字段中的各字段,输入各字段对应的信息,生成所述任务处理请求。
5.根据权利要求2或3所述的方法,其特征在于,所述根据所述任务处理请求,确定所述任务处理请求对应的目标处理系统,包括:
根据所述任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定所述任务处理请求对应的目标处理系统。
6.根据权利要求5所述的方法,其特征在于,所述数据处理系统包括:解释器及至少一种目标处理系统,所述解释器包括:代码生成器及代码执行器;所述根据所述任务处理请求,确定所述任务处理请求对应的目标处理系统,包括:
通过所述代码执行器,根据所述任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定所述任务处理请求对应的目标处理系统。
7.根据权利要求6所述的方法,其特征在于,所述通过所述代码执行器,根据所述任务处理请求中的数据集的来源字段和/或流程对应的调度器的描述字段,确定所述任务处理请求对应的目标处理系统,包括:
根据所述数据集的来源字段,确定所述任务处理请求对应的数据存储引擎;
根据所述流程对应的调度器的描述字段、以及所述任务所绑定的算子字段,确定所述任务处理请求对应的数据计算引擎;
所述目标处理系统包括所述数据存储引擎和/或所述数据计算引擎。
8.根据权利要求6所述的方法,其特征在于,所述将所述任务处理请求转换为所述目标处理系统对应的执行代码,并提交至所述目标处理系统,包括:
通过所述代码生成器中预先定义的基础接口,将所述任务处理请求转换为所述目标处理系统对应的执行代码;
通过所述代码执行器将所述执行代码提交至所述目标处理系统。
9.一种数据处理装置,其特征在于,应用于数据处理系统,所述装置包括:获取模块、确定模块、执行模块;
所述获取模块,用于获取输入的任务处理请求,所述任务处理请求包括:待处理的数据、以及待执行的操作,所述任务处理请求采用预先定义的接口描述语言编写;
所述确定模块,用于根据所述任务处理请求,确定所述任务处理请求对应的目标处理系统;
所述执行模块,用于将所述任务处理请求转换为所述目标处理系统对应的执行代码,并提交至所述目标处理系统,并通过所述目标处理系统运行所述执行代码,生成所述任务处理请求对应的任务执行结果。
10.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如权利要求1至8任一所述的数据处理方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至8任一所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211690214.7A CN115857918A (zh) | 2022-12-27 | 2022-12-27 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211690214.7A CN115857918A (zh) | 2022-12-27 | 2022-12-27 | 数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115857918A true CN115857918A (zh) | 2023-03-28 |
Family
ID=85653533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211690214.7A Pending CN115857918A (zh) | 2022-12-27 | 2022-12-27 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115857918A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107600A (zh) * | 2023-04-13 | 2023-05-12 | 麒麟软件有限公司 | 一种Oracle数据库安装工具及其快速部署方法 |
CN117579565A (zh) * | 2023-11-03 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 数据包关联数据处理方法及系统 |
-
2022
- 2022-12-27 CN CN202211690214.7A patent/CN115857918A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107600A (zh) * | 2023-04-13 | 2023-05-12 | 麒麟软件有限公司 | 一种Oracle数据库安装工具及其快速部署方法 |
CN116107600B (zh) * | 2023-04-13 | 2023-07-18 | 麒麟软件有限公司 | 一种Oracle数据库安装工具及其快速部署方法 |
CN117579565A (zh) * | 2023-11-03 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 数据包关联数据处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216302B2 (en) | Modifying task dependencies at worker nodes using precompiled libraries | |
CN107533453B (zh) | 用于生成数据可视化应用的系统和方法 | |
CN103631870B (zh) | 一种用于大规模分布式数据处理的系统及其方法 | |
Lim et al. | How to Fit when No One Size Fits. | |
EP2577507B1 (en) | Data mart automation | |
US20230018975A1 (en) | Monolith database to distributed database transformation | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US9507838B2 (en) | Use of projector and selector component types for ETL map design | |
US20190361999A1 (en) | Data analysis over the combination of relational and big data | |
US11379499B2 (en) | Method and apparatus for executing distributed computing task | |
CN115857918A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20230066110A1 (en) | Creating virtualized data assets using existing definitions of etl/elt jobs | |
CN109408591B (zh) | 支持sql驱动的ai与特征工程的决策型分布式数据库系统 | |
KR101877828B1 (ko) | 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템 | |
WO2013153027A1 (en) | Method and system for streaming processing in a map and reduce distributed computing platform | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN107818181A (zh) | 基于Plcient交互式引擎的索引方法及其系统 | |
CN116431668A (zh) | 基于元数据采集的数据血缘分析方法、装置及电子设备 | |
US11455308B2 (en) | Partition aware partial query processing | |
CN110222047A (zh) | 一种动态表单生成方法和装置 | |
CN110019342B (zh) | 分区表访问方法、装置及设备、计算机可读存储介质 | |
Bakken | maplib: interactive, literal RDF model mapping for industry | |
US20190364109A1 (en) | Scale out data storage and query filtering using storage pools | |
Prakash et al. | A Comprehensive Study on Structural and Non-Structural Databases and Its Impact on Hybrid Databases | |
US20250061473A1 (en) | Deployment infrastructure for sharing usage metrics with customers |
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 |