CN110457348B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN110457348B CN110457348B CN201810411601.XA CN201810411601A CN110457348B CN 110457348 B CN110457348 B CN 110457348B CN 201810411601 A CN201810411601 A CN 201810411601A CN 110457348 B CN110457348 B CN 110457348B
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- rule
- processed
- calculation
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、装置及计算机可读存储介质和电子设备。其中,所述方法包括:获取至少一个数据源中待处理的数据;按照预先设置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对数据转换的不同处理阶段设置的规则;输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据。应用本申请,将处理规则与源代码解耦合,在需要改变处理规则时,无需改动源代码。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、装置及计算机存储介质和电子设备。
背景技术
在进行大数据处理时,处理过程通常包括数据抽取(Extract)、数据转换(Transform)、数据加载(Load)三个阶段。在相关技术中,数据转换的处理一般有两种方式:第一种是基于SQL,例如利用Where、Count、Max、Min等原生函数或者UDF函数(用户自定义的函数),在源代码中编写Select语句,利用Select语句执行数据处理。第二种是基于脚本,使用脚本语言编写数据处理规则的代码,基于所述脚本中编写的代码执行数据处理。然而,不管是基于SQL还是基于脚本,都受限于固化开发方式,即数据处理规则的代码都是写死在源代码中的,如果不对源代码进行修改,也就无法改变数据处理规则,从而导致数据处理规则维护不便,且数据处理不够灵活。
发明内容
有鉴于此,本申请提供一种数据处理方法、装置及计算机存储介质和电子设备,用于解决上述的数据处理不够灵活,数据处理规则维护困难的问题。
具体地,本申请是通过如下技术方案实现的:
一种数据处理方法,所述方法包括:
获取至少一个数据源中待处理的数据;
按照预先设置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对数据转换的不同处理阶段设置的规则;
输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据。
可选的,所述多个处理规则包括:预处理规则、计算规则;
所述按照预先设置的多个处理规则依次对所述待处理的数据进行处理,具体包括:
根据所述预处理规则,将所述待处理的数据合并到一张数据表中;
根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表。
可选的,所述多个处理规则还包括:聚合规则,所述方法还包括:
根据所述聚合规则,对所述包含计算结果的数据表进行聚合操作,得到聚合结果。
可选的,所述根据所述预处理规则,将所述待处理的数据合并到一张数据表中,具体包括:
获取所述预处理规则中的数据合并SQL;
基于所述数据合并SQL将所述待处理的数据合并到一张数据表中。
可选的,所述获取至少一个数据源中待处理的数据,具体包括:
获取预先设置的数据读取SQL;
基于所述数据读取SQL从至少一个数据源中读取待处理的数据。
可选的,在所述基于所述数据合并SQL将所述待处理的数据合并到一张数据表中之前,所述方法还包括:
获取所述预处理规则中的数据过滤SQL;
基于所述数据过滤SQL将至少一个数据源中待处理的数据进行过滤;
所述基于所述数据合并SQL将所述待处理的数据合并到一张数据表中,具体包括:
基于所述数据合并SQL将过滤后剩余的待处理的数据合并到一张数据表中。
可选的,所述根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表,具体包括:
获取所述计算规则的计算表达式;
基于所述计算表达式对所述数据表中每行的数据进行计算;
将每行的计算结果记录到该行的预设位置。
可选的,所述数据表包括Excel表,所述计算表达式包括Excel函数表达式。
可选的,所述根据所述聚合规则,对所述包含计算结果的数据表进行聚合操作,得到目标数据,具体包括:
获取所述聚合规则的数据聚合SQL;
基于所述数据聚合SQL将所述包含计算结果的数据表中对应每个数据源的结果数据聚合,得到每个数据源对应的结果数据;
将每个数据源对应的结果数据确定为聚合结果。
可选的,所述方法还包括:
通过Spark技术,将每个处理规则处理结果缓存在内存,并在下一处理规则执行前从内存中获取上一处理规则缓存的处理结果。
一种数据处理装置,所述装置包括:
读取单元,获取至少一个数据源中待处理的数据;
处理单元,按照预先设置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对数据转换的不同处理阶段设置的规则;
输出单元,输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据。
一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一项所述的数据处理方法。
一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述任一项所述的数据处理方法。
本申请实施例,提供了一种数据处理方案,通过将处理规则与代码解耦,在进行数据处理时,基于预先配置的处理规则对待处理的数据进行处理。如此,用户可以根据需求灵活配置处理规则,并在需要修改处理规则时,无需修改源代码,只要修改配置的处理规则即可。
附图说明
图1是本申请一示例性实施例示出的一种数据处理方法的流程图;
图2是本申请一示例性实施例示出的一种数据处理适用的系统架构图;
图3是本申请一示例性实施例示出的数据处理过程的示意图;
图4是本申请一示例性实施例示出的一种数据处理装置的硬件结构图;
图5是本申请一示例性实施例示出的一种数据处理装置的模块示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是本申请一示例性实施例示出的一种数据处理的方法流程图,所述方法可以应用在数据处理的服务器(以下简称为服务器)中,该方法具体可以包括如下步骤:
步骤110:获取至少一个数据源中待处理的数据。
步骤120:按照预先设置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对数据转换的不同处理阶段设置的规则。
步骤130:输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据。
本申请中,通过将处理规则与代码解耦,在进行数据处理时,基于预先配置的处理规则对待处理的数据进行处理。如此,用户可以根据需求灵活配置处理规则,并在需要修改处理规则时,无需修改源代码,只要修改配置的处理规则即可。
如图2所示为本申请一示例性实施例示出的一种数据处理适用的系统架构图,所述系统可以是ETL数据处理系统。所述ETL数据处理流程可以分为Extract(抽取)、Transform(转换)、Load(加载)三个阶段。本申请至少可以应用在转换阶段。当应用在T过程时,可以与E和L过程配合使用。例如,可以由其它系统执行E过程,抽取待处理的数据,并同步到本数据处理的服务器中;由本服务器执行数据处理过程,即基于配置的数据处理规则对待处理的数据进行处理,并输出处理结果;再由其它系统执行L过程,将本服务器输出的处理结果同步到预设位置。
在一实施例中,所述多个处理规则包括:预处理规则、计算规则。
以下介绍本申请中处理规则配置的信息。其中,不同处理规则配置可以是相互独立的。
在一实施例中,所述预处理规则配置的信息如下:
第一名称:数据源的中文名称;
第二名称:数据源的英文名称;例如数据表名称;
类型:数据源的类型;例如MYSQL、HIVE等;
SQL:用于对待处理数据进行操作的SQL;例如数据合并SQL、数据读取SQL、数据过滤SQL、字段映射SQL、数据替换SQL等。
在一实施例中,所述计算规则配置的信息如下:
第一名称:每个计算结果的中文名称;
第二名称:每个计算结果的英文名称;例如字段名称;
类型:每个计算结果的数据类型;例如整形Integer、长整型Long、浮点型Float、字符型Char、文本Text等。
计算表达式:用于计算每行数据的计算结果的表达式;
其中,所述计算表达式的类型支持SQL、算术运算函数运算、Excel函数中的至少一种。
所述计算表达式的引擎可以使用Expr4J开源组件,从而可以支持Excel函数,便于很多Excel数据。
在一实施例中,上述多个处理规则还可以包括聚合规则,相应地,所述聚合则配置的信息如下:
第一名称:结果表的中文名称;
第二名称:结果表的英文名称;
位置:结果表输出的位置;例如MYSQL、HIVE等;
SQL:用于对数据表中数据进行操作的SQL。
具体地,所述聚合规则可以是根据用户需求,设置的用于对计算结果进行操作的规则,例如汇总规则、拆分规则,即对应了汇总SQL、拆分SQL。所述汇总规则可以用于将计算结果汇总成一张结果表;所述拆分规则可以用于将计算结果按照对应的数据源进行分组,输出对应各个数据源的结果表。
值得一提的是,所述服务器可以具有至少两个模块。即规则配置模块和数据执行模块。
其中,规则配置模块,用于配置数据处理规则。该规则配置模块可以使用任意开发语言(例如Java)来开发数据处理规则的配置,并可以负责将数据处理规则存储到配置文件中,以及上线配置有数据处理规则的配置文件。
其中,数据执行模块,用于根据配置文件中的数据处理规则对待处理的数据进行处理。值得一提的是,现有技术中,数据处理过程中通常是将每个处理规则处理结果存储到磁盘中,即先将处理结果缓存到内存,再存储到磁盘;在下一次处理规则执行前从磁盘中获取上一处理规则存储的处理结果,缓存到内存,然后执行本次处理规则。为了应对海量数据处理需要,该数据执行模块可以基于Spark框架开发的内存计算服务。通过Spark技术,将每个处理规则处理结果缓存在内存,并在下一处理规则执行前直接从内存中获取上一处理规则缓存的处理结果;由于不再将处理结果存储到磁盘中,从而可以保证处理海量数据时良好的处理性能,以及某些对数据时效性要求较高的应用场景。
在一实施例中,对于所述多个处理规则包括:预处理规则、计算规则,所述步骤120按照预先设置的多个处理规则依次对所述待处理的数据进行处理,具体包括:
A1:根据所述预处理规则,将所述待处理的数据合并到一张数据表中;
A2:根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表。
即步骤130中,目标数据为计算规则执行完后得到的计算结果。
进一步的,在所述多个处理规则还包括聚合规则,在所步骤A2之后,还包括:
A3:根据所述聚合规则,对所述包含计算结果的数据表进行聚合操作,得到聚合结果。
即步骤130中,目标数据为聚合规则执行完后得到的聚合结果。
在一实施例中,所述步骤A1根据所述预处理规则,将所述待处理的数据合并到一张数据表中,具体可以包括:
获取所述预处理规则中的数据合并SQL;
基于所述数据合并SQL将所述待处理的数据合并到一张数据表中。
如果存在多个数据源中待处理的数据,则基于所述数据合并SQL,可以将所述多个数据源中待处理的数据合并到一张数据表中。
在实际应用中,合并可以是指通过Join操作将待处理的数据关联到一张数据表中。所述数据表用于后续计算操作。
一般的,一个数据源可以对应数据表中一列,同一数据源中每个待处理的数据记录同一列中不同行,即每个数据对应一行。
举例说明,如图3所示的一示例性的数据处理过程的示意图:
假设有分别来自数据源1、数据源2和数据源3中的N个待处理的数据;基于预处理规则中的数据合并SQL可以将分别来自于数据源1、数据源2和数据源3中的N个待处理的数据合并到一张数据表中;如图3中所示,数据源1中N个数据记录在数据表第一列,一个数据对应一行;数据源2中N个数据记录在数据表第二列,一个数据对应一行;数据源3中N个数据记录在数据表第三列,一个数据对应一行。
在一实施例中,在前述ETL数据处理系统中,还可以将E过程也整合到本申请实施例中。具体地,
所述步骤110,具体可以包括:
获取预先设置的数据读取SQL;
基于所述数据读取SQL从至少一个数据源中读取待处理的数据。
值得一提的是,可以将数据读取作为预处理规则的一部分,则所述步骤110,可以包括:
获取预处理规则中的数据读取SQL;
基于所述数据读取SQL从至少一个数据源中读取待处理的数据。
在一实施例中,在所述步骤A1之前,所述方法还包括:
获取所述预处理规则的数据过滤SQL;
基于所述数据过滤SQL将至少一个数据源中待处理的数据进行过滤;
所述基于所述数据合并SQL将所述待处理的数据合并到一张数据表中,具体包括:
基于所述数据合并SQL将过滤后剩余的待处理的数据合并到一张数据表中。
通过该实施例,在合并数据前,可以预先对数据进行过滤,只对需要的数据进行数据处理。并且,可以根据需求灵活配置数据过滤SQL。
举例说明,假设存在两个数据源tableA和tableB;其中,实际需求中,对于tableA中的数据只需要大于10的数据;对于tableB中的数据同样只需要大于10的数据;则基于数据过滤SQL,可以过滤到小于等于10的数据,即过滤后tableA、tableB中待处理的数据均是大于10的数据。
在一实施例中,所述A2根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表,具体包括:
获取所述计算规则的计算表达式;
基于所述计算表达式对所述数据表中每行的数据进行计算;
将每行的计算结果记录到该行的预设位置。
其中,所述预设位置是指数据表中该行的任意位置,例如可以是该行的行尾。
举例说明,依然以图3为例,在基于预处理规则中的数据合并SQL将分别来自于数据源1、数据源2和数据源3中的N个待处理的数据合并到一张数据表中之后,可以基于计算规则中的计算表达式对所述数据表中每行的数据进行计算。图3中可知,每行中每个数据都可以对应有一个计算结果,由于图3中数据表每行有3个数据,因此每行的计算结果也可以有3个,即图3中结果1、结果2、结果3。图3中可知,可以将每行的计算结果记录到该行的行尾位置。
在一实施例中,所述A3根据所述聚合规则,对所述包含计算结果的数据表进行聚合操作,得到聚合结果,具体包括:
获取所述聚合规则的数据聚合SQL;
基于所述数据聚合SQL将所述包含计算结果的数据表中对应每个数据源的结果数据聚合,得到每个数据源对应的包含处理结果的结果表。
其中,可以将聚合后的结果表按照第二名称输出到目标位置。
举例说明,依然以图3为例,在基于计算规则中的计算表达式对所述数据表中每行的数据进行计算,并将每行的计算结果记录到该行的预设位置之后,可以基于所述数据聚合SQL将包含计算结果的数据表中对应每个数据源的结果数据聚合,得到每个数据源对应的包含处理结果的结果表。如图3所示,所述聚合可以是指将分属不同数据源的计算结果。
与前述数据处理方法的实施例相对应,本申请还提供了数据处理装置的实施例。
本申请数据处理装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请数据处理装置所在的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中通常根据该数据处理的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,在一种软件实施方式中,该数据处理装置可以包括:
获取单元310,获取至少一个数据源中待处理的数据;
处理单元320,按照预先设置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对数据转换的不同处理阶段设置的规则;
输出单元330,输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据。
在一可选的实施例中:
所述多个处理规则包括:预处理规则、计算规则;
所述处理单元320,具体包括:
合并单元,根据所述预处理规则,将所述待处理的数据合并到一张数据表中;
计算单元,根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表。
在一可选的实施例中:
所述多个处理规则还包括聚合规则,所述装置还包括:
聚合单元,根据所述聚合规则,对所述包含计算结果的数据表进行聚合操作,得到聚合结果。
在一可选的实施例中:
所述合并子单元,具体包括:
获取子单元,获取所述预处理规则中的数据合并SQL;
合并子单元,基于所述数据合并SQL将所述待处理的数据合并到一张数据表中。
在一可选的实施例中:
所述获取单元310,具体包括:
获取子单元,获取预先设置的数据读取SQL;
读取子单元,基于所述数据读取SQL从至少一个数据源中读取待处理的数据。
在一可选的实施例中:
在所述合并子单元之前,所述装置还包括:
获取子单元,获取所述预处理规则中的数据过滤SQL;
过滤子单元,基于所述数据过滤SQL将至少一个数据源中待处理的数据进行过滤;
所述合并子单元,具体包括:
基于所述数据合并SQL将过滤后剩余的待处理的数据合并到一张数据表中。
在一可选的实施例中:
所述计算单元,具体包括:
获取子单元,获取所述计算规则的计算表达式;
计算子单元,基于所述计算表达式对所述数据表中每行的数据进行计算;
记录子单元,将每行的计算结果记录到该行的预设位置。
在一可选的实施例中:
所述数据表包括Excel表,所述计算表达式包括Excel函数表达式。
在一可选的实施例中:
所述根据聚合单元,具体包括:
获取子单元,获取所述聚合规则的数据聚合SQL;
聚合子单元,基于所述数据聚合SQL将所述包含计算结果的数据表中对应每个数据源的结果数据聚合,得到每个数据源对应的结果数据;
确定子单元,将每个数据源对应的结果数据确定为目标数据。
在一可选的实施例中:
所述装置还包括:
缓存子单元,通过Spark技术,将每个处理规则处理结果缓存在内存,并在下一处理规则执行前从内存中获取上一处理规则缓存的处理结果。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图5描述了业务监控装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取至少一个数据源中待处理的数据;
按照预先设置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对数据转换的不同处理阶段设置的规则;
输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据。
可选的,所述多个处理规则包括:预处理规则、计算规则;
所述按照预先设置的多个处理规则依次对所述待处理的数据进行处理,具体包括:
根据所述预处理规则,将所述待处理的数据合并到一张数据表中;
根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表。
可选的,所述多个处理规则还包括聚合规则,还包括:
根据所述聚合规则,对所述包含计算结果的数据表进行聚合操作,得到聚合结果。
可选的,所述根据所述预处理规则,将所述待处理的数据合并到一张数据表中,具体包括:
获取所述预处理规则中的数据合并SQL;
基于所述数据合并SQL将所述待处理的数据合并到一张数据表中。
可选的,所述获取至少一个数据源中待处理的数据,具体包括:
获取预先设置的数据读取SQL;
基于所述数据读取SQL从至少一个数据源中读取待处理的数据。
可选的,在所述基于所述数据合并SQL将所述待处理的数据合并到一张数据表中之前,还包括:
获取所述预处理规则中的数据过滤SQL;
基于所述数据过滤SQL将至少一个数据源中待处理的数据进行过滤;
所述基于所述数据合并SQL将所述待处理的数据合并到一张数据表中,具体包括:
基于所述数据合并SQL将过滤后剩余的待处理的数据合并到一张数据表中。
可选的,所述根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表,具体包括:
获取所述计算规则的计算表达式;
基于所述计算表达式对所述数据表中每行的数据进行计算;
将每行的计算结果记录到该行的预设位置。
可选的,所述数据表包括Excel表,所述计算表达式包括Excel函数表达式。
可选的,所述根据所述聚合规则,对所述包含计算结果的数据表进行聚合操作,得到聚合结果,具体包括:
获取所述聚合规则的数据聚合SQL;
基于所述数据聚合SQL将所述包含计算结果的数据表中对应每个数据源的结果数据聚合,得到每个数据源对应的结果数据;
将每个数据源对应的结果数据确定为目标数据。
可选的,还包括:
通过Spark技术,将每个处理规则处理结果缓存在内存,并在下一处理规则执行前从内存中获取上一处理规则缓存的处理结果。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (8)
1.一种数据处理方法,其特征在于,所述方法包括:
获取至少一个数据源中待处理的数据;
按照预先配置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对ETL数据处理流程中的数据转换的不同处理阶段设置的规则;所述ETL数据处理流程分为数据抽取、数据转换和数据加载三个阶段;
输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据;
所述多个处理规则包括:预处理规则、计算规则和聚合规则;
所述按照预先配置的多个处理规则依次对所述待处理的数据进行处理,具体包括:
根据配置有数据源的类型的所述预处理规则,将所述待处理的数据合并到一张数据表中;其中,所述数据源的类型包括:MYSQL和HIVE;一个数据源对应数据表中一列,同一数据源中每个待处理的数据记录在同一列中不同行;
根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表;
获取所述聚合规则的数据聚合SQL;
基于所述数据聚合SQL将包含计算结果的数据表中对应每个数据源的结果数据聚合,得到每个数据源对应的包含处理结果的结果表;
根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表,具体包括:
获取所述计算规则的计算表达式;
基于所述计算表达式对所述数据表中每行的数据进行计算;
将每行的计算结果记录到该行的预设位置;
其中,通过Spark技术,将每个处理规则处理结果缓存在内存,并在下一处理规则执行前从内存中获取上一处理规则缓存的处理结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预处理规则,将所述待处理的数据合并到一张数据表中,具体包括:
获取所述预处理规则中的数据合并SQL;
基于所述数据合并SQL将所述待处理的数据合并到一张数据表中。
3.根据权利要求1所述的方法,其特征在于,所述获取至少一个数据源中待处理的数据,具体包括:
获取预先设置的数据读取SQL;
基于所述数据读取SQL从至少一个数据源中读取待处理的数据。
4.根据权利要求1所述的方法,其特征在于,在所述基于所述数据合并SQL将所述待处理的数据合并到一张数据表中之前,所述方法还包括:
获取所述预处理规则中的数据过滤SQL;
基于所述数据过滤SQL将至少一个数据源中待处理的数据进行过滤;
所述基于所述数据合并SQL将所述待处理的数据合并到一张数据表中,具体包括:
基于所述数据合并SQL将过滤后剩余的待处理的数据合并到一张数据表中。
5.根据权利要求4所述的方法,其特征在于,所述数据表包括Excel表,所述计算表达式包括Excel函数表达式。
6.一种数据处理装置,其特征在于,所述装置包括:
读取单元,获取至少一个数据源中待处理的数据;
处理单元,按照预先配置的多个处理规则依次对所述待处理的数据进行处理;其中,所述多个处理规则为针对ETL数据处理流程中的数据转换的不同处理阶段设置的规则;所述ETL数据处理流程分为数据抽取、数据转换和数据加载三个阶段;
输出单元,输出按照所述多个处理规则中的最后一个处理规则执行完数据处理后得到的目标数据;所述多个处理规则包括:预处理规则、计算规则和聚合规则;
其中,所述处理单元具体包括:合并单元、计算单元和聚合单元;
所述合并单元,根据配置有数据源的类型的所述预处理规则,将所述待处理的数据合并到一张数据表中;其中,所述数据源的类型包括:MYSQL和HIVE;一个数据源对应数据表中一列,同一数据源中每个待处理的数据记录在同一列中不同行;
所述计算单元,根据所述计算规则,对所述数据表中数据进行计算,并将计算结果记录到所述数据表;
其中,所述聚合单元具体包括:获取子单元、聚合子单元和确定子单元;
所述获取子单元,获取所述聚合规则的数据聚合SQL;
所述聚合子单元,基于所述数据聚合SQL将包含计算结果的数据表中对应每个数据源的结果数据聚合,得到每个数据源对应的包含处理结果的结果表;
所述计算单元包括:获取子单元、计算子单元和记录子单元;
所述获取子单元,获取所述计算规则的计算表达式;
所述计算子单元,基于所述计算表达式对所述数据表中每行的数据进行计算;
所述记录子单元,将每行的计算结果记录到该行的预设位置;
缓存子单元,通过Spark技术,将每个处理规则处理结果缓存在内存,并在下一处理规则执行前从内存中获取上一处理规则缓存的处理结果。
7.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-5中任一项所述的方法。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810411601.XA CN110457348B (zh) | 2018-05-02 | 2018-05-02 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810411601.XA CN110457348B (zh) | 2018-05-02 | 2018-05-02 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457348A CN110457348A (zh) | 2019-11-15 |
CN110457348B true CN110457348B (zh) | 2022-05-10 |
Family
ID=68471572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810411601.XA Active CN110457348B (zh) | 2018-05-02 | 2018-05-02 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457348B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909061A (zh) * | 2019-11-27 | 2020-03-24 | 恩亿科(北京)数据科技有限公司 | 数据源处理方法、装置、电子设备及存储介质 |
CN111125004B (zh) * | 2019-12-03 | 2021-09-17 | 中盈优创资讯科技有限公司 | 文件采集方法及装置 |
CN113850395B (zh) * | 2021-09-24 | 2022-11-25 | 北京九章云极科技有限公司 | 一种数据处理方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508919B (zh) * | 2011-11-18 | 2014-10-29 | 从兴技术有限公司 | 数据处理方法及系统 |
US8943059B2 (en) * | 2011-12-21 | 2015-01-27 | Sap Se | Systems and methods for merging source records in accordance with survivorship rules |
CN105868191B (zh) * | 2015-01-19 | 2020-01-17 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置 |
CN106921614B (zh) * | 2015-12-24 | 2020-05-22 | 北京国双科技有限公司 | 业务数据处理方法和装置 |
CN106933907B (zh) * | 2015-12-31 | 2020-09-15 | 北京国双科技有限公司 | 数据表扩展指标的处理方法及装置 |
CN106156307A (zh) * | 2016-06-30 | 2016-11-23 | 北京奇虎科技有限公司 | 一种实时计算平台的数据处理系统和方法 |
CN107784039A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种数据加载方法、装置及系统 |
CN107958082B (zh) * | 2017-12-15 | 2021-03-26 | 杭州有赞科技有限公司 | 数据库到数据仓库的离线增量同步方法及系统 |
CN107967355A (zh) * | 2017-12-19 | 2018-04-27 | 金蝶软件(中国)有限公司 | 一种数据的获取方法、装置及介质 |
-
2018
- 2018-05-02 CN CN201810411601.XA patent/CN110457348B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110457348A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347787B2 (en) | Image retrieval method and apparatus, system, server, and storage medium | |
CN110457348B (zh) | 一种数据处理方法及装置 | |
CN107066519B (zh) | 一种任务检测方法及装置 | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN110647562B (zh) | 一种数据查询方法和装置、电子设备、存储介质 | |
CN110232095B (zh) | 一种数据同步方法、装置、存储介质和服务器 | |
CN109783457A (zh) | Cgi接口管理方法、装置、计算机设备和存储介质 | |
CN114860654A (zh) | 一种基于Flink数据流的Iceberg表Schema动态变更方法及系统 | |
CN110377276B (zh) | 源代码文件管理方法及设备 | |
CN106095809B (zh) | 数据匹配方法及系统 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
WO2016165461A1 (zh) | 一种电信网网管系统软件自动化测试方法和装置 | |
CN114611039B (zh) | 异步加载规则的解析方法、装置、存储介质和电子设备 | |
CN112579676A (zh) | 异构系统间的数据处理方法、装置、存储介质和设备 | |
CN114969036A (zh) | 数据检索方法及装置 | |
CN114218013A (zh) | 搜索方法、装置、电子设备存储介质 | |
CN110598072B (zh) | 一种特征数据聚合方法及装置 | |
CN114490510A (zh) | 文本流归档方法、装置、计算机设备及存储介质 | |
CN108614838B (zh) | 一种用户群索引处理方法、装置及系统 | |
CN106649720B (zh) | 一种数据处理方法及服务器 | |
CN110990475B (zh) | 批量任务插入方法、装置、计算机设备及存储介质 | |
CN111079391B (zh) | 一种报表的生成方法及装置 | |
CN111427893B (zh) | json数据存储方法、装置、计算机设备和存储介质 | |
CN113742360B (zh) | 基于元数据快速生成异构数据库sql脚本方法和装置 | |
CN116821146B (zh) | 一种基于Apache Iceberg的数据表列更新方法及系统 |
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 |