文件合并方法和装置与流程

文档序号:11063546阅读:347来源:国知局
本申请涉及数据处理领域,具体而言,涉及一种文件合并方法和装置。
背景技术
:数据分析所需的记录报表数据的文件往往来自系统的不同部分或者不同的系统。这些文件记录了同一业务的不同指标,是相互关联的,工作人员需要将这些数据文件进行整合计算,生成最终的报表文件,供数据分析使用。然而,现有文件合并的方式主要是通过人工识别不同渠道源文件的数据格式信息,对这些文件进行手动合并,这种处理方式效率比较低,无法满足大量文件的合并处理。针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:本申请实施例提供了一种文件合并方法和装置,以至少解决现有技术中记录报表数据的文件合并处理效率低的技术问题。根据本申请实施例的一个方面,提供了一种文件合并方法,包括:读取记录有待合并的多个源文件的元数据的配置文件,其中,所述源文件为记录有报表数据的文件;根据所述元数据记录的源文件的路径信息,读取多个所述源文件;识别多个所述源文件中的报表数据的关键列,其中,所述关键列为多个所述源文件中不同源文件记录相同内容的数据列;以及利用所述关键列将多个所述源文件关联,并进行合并。进一步地,从所述元数据记录的源文件的路径读取多个所述源文件包括:从所述元数据记录的源文件的路径加载多个所述源文件;将多个所述源文件中的报表数据的空白行过滤,得到过滤后的多个所述源文件。进一步地,识别多个所述源文件中的报表数据的关键列包括:判断多个所述源文件的报表数据中是否存在标签列;在判断出存在所述标签列时,将所述标签列作为所述关键列。进一步地,利用所述关键列将多个所述源文件关联,并进行合并包括:从所述元 数据记录的标签文件的路径读取所述标签文件,其中,所述标签文件用于记录所述标签列里每项标签所对应的信息;利用所述标签文件将所述多个所述源文件关联,将关联后的多个所述源文件合并。进一步地,在判断出不存在所述标签列时,所述方法还包括:将所述多个所述源文件中的报表数据的数据列进行匹配;确定出多个所述源文件中不同源文件记录相同内容的数据列,作为所述关键列。根据本申请实施例的另一方面,还提供了一种文件合并装置,包括:第一读取单元,用于读取记录有待合并的多个源文件的元数据的配置文件,其中,所述源文件为记录有报表数据的文件;第二读取单元,用于根据所述元数据记录的源文件的路径信息,读取多个所述源文件;识别单元,用于识别多个所述源文件中的报表数据的关键列,其中,所述关键列为多个所述源文件中不同源文件记录相同内容的数据列;以及合并单元,用于利用所述关键列将多个所述源文件关联,并进行合并。进一步地,所述第二读取单元包括:加载模块,用于从所述元数据记录的源文件的路径加载多个所述源文件;过滤模块,用于将多个所述源文件中的报表数据的空白行过滤,得到过滤后的多个所述源文件。进一步地,所述识别单元包括:判断模块,用于判断多个所述源文件的报表数据中是否存在标签列;第一确定模块,用于在判断出存在所述标签列时,将所述标签列作为所述关键列。进一步地,所述合并单元包括:读取模块,用于从所述元数据记录的标签文件的路径读取所述标签文件,其中,所述标签文件用于记录所述标签列里每项标签所对应的信息;合并模块,用于利用所述标签文件将所述多个所述源文件关联,将关联后的多个所述源文件合并。进一步地,所述装置还包括:匹配单元,用于在判断出不存在所述标签列时,将所述多个所述源文件中的报表数据的数据列进行匹配;第二确定模块,用于确定出多个所述源文件中不同源文件记录相同内容的数据列,作为所述关键列。根据本申请实施例,通过读取记录有待合并的多个源文件的元数据的配置文件,其中,源文件为记录有报表数据的文件,从元数据记录的源文件的路径读取多个源文件,识别多个源文件中的报表数据的关键列,利用关键列将多个源文件关联,并进行合并。基于源文件的元数据读取源文件,并从中识别出关键列,从而将记录有描述同一业务的不同指标数据的源文件合并成一个文件,相对于现有技术中手动合并文件的方式而言,文件合并的效率大大提高,解决了现有技术中记录报表数据的文件合并处 理效率低的技术问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本发明实施例的文件合并方法的流程图;图2是根据本发明实施例的文件合并装置的示意图。具体实施方式为了使本
技术领域
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本申请实施例,提供了一种文件合并方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图1是根据本申请实施例的文件合并方法的流程图,如图1所示,该方法包括如下步骤:步骤S102,读取记录有待合并的多个源文件的元数据的配置文件,其中,源文件为记录有报表数据的文件。步骤S104,根据所述元数据记录的源文件的路径信息,读取多个所述源文件。其中,路径信息可以包含源文件的文件名、文件存储位置、文件记录时间等。步骤S106,识别多个源文件中的报表数据的关键列,其中,关键列为多个源文件中不同源文件记录相同内容的数据列。步骤S108,利用关键列将多个源文件关联,并进行合并。源文件的元数据记录有该源文件的编码格式、存储路径等数据,如表1所示:表1元数据说明Encoding源文件的编码格式HasHeader是否包含列标题StartLine起始行索引Column需要抽取的列ColumnHeader列标题KeyColumn主键列(匹配文件需要的列)MatchMode匹配模式FolderPath源文件所在目录TagFilePathTag文件的路径将待合并的多个源文件的元数据记录的配置文件中,由于源文件的元数据为文件合并过程中所需的数据,在进行文件合并之前,先读取配置文件以读取配置文件中的元数据。在读取配置文件之后,从元数据中记录的源文件的路径读取相应的源文件,可以将读取的源文件缓存到本地内存中。配置文件中配置有待合并的源文件所对应的元数据,从每一个源文件对应的元数据记录里的路劲中读取相应的源文件,从而可以读取到待合并的源文件。在读取到源文件之后,识别多个源文件中的报表数据的关键列,关键列为多个源文件中不同源文件记录相同内容的数据列,例如,源文件A和源文件B中均记载了“城 市”这一维度的指标数据,则将“城市”这一列作为关键列。在识别出关键列之后,利用该关键列将多个源文件相关联,并合并成一个文件输出。根据本申请实施例,通过读取记录有待合并的多个源文件的元数据的配置文件,其中,源文件为记录有报表数据的文件,从元数据记录的源文件的路径读取多个源文件,识别多个源文件中的报表数据的关键列,利用关键列将多个源文件关联,并进行合并。基于源文件的元数据读取源文件,并从中识别出关键列,从而将记录有描述同一业务的不同指标数据的源文件合并成一个文件,相对于现有技术中手动合并文件的方式而言,文件合并的效率大大提高,解决了现有技术中记录报表数据的文件合并处理效率低的技术问题。本申请实施例中,源文件优选csv文件,或者是可以转换为csv文件的其他文件,例如Excel文件等。在进行源文件合并时,将源文件统一转化为csv文件,由于csv文件是以纯文本格式存储的表格数据,能够提高数据读取的效率,从而提高文件合并的效率。优选地,源文件的元数据中主要记载了以下内容:文件的格式如编码格式;文件中的数据正文(所谓数据正文是指报表实际需要的数据。在源文件中往往会包含与生成报表无关的数据行):起始行;需要读取的数据列;标签(Tag)文件:某些源文件包含一个标识(ID)列,在Tag文件记录了该ID对应的具体信息,如表2和表3所示,其中,表2为源文件,表3为Tag文件:表2TagID指标1100290表3TagID省份城市1河北石家庄2河南郑州关于本申请实施例中的源文件的关键列举例如下,其中,表4为源文件A,表5为源文件B:表4省份城市指标1河北石家庄100河南郑州90表5省份城市指标2河北石家庄100河南郑州90这种情况,由于源文件A和B中都包含了匹配需要的关键列如“省份”和“城市”,那么根据这些关键列就可以将源文件A和B关联起来,并合并成一个文件。优选地,从元数据记录的源文件的路径读取多个源文件包括:从元数据记录的源文件的路径加载多个源文件;将多个源文件中的报表数据的空白行过滤,得到过滤后的多个源文件。在读取源文件之后,如果源文件中存在无用行即空白行,在将该空白行过滤,避免空白行影响文件的合并。优选地,识别多个源文件中的报表数据的关键列包括:判断多个源文件的报表数据中是否存在标签列;在判断出存在标签列时,将标签列作为关键列。本申请实施例中,当源文件中存在标签列时,当不同源文件的标签列上的相同标识表示的信息相同时,可以将给标签列作为上述关键列。例如在上述源文件A和源文件B中,将其中“省份”和“城市”以标签列替换时,且源文件A中的标签列的标识与源文件B中的标签列的标识相同时,其表示的信息也相同,则可以该标签列为关键列。进一步地,利用关键列将多个源文件关联,将多个源文件合并包括:从元数据记 录的标签文件的路径读取标签文件,其中,标签文件用于记录标签列里每项标签所对应的信息;利用标签文件将多个源文件关联,将关联后的多个源文件合并。以上述中源文件A和B为例进行说明。假如,源文件A变为表6,源文件B变为表7:表6TagID指标11100290表7TagID指标21100290此时,需要读取Tag文件,如表8所示:表8TagID省份城市1河北石家庄2河南郑州这样,可以通过中间文件Tag文件将源文件A和B关联,并合并成一个文件,如表9所示:表9省份城市指标1指标2河北石家庄100100河南郑州9090本申请实施例中,如果上述源文件A不变(即表4),源文件B为表7时,也可以读取Tag文件表9,利用该Tag文件将源文件A和B合并成一个文件表9。优选地,在判断出不存在标签列时,方法还包括:将多个源文件中的报表数据的 数据列进行匹配;确定出多个源文件中不同源文件记录相同内容的数据列,作为关键列。如果不存在标签列时,则将不同的源文件中记录的数据列进行匹配,在匹配到相同的数据列时,将该数据列作为关键列,用以进行源文件的关联与合并。根据本申请实施例,通过利用元数据,可以自动化地合并不同来源的数据文件,为进一步整合报表提供经过合并的文件,提高了效率。本发明实施例还提供了一种文件合并装置,该装置可以用于执行本发明实施例的文件合并方法,如图2所示,该装置包括:第一读取单元10、第二读取单元20、识别单元30和合并单元40。第一读取单元10用于读取记录有待合并的多个源文件的元数据的配置文件,其中,源文件为记录有报表数据的文件;第二读取单元20用于根据所述元数据记录的源文件的路径信息,读取多个所述源文件。识别单元30用于识别多个源文件中的报表数据的关键列,其中,关键列为多个源文件中不同源文件记录相同内容的数据列;以及合并单元40用于利用关键列将多个源文件关联,并进行合并。源文件的元数据记录有该源文件的编码格式、存储路径等数据,如表1所示。将待合并的多个源文件的元数据记录的配置文件中,由于源文件的元数据为文件合并过程中所需的数据,在进行文件合并之前,先读取配置文件以读取配置文件中的元数据。在读取配置文件之后,从元数据中记录的源文件的路径读取相应的源文件,可以将读取的源文件缓存到本地内存中。配置文件中配置有待合并的源文件所对应的元数据,从每一个源文件对应的元数据记录里的路劲中读取相应的源文件,从而可以读取到待合并的源文件。在读取到源文件之后,识别多个源文件中的报表数据的关键列,关键列为多个源文件中不同源文件记录相同内容的数据列,例如,源文件A和源文件B中均记载了“城市”这一维度的指标数据,则将“城市”这一列作为关键列。在识别出关键列之后,利用该关键列将多个源文件相关联,并合并成一个文件输出。根据本申请实施例,通过读取记录有待合并的多个源文件的元数据的配置文件,其中,源文件为记录有报表数据的文件,从元数据记录的源文件的路径读取多个源文件,识别多个源文件中的报表数据的关键列,利用关键列将多个源文件关联,并进行合并。基于源文件的元数据读取源文件,并从中识别出关键列,从而将记录有描述同一业务的不同指标数据的源文件合并成一个文件,相对于现有技术中手动合并文件的方式而言,文件合并的效率大大提高,解决了现有技术中记录报表数据的文件合并处理效率低的技术问题。本申请实施例中,源文件优选csv文件,或者是可以转换为csv文件的其他文件,例如Excel文件等。在进行源文件合并时,将源文件统一转化为csv文件,由于csv文件是以纯文本格式存储的表格数据,能够提高数据读取的效率,从而提高文件合并的效率。优选地,源文件的元数据中主要记载了以下内容:文件的格式如编码格式;文件中的数据正文(所谓数据正文是指报表实际需要的数据。在源文件中往往会包含与生成报表无关的数据行):起始行;需要读取的数据列;标签(Tag)文件:某些源文件包含一个标识(ID)列,在Tag文件记录了该ID对应的具体信息。优选地,第二读取单元包括:加载模块,用于从元数据记录的源文件的路径加载多个源文件;过滤模块,用于将多个源文件中的报表数据的空白行过滤,得到过滤后的多个源文件。在读取源文件之后,如果源文件中存在无用行即空白行,在将该空白行过滤,避免空白行影响文件的合并。优选地,识别单元包括:判断模块,用于判断多个源文件的报表数据中是否存在标签列;第一确定模块,用于在判断出存在标签列时,将标签列作为关键列。本申请实施例中,当源文件中存在标签列时,当不同源文件的标签列上的相同标识表示的信息相同时,可以将给标签列作为上述关键列。例如在上述源文件A和源文件B中,将其中“省份”和“城市”以标签列替换时,且源文件A中的标签列的标识与源文件B中的标签列的标识相同时,其表示的信息也相同,则可以该标签列为关键列。优选地,合并单元包括:读取模块,用于从元数据记录的标签文件的路径读取标签文件,其中,标签文件用于记录标签列里每项标签所对应的信息;合并模块,用于利用标签文件将多个源文件关联,将关联后的多个源文件合并。以上述中源文件A和B为例进行说明。假如,源文件A变为表6,源文件B变为 表7,此时,需要读取Tag文件,这样,可以通过中间文件Tag文件将源文件A和B关联,并合并成一个文件,如表9所示。本申请实施例中,当如果上述源文件A不变(即表4),源文件B为表7时,也可以读取Tag文件表9,利用该Tag文件将源文件A和B合并成一个文件表9。优选地,装置还包括:匹配单元,用于在判断出不存在标签列时,将多个源文件中的报表数据的数据列进行匹配;第二确定模块,用于确定出多个源文件中不同源文件记录相同内容的数据列,作为关键列。如果不存在标签列时,则将不同的源文件中记录的数据列进行匹配,在匹配到相同的数据列时,将该数据列作为关键列,用以进行源文件的关联与合并。根据本申请实施例,通过利用元数据,可以自动化地合并不同来源的数据文件,为进一步整合报表提供经过合并的文件,提高了效率。所述文件合并装置包括处理器和存储器,上述第一读取单元10、第二读取单元20、识别单元30和合并单元40等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来对源文件进行合并。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:读取记录有待合并的多个源文件的元数据的配置文件,其中,源文件为记录有报表数据的文件;从元数据记录的源文件的路径读取多个源文件;识别多个源文件中的报表数据的关键列,其中,关键列为多个源文件中不同源文件记录相同内容的数据列;以及利用关键列将多个源文件关联,并进行合并。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分, 可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本申请的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1