本申请涉及数据处理领域,具体而言,涉及一种数据处理方法和装置。
背景技术:
在数据处理领域,为了能够便于数据分析,通常需要将不同数据源的数据导入到数据仓库中,进行统一管理。发明人发现,某些数据源的数据需要与其他的数据源的数据进行对接,这样,能够充分发挥数据的作用。然而现有技术中并没有关于将这些数据导入到数据仓库的方案,因此,无法实现将不同数据源的数据对接后导入到数据仓库。
针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
本申请实施例提供了一种数据处理方法和装置,以至少解决无法实现将不同数据源的数据对接后导入到数据仓库的技术问题。
根据本申请实施例的一个方面,提供了一种数据处理方法,包括:将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,所述第一数据源和所述第二数据源为待对接的不同数据源;将所述对接后的数据生成预设格式文件,其中,所述预设格式文件为通用的列式存储格式的文件;以及调用所述预设格式文件,将所述预设格式文件中对接后的数据加载到数据仓库中。
进一步地,将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据包括:在所述第一数据源接收到的一份数据日志时,将所述数据日志投放到预设队列中;将所述预设队列中的数据日志与所述第二数据源的数据进行实时对接;或者,批量加载所述第一数据源中的数据日志;将批量加载的数据日志与所述第二数据源的数据进行对接。
进一步地,所述方法还包括:接收修改请求;响应所述修改请求,加载目标数据对应的预设格式文件,对所述目标数据对应的预设格式文件进行修改;用修改后的预设格式文件覆盖所述目标数据对应的预设格式文件。
进一步地,对所述目标数据对应的预设格式文件进行修改包括:修改所述目标数据对应的预设格式文件中所述修改请求所指示修改的字段;用修改后的预设格式文件覆盖所述目标数据对应的预设格式文件包括:在所述目标数据对应的预设格式文件所在的分区文件夹下,用所述修改后的预设格式文件覆盖掉所述目标数据对应的预设格式文件。
进一步地,所述预设格式文件为parquet文件。
根据本申请实施例的另一方面,还提供了一种数据处理装置,包括:对接单元,用于将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,所述第一数据源和所述第二数据源为待对接的不同数据源;生成单元,用于将所述对接后的数据生成预设格式文件,其中,所述预设格式文件为通用的列式存储格式的文件;以及加载单元,用于调用所述预设格式文件,将所述预设格式文件中对接后的数据加载到数据仓库中。
进一步地,所述对接单元包括:投放模块,用于在所述第一数据源接收到的一份数据日志时,将所述数据日志投放到预设队列中;第一对接模块,用于将所述预设队列中的数据日志与所述第二数据源的数据进行实时对接;或者,所述对接单元包括:记载模块,用于批量加载所述第一数据源中的数据日志;第二对接模块,用于将批量加载的数据日志与所述第二数据源的数据进行对接。
进一步地,所述装置还包括:接收单元,用于接收修改请求;修改单元,用于响应所述修改请求,加载目标数据对应的预设格式文件,对所述目标数据对应的预设格式文件进行修改;覆盖单元,用于用修改后的预设格式文件覆盖所述目标数据对应的预设格式文件。
进一步地,所述修改单元包括:修改模块,用于修改所述目标数据对应的预设格式文件中所述修改请求所指示修改的字段;所述覆盖单元包括:覆盖模块,用于在所述目标数据对应的预设格式文件所在的分区文件夹下,用所述修改后的预设格式文件覆盖掉所述目标数据对应的预设格式文件。
进一步地,所述预设格式文件为parquet文件。
根据本申请实施例,通过将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,第一数据源和第二数据源为待对接的不同数据源;将对接后的数据生成预设格式文件,其中,预设格式文件为通用的列式存储格式的文件;调用预设格式文件,将预设格式文件中对接后的数据加载到数据仓库中。通过将对接后的数据生成预设格式文件,该文件可以兼容不同的数据源,这样,可以利用预设格式 文件的通用列式存储格式,将不同数据源对接后的数据导入到数据仓库中,解决了无法实现将不同数据源的数据对接后导入到数据仓库的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据处理方法的流程图;
图2是根据本申请实施例的数据处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种数据处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的数据处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤s102,将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,第一数据源和第二数据源为待对接的不同数据源。
第一数据源可以是用于存储监测得到的数据的数据源,例如日志服务器,用于收集日志数据的服务器。第二数据源可以是与第一数据源记录数据不同的第三方数据源,但第一数据源记录的数据与第二数据源记录的数据之间存在关联关系。例如,第一数据源为记录客户的线上访问或购买记录的数据,第二数据源记录的是线下客户的购买记录数据或者客户关系管理系统(customerrelationshipmanagement,简称为crm)记录的数据。
本申请实施例中,由于第一数据源的数据和第二数据源的数据具有相关性,因此,在将其导入到数据仓库之前,先对这些数据进行对接,得到对接后的数据。
步骤s104,将对接后的数据生成预设格式文件,其中,预设格式文件为通用的列式存储格式的文件。
本实施例中,将对接后的数据生成预设格式文件,该文件具有通用的列式存储格式,可以是例如parquet文件等。由于预设格式文件具有统一的存储格式,通过该文件的文件格式,能够兼容多种不同类型的第三方数据源。
步骤s106,调用预设格式文件,将预设格式文件中对接后的数据加载到数据仓库中。
通过调用上述预设格式文件,将对接后的数据导入到数据仓库中,完成数据导入流程。
根据本申请实施例,通过将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,第一数据源和第二数据源为待对接的不同数据源;将对接后的数据生成预设格式文件,其中,预设格式文件为通用的列式存储格式的文件;调用预设格式文件,将预设格式文件中对接后的数据加载到数据仓库中。通过将对接后的数据生成预设格式文件,该文件可以兼容不同的数据源,这样,可以利用预设格式文件的通用列式存储格式,将不同数据源对接后的数据导入到数据仓库中,解决了无法实现将不同数据源的数据对接后导入到数据仓库的技术问题。
优选地,本申请实施例的数据仓库可以是分布式数据仓库,预设格式文件可以是parquet文件,该parquet文件是一种面向列的二进制文件格式。
本申请实施例中,可以应用parquet文件作为数据仓库中数据分区的外部存储文件,当改变parquet文件内容时,其所对应的数据仓库里的数据也就发生了变化,这 中属性便于对数据做通用的数据对接。
根据本申请实施例,统一使用parquet文件格式,由于其格式本身就通用,并且便于进行数据对接,相对于使用hbase或者使用reddies或是其他的组件,本申请实施例大大降低了开销以及程序的复杂性和可读性。
优选地,将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据包括:在第一数据源接收到的一份数据日志时,将数据日志投放到预设队列中;将预设队列中的数据日志与第二数据源的数据进行实时对接。
本实施例中,对第一数据源的数据与第二数据源的数据采用实时对接的方式,具体地,预先定义一个队列即预设队列,并定义该队列的处理逻辑,用以对队列的数据与第二数据源的数据进行实时对接。在第一数据源接收到相应数据日志时,将其投到预设队列里,利用预先定义的处理逻辑,为队列里的每个数据进行第二数据源的数据的实时对接(本申请实施例中第二数据源提供数据对接功能),查询完成后,生成相应的预设格式文件。
本申请实施例中,可以采用数据仓库技术(extract-transform-load,简称为etl)工具将来向数据仓库中导入数据。其中,etl是指将数据从来源端经过抽取、转换、加载至目的端的过程。
本实施例中,数据的实时对接可以是在etl阶段之前,在将数据实时对接之后,缓存成统一的预设格式文件。这样,在etl阶段,可以直接通过etl工具调用预设格式文件,然后向数据仓库导入数据即可。
根据本申请实施例,通过采用实时对接的方式,确保在etl工具运行时所有数据都已经就绪,只需调用预设格式文件记录实现数据导入,提高数据导入效率。
可选地,将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据包括:批量加载第一数据源中的数据日志;将批量加载的数据日志与第二数据源的数据进行对接。
本实施例中,可以采用定时批量的数据对接方式,相对于实时对接的方式,数据的定时批量对接过程可以是在etl阶段中完成。例如,设置预设时间段,在该时间段内批量加载第一数据源中的数据日志,将其与第二数据源的数据进行对接。对于新增实体,采取定时批量对接的方案灵活度很高,且不影响已有维度指标。其中,新增实体可以是指第一数据源和第二数据源中新增加的维度指标对应的数据,第一数据源和第二数据源中已有维度指标的数据可以成为已有实体。本实施例中,对应新增实体,可以在数据仓库里创建相应的外部表,指向新添加的parquet文件目录即可。
优选地,方法还包括:接收修改请求;响应修改请求,加载目标数据对应的预设格式文件,对目标数据对应的预设格式文件进行修改;用修改后的预设格式文件覆盖目标数据对应的预设格式文件。
本实施例中,在数据已经导入到数据仓库中,即etl阶段已经完成,相应的预设格式文件如parquet文件已经生成,那么如果需要对数据做相应的修改,这里可以通过parquet文件的外部存储文件特性,只需加载相应的parquet文件数据,再重新进行对接,对接完成后,再将数据覆盖到原先的parquet文件目录即可。如改变相应parquet文件里某列的相应字段。
进一步地,对目标数据对应的预设格式文件进行修改包括:修改目标数据对应的预设格式文件中修改请求所指示修改的字段;用修改后的预设格式文件覆盖目标数据对应的预设格式文件包括:在目标数据对应的预设格式文件所在的分区文件夹下,用修改后的预设格式文件覆盖掉目标数据对应的预设格式文件。
本实施例中,每份对接的数据对应一个预设格式文件,在数据处理过程中,开辟数据分区用于存储包含有预设格式文件的文件夹,其中,并设置预设格式文件的目录。当修改预设格式文件时,从该目录中查找出相应的预设格式文件,加载该预设格式文件,修改相应的字段,并用修改后的预设格式文件覆盖掉文件夹下原有的文件。
本申请实施例还提供了一种数据处理装置,该装置可以用于执行本申请实施例的数据处理方法,如图2所示,该装置包括:对接单元10、生成单元20和加载单元30。
对接单元10用于将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,第一数据源和第二数据源为待对接的不同数据源。
第一数据源可以是用于存储监测得到的数据的数据源,例如日志服务器,用于收集日志数据的服务器。第二数据源可以是与第一数据源记录数据不同的第三方数据源,但第一数据源记录的数据与第二数据源记录的数据之间存在关联关系。例如,第一数据源为记录客户的线上访问或购买记录的数据,第二数据源记录的是线下客户的购买记录数据或者客户关系管理系统(customerrelationshipmanagement,简称为crm)记录的数据。
本申请实施例中,由于第一数据源的数据和第二数据源的数据具有相关性,因此,在将其导入到数据仓库之前,先对这些数据进行对接,得到对接后的数据。
生成单元20用于将对接后的数据生成预设格式文件,其中,预设格式文件为通用的列式存储格式的文件。
本实施例中,将对接后的数据生成预设格式文件,该文件具有通用的列式存储格式,可以是例如parquet文件等。由于预设格式文件具有统一的存储格式,通过该文件的文件格式,能够兼容多种不同类型的第三方数据源。
加载单元30用于调用预设格式文件,将预设格式文件中对接后的数据加载到数据仓库中。
通过调用上述预设格式文件,将对接后的数据导入到数据仓库中,完成数据导入流程。
根据本申请实施例,通过将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,第一数据源和第二数据源为待对接的不同数据源;将对接后的数据生成预设格式文件,其中,预设格式文件为通用的列式存储格式的文件;调用预设格式文件,将预设格式文件中对接后的数据加载到数据仓库中。通过将对接后的数据生成预设格式文件,该文件可以兼容不同的数据源,这样,可以利用预设格式文件的通用列式存储格式,将不同数据源对接后的数据导入到数据仓库中,解决了无法实现将不同数据源的数据对接后导入到数据仓库的技术问题。
优选地,本申请实施例的数据仓库可以是分布式数据仓库,预设格式文件可以是parquet文件,该parquet文件是一种面向列的二进制文件格式。
本申请实施例中,可以应用parquet文件作为数据仓库中数据分区的外部存储文件,当改变parquet文件内容时,其所对应的数据仓库里的数据也就发生了变化,这中属性便于对数据做通用的数据对接。
根据本申请实施例,统一使用parquet文件格式,由于其格式本身就通用,并且便于进行数据对接,相对于使用hbase或者使用reddies或是其他的组件,本申请实施例大大降低了开销以及程序的复杂性和可读性。
优选地,对接单元包括:投放模块,用于在第一数据源接收到的一份数据日志时,将数据日志投放到预设队列中;第一对接模块,用于将预设队列中的数据日志与第二数据源的数据进行实时对接。
本实施例中,对第一数据源的数据与第二数据源的数据采用实时对接的方式,具体地,预先定义一个队列即预设队列,并定义该队列的处理逻辑,用以对队列的数据与第二数据源的数据进行实时对接。在第一数据源接收到相应数据日志时,将其投到预设队列里,利用预先定义的处理逻辑,为队列里的每个数据进行第二数据源的数据的实时对接(本申请实施例中第二数据源提供数据对接功能),查询完成后,生成相应的预设格式文件。
本申请实施例中,可以采用数据仓库技术(extract-transform-load,简称为etl)工具将来向数据仓库中导入数据。其中,etl是指将数据从来源端经过抽取、转换、加载至目的端的过程。
本实施例中,数据的实时对接可以是在etl阶段之前,在将数据实时对接之后,缓存成统一的预设格式文件。这样,在etl阶段,可以直接通过etl工具调用预设格式文件,然后向数据仓库导入数据即可。
根据本申请实施例,通过采用实时对接的方式,确保在etl工具运行时所有数据都已经就绪,只需调用预设格式文件记录实现数据导入,提高数据导入效率。
可选地,对接单元包括:记载模块,用于批量加载第一数据源中的数据日志;第二对接模块,用于将批量加载的数据日志与第二数据源的数据进行对接。
本实施例中,可以采用定时批量的数据对接方式,相对于实时对接的方式,数据的定时批量对接过程可以是在etl阶段中完成。例如,设置预设时间段,在该时间段内批量加载第一数据源中的数据日志,将其与第二数据源的数据进行对接。对于新增实体,采取定时批量对接的方案灵活度很高,且不影响已有维度指标。其中,新增实体可以是指第一数据源和第二数据源中新增加的维度指标对应的数据,第一数据源和第二数据源中已有维度指标的数据可以成为已有实体。本实施例中,对应新增实体,可以在数据仓库里创建相应的外部表,指向新添加的parquet文件目录即可。
优选地,装置还包括:接收单元,用于接收修改请求;修改单元,用于响应修改请求,加载目标数据对应的预设格式文件,对目标数据对应的预设格式文件进行修改;覆盖单元,用于用修改后的预设格式文件覆盖目标数据对应的预设格式文件。
本实施例中,在数据已经导入到数据仓库中,即etl阶段已经完成,相应的预设格式文件如parquet文件已经生成,那么如果需要对数据做相应的修改,这里可以通过parquet文件的外部存储文件特性,只需加载相应的parquet文件数据,再重新进行对接,对接完成后,再将数据覆盖到原先的parquet文件目录即可。如改变相应parquet文件里某列的相应字段。
进一步地,修改单元包括:修改模块,用于修改目标数据对应的预设格式文件中修改请求所指示修改的字段;覆盖单元包括:覆盖模块,用于在目标数据对应的预设格式文件所在的分区文件夹下,用修改后的预设格式文件覆盖掉目标数据对应的预设格式文件。
本实施例中,每份对接的数据对应一个预设格式文件,在数据处理过程中,开辟数据分区用于存储包含有预设格式文件的文件夹,其中,并设置预设格式文件的目录。 当修改预设格式文件时,从该目录中查找出相应的预设格式文件,加载该预设格式文件,修改相应的字段,并用修改后的预设格式文件覆盖掉文件夹下原有的文件。
所述数据处理装置包括处理器和存储器,上述对接单元10、生成单元20和加载单元30等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来将不同数据源的数据进行对接后,导入到数据仓库中。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:将第一数据源的数据与第二数据源的数据进行对接处理,得到对接后的数据,其中,第一数据源和第二数据源为待对接的不同数据源;将对接后的数据生成预设格式文件,其中,预设格式文件为通用的列式存储格式的文件;以及调用预设格式文件,将预设格式文件中对接后的数据加载到数据仓库中。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。