CN112181522B - 数据处理的方法、装置以及电子设备 - Google Patents
数据处理的方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN112181522B CN112181522B CN202011042083.2A CN202011042083A CN112181522B CN 112181522 B CN112181522 B CN 112181522B CN 202011042083 A CN202011042083 A CN 202011042083A CN 112181522 B CN112181522 B CN 112181522B
- Authority
- CN
- China
- Prior art keywords
- data
- preset
- processing
- plug
- data source
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 5
- 238000012545 processing Methods 0.000 claims abstract description 214
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000012800 visualization Methods 0.000 claims abstract description 28
- 230000008859 change Effects 0.000 claims abstract description 22
- 238000011161 development Methods 0.000 claims description 55
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013479 data entry Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 17
- 230000000007 visual effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种数据处理的方法、装置以及电子设备,涉及计算机技术领域。该方法包括:接收可视化模块发送的预设插件的存储路径信息;存储路径信息是由可视化模块检测到数据源变更指令后确定的;预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的;基于存储路径信息加载预设插件,并确定预设插件所对应的目标数据源;确定目标数据源对应的数据获取逻辑,通过数据获取逻辑从目标数据源中获取数据;基于加载的预设插件,对数据进行处理。本申请可以适用于多种数据源,可以基于目标数据源对应的数据获取逻辑获取目标数据源中的数据,并基于目标数据源对应的预设插件处理获取的数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理的方法、装置以及电子设备。
背景技术
随着互联网技术的发展,常常通过Spark进行数据的处理,Spark是一种分布式计算框架,可以对多种数据源中的数据进行处理,当数据源发生切换时,Spark处理数据的方式也需要进行相应的调整。
目前,Spark可以针对多种数据源分别设置对应的流数据处理程序,一旦数据源切换,就可以切换至对应的流数据处理程序,目前这种方式,切换到新的流数据处理程序后,需要重新配置流数据处理程序中的配置文件以及重启流数据处理程序,加大了开发的工作量,降低了数据处理的效率。
发明内容
本申请的第一方面提供了一种数据处理的方法,包括:
接收可视化模块发送的预设插件的存储路径信息;存储路径信息是由可视化模块检测到数据源变更指令后确定的;预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的;
基于存储路径信息加载预设插件,并确定预设插件所对应的目标数据源;
确定目标数据源对应的数据获取逻辑,通过数据获取逻辑从目标数据源中获取数据;
基于加载的预设插件,对数据进行处理。
可选的,预设插件的个数为至少两个,方法还包括:
接收可视化模块发送的至少两个预设插件的顺序标识;
则基于加载的预设插件,对数据进行处理,包括:
基于至少两个预设插件的顺序标识确定至少两个预设插件串行处理数据的顺序;
根据至少两个预设插件串行处理数据的顺序,通过至少两个预设插件,对数据进行串行处理。
可选的,基于至少两个预设插件串行处理数据的顺序,通过至少两个预设插件,对数据进行串行处理,包括:
确定各插件的接口信息;接口信息包括数据入口信息以及数据出口信息;
基于至少两个预设插件串行处理数据的顺序以及接口信息,通过至少两个预设插件,对数据进行串行处理。
可选的,基于加载的预设插件,对数据进行处理,包括:
基于至少两个预设插件,对数据进行串行处理和/或并行处理。
可选的,确定预设插件所对应的目标数据源,包括:
确定预设插件所对应的数据源指示信息;
基于数据源指示信息,确定目标数据源。
可选的,确定目标数据源对应的数据获取逻辑,包括:
获取数据源与数据获取逻辑的对应关系;每一数据获取逻辑对应至少一个数据源;
基于对应关系,确定目标数据源对应的数据获取逻辑。
可选的,基于加载的预设插件,对数据进行处理,包括:
当处理至数据中的错误数据时,记录错误数据的数据标识;
基于数据标识,对错误数据进行中断处理,并处理数据中不同于错误数据的其他数据;或者,基于数据标识,确定错误数据的下一数据,停止处理错误数据并处理下一数据。
可选的,基于加载的预设插件,对数据进行处理,包括:
确定预设插件对应的开发模式;
若开发模式为第一类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为抽象弹性分布式数据集,基于加载的预设插件,对抽象弹性分布式数据集进行处理;
若开发模式为第二类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为分布式数据集,基于加载的预设插件,对分布式数据集进行处理。
本申请的第二方面提供了一种数据处理的装置,包括:
第一接收模块,用于接收可视化模块发送的预设插件的存储路径信息;存储路径信息是由可视化模块检测到数据源变更指令后确定的;预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的;
插件加载模块,用于基于存储路径信息加载预设插件,并确定预设插件所对应的目标数据源;
确定模块,用于确定目标数据源对应的数据获取逻辑,通过数据获取逻辑从目标数据源中获取数据;
处理模块,用于基于加载的预设插件,对数据进行处理。
可选的,预设插件的个数为至少两个,该装置还包括:
第二接收模块,用于接收可视化模块发送的至少两个预设插件的顺序标识;
处理模块,具体用于:
基于至少两个预设插件的顺序标识确定至少两个预设插件串行处理数据的顺序;
根据至少两个预设插件串行处理数据的顺序,通过至少两个预设插件,对数据进行串行处理。
可选的,处理模块,具体用于:
确定各插件的接口信息;接口信息包括数据入口信息以及数据出口信息;
基于至少两个预设插件串行处理数据的顺序以及接口信息,通过至少两个预设插件,对数据进行串行处理。
可选的,处理模块,具体用于:
基于至少两个预设插件,对数据进行串行处理和/或并行处理。
可选的,插件加载模块,具体用于:
确定预设插件所对应的数据源指示信息;
基于数据源指示信息,确定目标数据源。
可选的,确定模块,具体用于:
获取数据源与数据获取逻辑的对应关系;每一数据获取逻辑对应至少一个数据源;
基于对应关系,确定目标数据源对应的数据获取逻辑。
可选的,处理模块,具体用于:
当处理至数据中的错误数据时,记录错误数据的数据标识;
基于数据标识,对错误数据进行中断处理,并处理数据中不同于错误数据的其他数据;或者,基于数据标识,确定错误数据的下一数据,停止处理错误数据并处理下一数据。
可选的,处理模块,具体用于:
确定预设插件对应的开发模式;
若开发模式为第一类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为抽象弹性分布式数据集,基于加载的预设插件,对抽象弹性分布式数据集进行处理;
若开发模式为第二类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为分布式数据集,基于加载的预设插件,对分布式数据集进行处理。
本申请实施例的第三方面,提供了一种电子设备,该电子设备包括存储器和处理器;存储器中存储有计算机程序;处理器用于在运行计算机程序时执行第一方面及其可选的实施方式中任一项的方法。
本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现第一方面及其可选的实施方式中任一项的方法。
本申请提供的技术方案带来的有益效果是:
在本实施例中,接收可视化模块在检测到数据源变更指令后确定并发送的预设插件的存储路径信息,可以基于该存储路径信息加载预设插件,并确定该预设插件对应的目标数据源,随后确定目标数据源对应的数据获取逻辑后,可以通过该数据获取逻辑从目标数据源中获取数据,由于预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的,这样就可以基于预设插件,对数据进行处理,可见,相对于现有方案,本申请无论数据源如何切换,均能加载切换到的目标数据源对应的预设插件,并确定目标数据源的数据获取逻辑,这样就可以获取数据并对目标数据源中的数据进行处理,不需要切换流数据处理程序,因此不需要重启流处理框架,也不需要重新配置配置文件,减轻了开发工作量,可见,本申请可以加快数据源中数据处理的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据处理的方法的一个流程示意图;
图2为本申请实施例提供的一种数据处理的方法的一个场景示意图;
图3为本申请实施例提供的一种数据处理的方法的另一个场景示意图;
图4为本申请实施例提供的一种数据处理的方法的另一个流程示意图;
图5为本申请实施例提供的一种数据处理的装置的结构示意图;
图6为本申请电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
Spark是专为大规模数据处理而设计的快速通用的计算引擎;
数据源,指应用程序所使用的数据库或者数据库服务器;
本申请数据源中的数据指的是流数据,流数据是一组顺序、大量、快速且连续到达的数据序列,流数据可以存储于数据处理队列中;
插件,是一种遵循一定规范的应用程序接口编写出来的程序,应用程序可以提供使插件能够应用的各项服务,包括提供插件加载方式,使插件可以加载到应用程序和网络传输协议中,与插件进行数据交换,以对应用程序的功能进行补充和完善。插件只能运行在应用程序规定的系统平台下,而不能脱离指定的平台单独运行。
现有的数据处理的方案,切换到新的流数据处理程序后必然需要进行流数据处理程序的重启,同时,切换到新的流数据处理程序后,还需要重新配置流数据处理程序中的配置文件,需要大量的开发工作量,可见,目前的方案必然会导致数据处理效率的低下。
为解决上述技术问题,本申请提出了一种数据处理的方法,该方法可以由流处理框架执行,流处理框架可以是电子设备中的处理流式数据的框架,在本申请中,将各数据源对应的流数据处理程序的公用部分进行封装形成了流处理框架,流处理框架实质上是通过编程得到的功能模块,电子设备可以是终端设备或服务器,请参照图1,该方法具体包括:
步骤S101、接收可视化模块发送的预设插件的存储路径信息;存储路径信息是由可视化模块检测到数据源变更指令后确定的;预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的;
可视化模块指的是可以向用户提供可视化界面的模块,可视化模块检测到数据源变更指令后,可以确定预设插件的存储路径信息,并将该存储路径信息发送给流处理框架。
在本实施例中,数据源变更指令指示变更到目标数据源,预设插件指的是与目标数据源对应的插件。预设插件是预先配置好的,该预设插件是基于用于对数据源中数据进行处理的业务逻辑片段的配置文件生成的,这样预设插件也可以对数据源中数据进行处理。数据源变化时,对应的预设插件也可以相应的变化。
在本实施例中,数据源变更指令包括如下可能的情况:
一种可能的情况是:数据源变更指令为从一个数据源切换到目标数据源的指令,例如,可视化界面上展示有数据源1至数据源n的标识,n为大于1的正整数,用户可以通过可视化界面选择任一标识进行数据源的切换,由于每一数据源均具有对应的预设插件,同时预先定义了各预设插件的存储路径信息(如果预设插件的个数为多个,还可以预先定义多个预设插件的顺序),则可视化模块检测到用户选择目标数据源的标识的指令后,可以确定目标数据源对应的预设插件,并确定预设插件的存储路径信息以及顺序;
另一种可能的情况是:数据源变更指令为从多个预设插件中选择至少一个预设插件的指令。例如可视化界面上展示有预设插件1至预设插件n的标识,n为大于1的正整数,用户可以从预设插件1至预设插件n中选择至少一个预设插件,则可视化模块检测到选择该至少一个预设插件的指令后,可以确定至少一个预设插件分别对应的存储路径信息;
在这种情况下,各预设插件的存储路径信息可以是用户在选择预设插件前预设定义的,也可以是用户在选择预设插件后实时配置的;若预设插件的个数为两个或两个以上,则用户选择两个或两个以上的预设插件后,还需要确定该两个或两个以上的预设插件的顺序,同样的,该顺序可以是用户选择预设插件前预设定义的,也可以是用户在选择预设插件后实时配置的。
可见,本申请中,插件具有可编排特性,用户可以在可视化界面上对预设插件进行编排,设置预设插件的存储路径以及顺序,同时插件还具有可动态插拔的特性,即可以从插件的存储路径中获取预设插件,同时还可以更改预设插件,这样预设插件可以随数据源变化进行相应的变化。相对于现有的方案,配置文件是无法动态插拔和编排的,切换流数据处理程序时需要重新配置配置文件,而本申请由于插件具有动态插拔和可编排特性,决定了本申请在数据源切换时,可以加载对应的预设插件处理数据源中的数据,可以允许数据源随时切换。
步骤是102、基于存储路径信息加载预设插件,并确定预设插件所对应的目标数据源;
流处理框架可以基于该存储路径信息从对应的存储路径中获取该预设插件,基于获取的预设插件,流处理框架可以确定该目标数据源,具体的确定目标数据源的方式将在后面的实施例中介绍。
在本实施例中,流处理框架获取预设插件后,实质上预设插件还是存储于上述存储路径信息指示的存储路径中,后续可以从同一存储路径中获取插件,而不需要多次配置预设插件的存储路径。
步骤S103、确定目标数据源对应的数据获取逻辑,通过数据获取逻辑从目标数据源中获取数据;
流处理框架中包含多种数据源分别对应的数据获取逻辑,流处理框架确定目标数据源后,可以确定目标数据源的数据获取逻辑,数据获取逻辑指的是从数据源中获取数据的方式,则流处理框架可以基于目标数据源的数据获取逻辑从目标数据源中获取数据。
可见,本申请的流处理框架由于包含多种数据源分别对应的数据获取逻辑,实际上流处理框架可以适用于多种数据源,这样就不需要进行流数据处理程序的切换。
步骤S104、基于加载的预设插件,对数据进行处理。
流处理框架可以基于加载的预设插件,对数据进行处理,并将处理后的数据从流处理框架输出。
在本实施例中,接收可视化模块在检测到数据源变更指令后确定并发送的预设插件的存储路径信息,可以基于该存储路径信息加载预设插件,并确定该预设插件对应的目标数据源,随后确定目标数据源对应的数据获取逻辑后,可以通过该数据获取逻辑从目标数据源中获取数据,由于预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的,这样就可以基于预设插件,对数据进行处理,可见,相对于现有方案,本申请无论数据源如何切换,均能加载切换到的目标数据源对应的预设插件,并确定目标数据源的数据获取逻辑,这样就可以获取数据并对目标数据源中的数据进行处理,不需要切换流数据处理程序,因此不需要重启流处理框架,也不需要重新配置配置文件,减轻了开发工作量,可见,本申请可以加快数据源中数据处理的效率。
进一步的,预设插件对数据的处理可以是串行处理,具体的:
可选的,预设插件的个数为至少两个,方法还包括:
接收可视化模块发送的至少两个预设插件的顺序标识;
则基于加载的预设插件,对数据进行处理,包括:
基于至少两个预设插件的顺序标识确定至少两个预设插件串行处理数据的顺序;
根据至少两个预设插件串行处理数据的顺序,通过至少两个预设插件,对数据进行串行处理。
在本实施例中,如上述,用户可以通过可视化界面配置至少两个预设插件串行处理数据的顺序,例如用户在可视化界面上选择至少两个预设插件的标识后,可以将至少两个预设插件的标识从前到后排序,则流处理框架可以接收可视化模块发送的顺序标识后,可以基于该顺序标识确定至少两个预设插件串行处理数据的顺序,并基于该顺序通过至少两个预设插件对数据进行串行处理。
进一步的,流处理框架通过预设插件对数据进行串行处理的方式,具体包括:
基于至少两个预设插件串行处理数据的顺序,通过至少两个预设插件,对数据进行串行处理,包括:
确定各插件的接口信息;接口信息包括数据入口信息以及数据出口信息;
基于至少两个预设插件串行处理数据的顺序以及接口信息,通过至少两个预设插件,对数据进行串行处理。
流处理框架可以确定各插件的接口信息,该接口信息中包括数据入口信息和数据出口信息,这样流处理框就可以基于该接口信息,将数据依次输入至少两个预设插件,从而实现对数据源中数据的串行处理。例如,多个预设插件串行处理数据的顺序依次为:插件1、插件2至插件n,流数据框架可以将从插件1数据出口输出的数据输入至插件2的数据入口,从插件2数据出口输出的数据输入至插件3的数据入口,直至输出插件n数据出口的数据。
可选的,基于加载的预设插件,对数据进行处理,包括:
基于至少两个预设插件,对数据进行串行处理和/或并行处理。
在本实施,若预设插件的个数为一个,则可以基于一个预设插件对数据进行处理;
若预设插件的个数为两个,则可以基于两个预设插件对数据进行串行处理或并行处理;
若预设插件的个数为两个以上,则可以基于多个预设插件对数据进行串行处理或并行处理,或者基于多个预设插件对数据进行串行处理和并行处理。
在本实施中,针对串行处理数据的预设插件,其串行处理数据的方式可以参照上述实施例中相关的论述,具体此处不再赘述。
进一步的,确定预设插件所对应的目标数据源,包括:
确定预设插件所对应的数据源指示信息;
基于数据源指示信息,确定目标数据源。
在本实施例中,最先处理数据源中数据的预设插件的插件信息中定义了数据源指示信息,例如预设插件1至预设插件n串行处理数据,且预设插件1为排序第一位的插件,则预设插件1最先处理从数据源中获取的数据,预设插件1的插件信息中可以查询得到数据源指示信息;再例如预设插件1至预设插件n并行处理数据,预设插件1至预设插件n均为最先处理数据源中数据的插件,则预设插件1至预设插件n的插件信息中均可以查询得到数据源指示信息。
参照图2,本申请一种可能的应用场景是:
可视化界面上展示有预设插件1至预设插件n,用户可以从预设插件1至预设插件n中选择预设插件1、3和5作为处理数据的预设插件,并对选择的预设插件进行排序,还可以设置预设插件的存储路径,排序结果从前到后为预设插件1、3以及5,可视化模块将预设插件的存储路径信息以及插件的排序发送流处理框架,预设插件1的插件信息中定义了数据来源为目标数据源,则流处理框架从目标数据源中获取数据,输入至预设插件1进行处理,预设插件1处理后的数据输入至预设插件3进行处理,预设插件3处理后的数据输入至预设插件5处理,最后预设插件5输出处理后的数据。
可选的,确定目标数据源对应的数据获取逻辑,包括:
获取数据源与数据获取逻辑的对应关系;每一数据获取逻辑对应至少一个数据源;
基于对应关系,确定目标数据源对应的数据获取逻辑。
在本实施例中,数据源与数据获取逻辑具有对应关系,每一数据获取逻辑对应至少一个数据源,即可以是一个数据源对应一个数据获取逻辑,也可以是两个或两个以上数据源对应同一数据获取逻辑,则流处理框架获取该对应关系后,可以基于该对应关系,可以确定目标数据源对应的数据获取逻辑。
在本申请的方案中,在数据处理出错时,还支持错误数据的回退,具体而言:
可选的,基于加载的预设插件,对数据进行处理,包括:
当处理至数据中的错误数据时,记录错误数据的数据标识;
基于数据标识,对错误数据进行中断处理,并处理数据中不同于错误数据的其他数据;或者,基于数据标识,确定错误数据的下一数据,停止处理错误数据并处理下一数据。
数据流中的数据是分批处理的,流数据处理程序处理至某一批数据时,若该批数据中包括错误数据,可以记录该错误数据的数据标识,错误数据是指数据本身存在错误的数据,可以是数据格式存在错误等。
流数据处理程序基于该数据标识,可以对错误数据进行中断处理,将错误数据回退到数据队列中,处理数据流中不同于该错误数据的其他数据,后续对错误数据进行修正后,再处理修正后的错误数据;
流数据处理程序也可以基于该数据标识,确定数据流中该错误数据的下一数据,可以直接跳过该错误数据处理下一数据,例如将错误数据回退到数据队列中,并处理错误数据的下一数据。
可见,在本实施例中,在数据处理过程中出现某一批次的数据处理出错时,可能是该批次的数据中存在错误数据,则可以支持进行该批次数据的回退,完善数据的处理措施,提高了流处理框架的容错率。
本申请的方案还提供了简易开发模式和高级两种开发模式,不同的开发模式下数据的处理存在区别,具体的:
可选的,基于加载的预设插件,对数据进行处理,包括:
确定预设插件对应的开发模式;
若开发模式为第一类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为抽象弹性分布式数据集,基于加载的预设插件,对抽象弹性分布式数据集进行处理;
若开发模式为第二类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为分布式数据集,基于加载的预设插件,对分布式数据集进行处理。
流处理框架可以确定预设插件对应的开发模式,预设插件对应的开发模式指的是预设插件是在该开发模式下运行,预设插件对应的开发模式可以是简易开发模式,例如spark sql,简易开发模式下预设插件为SQL插件,SQL插件可以加载开发者编写的sql语句并执行,以对数据源中数据进行处理。预设插件对应的也可以是高级发模式,例如sparkcore,在高级开发模式中,可以提供java或scala等多种开发语言,编写基于spark core的预设插件,业务插件之间的数据交互通过抽象弹性分布式数据集(Resilient DistributedDatasets,RDD)传递进行。
若开发模式为第一类开发模式即高级开发模式,则流处理框架可以先将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为RDD,如图3所示,流处理框架可以将RDD传输至预设插件,基于加载的预设插件,对抽象弹性分布式数据集进行处理;
同样的,若开发模式为第二类开发模式即简易开发模式,则流处理框架可以先将目标数据源中的数据解析为元数据格式的数据,再将元数据格式的数据在spark内转化为分布式数据集Dataframe,如图3所示,流处理框架可以将Dataframe传输至预设插件,基于加载的预设插件,对Dataframe进行处理。
综上,请参照图4,本申请的方案概括如下:
S1:可视化模块检测到用户通过可视化界面选择并排序预设插件,以及配置预设插件的存储路径信息,可视化模块将存储路径信息发送给流处理框架,预设插件是预先将业务逻辑片段单独编写打包得到的;
S2:流处理框架加载预设插件;
S3:流处理框架通过预设插件中排序最前的预设插件的插件信息确定目标数据源;
S4:流处理框架启动数据源获取逻辑从目标数据源中获取数据;该数据源获取逻辑与目标数据源对应;
S5:高级开发模式下,将数据解析成元数据格式的数据,并将解析后的数据转化为RDD,传递给后续预设插件进行数据处理;
简易开发模式下,将数据解析成元数据格式的数据,并将解析后的数据在spark内注册为Dataframe,传递给后续预设插件进行数据处理。
综上,本申请的方案具有如下优点:
1、现有技术在开发时开发语言可选择性较低,处理逻辑固化,变更成本极高。而本申请提供spark core和spark sql两种开发选择,并且支持预设插件的动态拔插特性(即可以加载或更改预设插件)以及可编排特性(即可以选择和排序预设插件),解决了以往流处理固化处理逻辑及开发选择的问题,适用于多种开发模式,且不需要重新配置配置文件,减少了重复的开发工作量,提高了开发的效率,从而提升了数据处理的效率。
2、将流数据处理程序的公共部分形成流处理框架,包含多种数据获取逻辑,可以适用于多种数据源,不需要进行流数据处理程序的切换,因此,也不需要重启流处理框架;
3、在流处理框架处理到错误数据时,还支持错误数据的回退,提高了容错能力;
4、串行处理数据时,流处理框架支持预设插件之间的数据交互。
请参照图5,本申请还提供了一种数据处理的装置,包括:
第一接收模块501,用于接收可视化模块发送的预设插件的存储路径信息;存储路径信息是由可视化模块检测到数据源变更指令后确定的;预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的;
插件加载模块502,用于基于存储路径信息加载预设插件,并确定预设插件所对应的目标数据源;
确定模块503,用于确定目标数据源对应的数据获取逻辑,通过数据获取逻辑从目标数据源中获取数据;
处理模块504,用于基于加载的预设插件,对数据进行处理。
可选的,预设插件的个数为至少两个,该装置还包括:
第二接收模块,用于接收可视化模块发送的至少两个预设插件的顺序标识;
处理模块504,具体用于:
基于至少两个预设插件的顺序标识确定至少两个预设插件串行处理数据的顺序;
根据至少两个预设插件串行处理数据的顺序,通过至少两个预设插件,对数据进行串行处理。
可选的,处理模块504,具体用于:
确定各插件的接口信息;接口信息包括数据入口信息以及数据出口信息;
基于至少两个预设插件串行处理数据的顺序以及接口信息,通过至少两个预设插件,对数据进行串行处理。
可选的,处理模块504,具体用于:
基于至少两个预设插件,对数据进行串行处理和/或并行处理。
可选的,插件加载模块502,具体用于:
确定预设插件所对应的数据源指示信息;
基于数据源指示信息,确定目标数据源。
可选的,确定模块503,具体用于:
获取数据源与数据获取逻辑的对应关系;每一数据获取逻辑对应至少一个数据源;
基于对应关系,确定目标数据源对应的数据获取逻辑。
可选的,处理模块504,具体用于:
当处理至数据中的错误数据时,记录错误数据的数据标识;
基于数据标识,对错误数据进行中断处理,并处理数据中不同于错误数据的其他数据;或者,基于数据标识,确定错误数据的下一数据,停止处理错误数据并处理下一数据。
可选的,处理模块504,具体用于:
确定预设插件对应的开发模式;
若开发模式为第一类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为抽象弹性分布式数据集,基于加载的预设插件,对抽象弹性分布式数据集进行处理;
若开发模式为第二类开发模式,则将目标数据源中的数据解析为元数据格式的数据,将元数据格式的数据转化为分布式数据集,基于加载的预设插件,对分布式数据集进行处理。
由于本发明实施例所提供的装置为可以执行本发明实施例中相应的方法的装置,故而基于本发明实施例中所提供的方法,本领域所属技术人员能够了解本发明实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本发明实施例中的方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中的方法所采用的装置,都属于本申请所欲保护的范围。
基于与图1中所示的方法相同的原理,本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器;存储器中存储有计算机程序;处理器用于在运行计算机程序时执行本申请任一可选实施例中所提供的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时可以实现本申请任一可选实施例中所提供的方法。
作为一示例,图6中示出了本申请可以应用于的一种电子设备4000的结构示意图,该电子设备包括存储器4003和处理器4001,存储器4003中存储有计算机程序,处理器4001,用于在运行计算机程序时执行上述任一方法。
具体的,该电子设备可以是终端、服务器或其他可能的设备,图6只是示出了电子设备的一种可选的示意性结构。图6中所示的该电子设备4000的结构并不构成对本申请实施例的限定。
其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,收发器4004可以具体用于该电子设备4000与其他设备的通信。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请申请内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现上面任一方法实施例所示的内容。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种数据处理的方法,其特征在于,应用于流处理框架,包括:
接收可视化模块发送的预设插件的存储路径信息;所述存储路径信息是由所述可视化模块检测到数据源变更指令后确定的;所述预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的;所述数据源变更指令用于指示变更到目标数据源,所述预设插件为预先配置好的与目标数据源对应的插件;
基于所述存储路径信息加载所述预设插件,并确定所述预设插件所对应的目标数据源;
确定所述目标数据源对应的数据获取逻辑,通过所述数据获取逻辑从所述目标数据源中获取数据;所述流处理框架中包含多种数据源分别对应的数据获取逻辑;
基于所述加载的预设插件,对所述数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述预设插件的个数为至少两个,所述方法还包括:
接收所述可视化模块发送的至少两个预设插件的顺序标识;
则所述基于所述加载的预设插件,对所述数据进行处理,包括:
基于所述至少两个预设插件的顺序标识确定所述至少两个预设插件串行处理数据的顺序;
根据所述至少两个预设插件串行处理数据的顺序,通过所述至少两个预设插件,对所述数据进行串行处理。
3.根据权利要求2所述的方法,其特征在于,所述基于所述至少两个预设插件串行处理数据的顺序,通过所述至少两个预设插件,对所述数据进行串行处理,包括:
确定各插件的接口信息;所述接口信息包括数据入口信息以及数据出口信息;
基于所述至少两个预设插件串行处理数据的顺序以及所述接口信息,通过所述至少两个预设插件,对所述数据进行串行处理。
4.根据权利要求1所述的方法,其特征在于,所述基于所述加载的预设插件,对所述数据进行处理,包括:
基于至少两个预设插件,对所述数据进行串行处理和/或并行处理。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述确定所述预设插件所对应的所述目标数据源,包括:
确定所述预设插件所对应的数据源指示信息;
基于所述数据源指示信息,确定所述目标数据源。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述确定所述目标数据源对应的数据获取逻辑,包括:
获取数据源与数据获取逻辑的对应关系;每一数据获取逻辑对应至少一个数据源;
基于所述对应关系,确定所述目标数据源对应的数据获取逻辑。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述基于所述加载的预设插件,对所述数据进行处理,包括:
当处理至所述数据中的错误数据时,记录错误数据的数据标识;
基于所述数据标识,对所述错误数据进行中断处理,并处理所述数据中不同于所述错误数据的其他数据;或者,基于所述数据标识,确定所述错误数据的下一数据,停止处理所述错误数据并处理所述下一数据。
8.根据权利要求1至4中任一项所述的方法,其特征在于,所述基于所述加载的预设插件,对所述数据进行处理,包括:
确定所述预设插件对应的开发模式;
若所述开发模式为第一类开发模式,则将所述目标数据源中的数据解析为元数据格式的数据,将所述元数据格式的数据转化为抽象弹性分布式数据集,基于所述加载的预设插件,对所述抽象弹性分布式数据集进行处理;
若所述开发模式为第二类开发模式,则将所述目标数据源中的数据解析为元数据格式的数据,将所述元数据格式的数据转化为分布式数据集,基于所述加载的预设插件,对所述分布式数据集进行处理。
9.一种数据处理的装置,其特征在于,应用于流处理框架,包括:
第一接收模块,用于接收可视化模块发送的预设插件的存储路径信息;所述存储路径信息是由所述可视化模块检测到数据源变更指令后确定的;所述预设插件是基于用于进行数据处理的业务逻辑片段的配置文件生成的;所述数据源变更指令用于指示变更到目标数据源,所述预设插件为预先配置好的与目标数据源对应的插件;
插件加载模块,用于基于所述存储路径信息加载所述预设插件,并确定所述预设插件所对应的目标数据源;
确定模块,用于确定所述目标数据源对应的数据获取逻辑,通过所述数据获取逻辑从所述目标数据源中获取数据;所述流处理框架中包含多种数据源分别对应的数据获取逻辑;
处理模块,用于基于所述加载的预设插件,对所述数据进行处理。
10.一种电子设备,其特征在于,所述电子设备包括存储器和处理器;
所述存储器中存储有计算机程序;
所述处理器,用于在运行所述计算机程序时执行权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011042083.2A CN112181522B (zh) | 2020-09-28 | 2020-09-28 | 数据处理的方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011042083.2A CN112181522B (zh) | 2020-09-28 | 2020-09-28 | 数据处理的方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181522A CN112181522A (zh) | 2021-01-05 |
CN112181522B true CN112181522B (zh) | 2024-08-09 |
Family
ID=73944542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011042083.2A Active CN112181522B (zh) | 2020-09-28 | 2020-09-28 | 数据处理的方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181522B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590219B (zh) * | 2021-07-28 | 2022-09-16 | 北京百度网讯科技有限公司 | 一种数据处理方法、装置、电子设备以及存储介质 |
CN113535134A (zh) * | 2021-08-20 | 2021-10-22 | 华润电力技术研究院有限公司 | 风机数据中台处理系统、方法、装置及存储介质 |
CN114090124A (zh) * | 2021-11-23 | 2022-02-25 | 智器云南京信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN114385269A (zh) * | 2022-01-17 | 2022-04-22 | 零氪科技(北京)有限公司 | 应用配置方法、装置、电子设备及计算机可读存储介质 |
CN117492863A (zh) * | 2023-11-08 | 2024-02-02 | 浙江预策科技有限公司 | 一种数据接入的方法、装置和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229747A (zh) * | 2017-06-26 | 2017-10-03 | 湖南星汉数智科技有限公司 | 一种基于流式处理框架的大规模数据处理装置及方法 |
CN107357671A (zh) * | 2014-06-24 | 2017-11-17 | 华为技术有限公司 | 一种故障处理方法、相关装置及计算机 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070204169A1 (en) * | 2006-02-28 | 2007-08-30 | International Business Machines Corporation | Enabling automatic business processes using state transfer diagram and abstraction |
CN106682036A (zh) * | 2015-11-11 | 2017-05-17 | 上海汽车集团股份有限公司 | 一种数据交换系统及其交换方法 |
CN111651160B (zh) * | 2020-06-02 | 2023-07-04 | 上海泛微网络科技股份有限公司 | 插件构建、网页设计的方法和装置 |
-
2020
- 2020-09-28 CN CN202011042083.2A patent/CN112181522B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357671A (zh) * | 2014-06-24 | 2017-11-17 | 华为技术有限公司 | 一种故障处理方法、相关装置及计算机 |
CN107229747A (zh) * | 2017-06-26 | 2017-10-03 | 湖南星汉数智科技有限公司 | 一种基于流式处理框架的大规模数据处理装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112181522A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181522B (zh) | 数据处理的方法、装置以及电子设备 | |
CN110601880B (zh) | 一种云平台、业务处理方法、命令接口及计算机设备 | |
CN111241182A (zh) | 数据处理方法和装置、存储介质和电子装置 | |
CN110781231A (zh) | 基于数据库的批量导入方法、装置、设备及存储介质 | |
CN111125604B (zh) | 一种页面管理方法、装置、终端设备及存储介质 | |
CN112732982B (zh) | 一种故障码存储方法、装置、终端设备及可读存储介质 | |
CN112667426B (zh) | 日志分析方法及装置 | |
CN112416964A (zh) | 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质 | |
CN111611479B (zh) | 用于网络资源推荐的数据处理方法及相关装置 | |
CN109918221B (zh) | 一种硬盘报错解析方法、系统、终端及存储介质 | |
CN113177015B (zh) | 基于帧头的串口通讯方法和串口芯片 | |
CN113760242B (zh) | 一种数据处理方法、装置、服务器和介质 | |
CN105264519B (zh) | 一种列式数据库处理方法及装置 | |
CN116049293B (zh) | 基于数据库配置实现解析csv文件方法、装置、设备及介质 | |
CN109324838B (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN108763127B (zh) | 源数据与目标数据相互转换的Modbus适配器的实现方法 | |
CN113360558B (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN115048359A (zh) | 一种多类型接入数据源的通用数据处理架构设计方法 | |
CN114157662A (zh) | 一种云平台参数适配方法、装置、终端设备及储存介质 | |
CN114371866A (zh) | 业务系统的版本重构测试方法、装置和设备 | |
CN108897677B (zh) | 日志构建方法和系统 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
CN111639936A (zh) | 交易信息的获取方法、装置、电子设备及可读存储介质 | |
CN112597109B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111324434B (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 |