CN106777398A - 一种csv文件的生成方法及装置 - Google Patents
一种csv文件的生成方法及装置 Download PDFInfo
- Publication number
- CN106777398A CN106777398A CN201710120772.2A CN201710120772A CN106777398A CN 106777398 A CN106777398 A CN 106777398A CN 201710120772 A CN201710120772 A CN 201710120772A CN 106777398 A CN106777398 A CN 106777398A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- csv file
- source data
- field label
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种CSV文件的生成方法及装置,其中,该方法包括:获取预先配置的、待生成的CSV文件的配置信息,所述配置信息包括:触发周期、源数据标识和各字段标签;所述字段标签用于表示所述CSV文件包括的数据类型;实时判断当前时刻是否满足所述触发周期,如果是,则依据所述源数据标识和各字段标签获取目标源数据;按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件。采用本申请实施例生成的CSV文件,更容易被财务人员等用户查看和浏览,不仅提升了报表***中数据的可读性,提升了用户的体验,同时还提高了报表***中处理数据的效率。
Description
技术领域
本申请涉及报表***中的ETL调度***技术领域,特别涉及一种生成字符分隔值(Comma-Separated Values,CSV)文件的方法及装置。
背景技术
报表***是将计算机技术与会计报表编制方法相结合而设计出的、专门用于报表数据处理的软件。目前,随着报表***中的业务人员需要的明细数据越来越多,导致明细数据的数量级较大,因此,在报表***中支持数据压缩包的导出,该数据压缩包供财务人员等自己下载并解压进行浏览。
一般情况下,导出的数据压缩包解压后得到的数据文件的可读性都较差,例如,数据文件中的分隔符不统一或者数据内容错位等,可能会导致财务人员对账时可能无法确定一行数据的开始或结尾,或者无法读懂数据等。
发明内容
发明人在研究过程中发现,现有技术中的报表***中可导出的数据压缩包,虽然也可以作为数据文件供财务人员等用户浏览,但是这些数据文件的数据可读性较差(例如数据内容错位等),而如果能为财务人员将可读性较差的数据文件预先进行可读性处理,例如,仅获取数据文件中的数据内容,并且对数据内容本身进行数据类型的归类等操作,从而可以得到数据内容不再错位且不包括各种类型的分隔符的CSV文件供用户浏览,CSV文件是一种用来存储电子表格或数据的纯文本文件,可读性较强,在将其直接提供给财务人员等用户查看的基础上,还不会影响报表***中处理数据的效率。
基于此,本申请提供了一种CSV文件的生成方法,用于解决现有技术中从报表***中导出的数据文件的可读性较差,影响数据处理效率等的问题。
本申请还提供了一种CSV文件的生成装置,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请提供的一种CSV文件的生成,该方法包括:
获取预先配置的、待生成的CSV文件的配置信息,所述配置信息包括:触发周期、源数据标识和各字段标签;所述字段标签用于表示所述CSV文件包括的数据类型;
实时判断当前时刻是否满足所述触发周期,如果是,则依据所述源数据标识和各字段标签获取目标源数据;
按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件。
其中,所述依据所述源数据标识和各字段标签获取目标源数据之前,还包括:
判断源数据库中是否保存有所述源数据标识对应的各个源文件,如果是,则执行所述依据所述源数据标识和各字段标签获取目标源数据。
其中,所述依据所述源数据标识和各字段标签获取目标源数据,包括:
依据所述源数据标识,从所述源数据库中定位目标源数据所在的各个源文件;
依据所述CSV文件包括的数据类型,分别从所述各个源文件中获取所述数据类型对应的目标源数据。
其中,所述按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件,包括:
将多个所述目标源数据合并为一个数据中间文件;
从所述数据中间文件中分别获取所述各字段标签对应的各条字段内容;
将所述各字段标签及其对应的各条字段内容组合为表格数据,得到目标CSV文件。
其中,所述将所述各字段标签及其对应的各条字段内容组合为表格数据,得到目标CSV文件,包括:
按照所述各字段标签在所述配置信息中的配置顺序,分别确定第N个字段标签;其中,N为整数,N的最小值为1,最大值为所述各字段标签的总个数;
将所述第N个字段标签及对应的第N条字段内容存储至预设表格的第N列位置,直至各字段标签都处理完毕;
将存储后的预设表格保存为所述目标CSV文件。
其中,所述配置信息还包括拆分标签,所述拆分标签为所述各字段标签中的任意一个字段标签,所述将存储后的预设表格保存为所述目标CSV文件,包括:
从所述预设表格中所述拆分标签所在的列位置中,获取不同的字段内容分别作为拆分后的CSV文件的名称;
将存储后的预设表格保存为固定个数的CSV文件;其中,所述固定个数与所述不同的字段内容的个数相同,且所述固定个数的CSV文件的名称分别为所述不同的字段内容。
其中,所述配置信息还包括:待上传的服务器地址和文件地址;所述方法还包括:
将生成的目标CSV文件上传至所述服务器地址对应的目标服务器中的文件地址处。
其中,所述配置信息还包括:日志存储地址;所述方法还包括:
将生成所述目标CSV文件的日志信息存储至所述日志存储地址。
本申请实施例提供了一种CSV文件的生成装置,该装置包括:
配置获取单元,用于获取预先配置的、待生成的CSV文件的配置信息,所述配置信息包括:触发周期、源数据标识和各字段标签;所述字段标签用于表示所述CSV文件包括的数据类型;
第一判断单元,用于实时判断当前时刻是否满足所述触发周期;
源数据获取单元,用于在所述判断单元的结果为是的情况下,依据所述源数据标识和各字段标签获取目标源数据;
生成单元,用于按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件。
其中,所述装置还包括:
第二判断单元,用于判断源数据库中是否保存有所述源数据标识对应的源文件;
触发单元,用于在所述第二判断单元的结果为是的情况下,触发所述源数据获取单元。
其中,所述源数据获取单元包括:
定位子单元,用于依据所述源数据标识,从所述源数据库中定位目标源数据所在的各个源文件;
源数据获取子单元,用于依据所述CSV文件包括的数据类型,分别从所述各个源文件中获取所述数据类型对应的目标源数据。
其中,所述生成单元包括:
合并子单元,用于将多个所述目标源数据合并为一个数据中间文件;
字段内容获取子单元,用于从所述数据中间文件中分别获取所述各字段标签对应的各条字段内容;
组合子单元,用于将所述各字段标签及其对应的各条字段内容组合为表格数据,得到目标CSV文件。
其中,所述组合子单元包括:
标签确定子单元,用于按照所述各字段标签在所述配置信息中的配置顺序,分别确定第N个字段标签;
存储子单元,用于将所述第N个字段标签及对应的第N条字段内容存储至预设表格的第N列位置,直至各字段标签都处理完毕;其中,N为整数,N的最小值为1,最大值为所述各字段标签的总个数;
保存子单元,用于将存储后的预设表格保存为所述目标CSV文件。
其中,所述配置信息还包括拆分标签,所述拆分标签为所述各字段标签中的任意一个字段标签,所述组合子单元包括:
名称获取子单元,用于从所述预设表格中所述拆分标签所在的列位置中,获取不同的字段内容分别作为拆分后的CSV文件的名称;
保存子单元,用于将存储后的预设表格保存为固定个数的CSV文件;其中,所述固定个数与所述不同的字段内容的个数相同,且所述固定个数的CSV文件的名称分别为所述不同的字段内容。
其中,所述配置信息还包括:待上传的服务器地址和文件地址;所述装置还包括:
上传单元,用于将生成的目标CSV文件上传至所述服务器地址对应的目标服务器中的文件地址处。
其中,所述配置信息还包括:日志存储地址;所述装置还包括:
日志存储单元,用于将生成所述目标CSV文件的日志信息存储至所述日志存储地址。
与现有技术相比,本申请包括以下优点:
在本申请实施例中,预先为待生成的CSV文件配置好配置信息,在该配置信息中指明了生成CSV文件的源数据,以及CSV文件的字段标签,因此,在触发周期到来时,就可以依据源数据来生成可读性较好的CSV文件,在CSV文件中,因为只有数据内容本身,不再包括不统一的分隔符,并且,因为每一列数据都对应于预先配置好的各个字段标签,所以也不再有数据错位等情况的发生。因此,生成的CSV文件就更容易被财务人员等用户查看和浏览,不仅提升了报表***中数据的可读性,提升了用户的体验,同时还提高了报表***中处理数据的效率。
进一步的,本申请实施例还可以在数据量较大的情况下,生成多个CSV文件,使得每个CSV文件的数据量都不会太大,降低了在下载和查看CSV文件时对报表***的性能的影响。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的CSV文件的生成方法实施例1的流程图;
图2是本申请的CSV文件的生成方法实施例2的流程图;
图3是本申请的CSV文件的生成装置实施例的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,示出了本申请一种CSV文件的生成方法实施例的流程图,本实施例可以应用于报表***的服务器上,本实施例可以包括以下步骤:
步骤101:获取预先配置的、待生成的CSV文件的配置信息,所述配置信息包括:触发周期、源数据标识和各字段标签;所述字段标签用于表示所述CSV文件包括的数据类型。
在本实施例中,可以由本领域技术人员预先为待生成的CSV文件预先配置相应的配置信息,该配置信息可以包括:触发周期、源数据标识和各字段标签等。该配置信息在实际应用中可以保存在配置文件中,后续直接从配置文件中读取各种配置信息即可,当然,配置信息也可以以其他形式保存。
在配置信息中,触发周期指的是触发生成CSV文件的流程的时间周期,例如,日触发、周触发、月触发等。如果是日触发,则可以每天都执行一次本实施例的流程,即每天都生成一次CSV文件,以此类推,月触发就是每月生成一次CSV文件。源数据标识用于标识待生成的CSV文件中的数据内容的来源,例如,源数据标识可以是Hive数据库中源文件的名称“pay_bills”,则表示该“pay_bills”文件中有生成CSV文件的数据内容,在后续可以根据源数据标识来定位到Hive数据库中的源文件。Hive是一种基于Hadoop的一个数据仓库工具,当然,源文件也可以不是Hive数据库中的数据,也可以是其他类型的数据库中的数据。
而配置信息中的各字段标签则是待生成的CSV文件中的数据类型,在实际应用中,例如CSV文件可以是一种表格数据,则各字段标签就可以是该表格数据中各列数据的列标题。例如,配置信息中的字段标签分别为:“业务类型”、“支付名称”、“网关支付金额”和“网关退款金额”,则最后生成的CSV文件中就有四列数据,各列数据的列标题就分别为:“业务类型”、“支付名称”、“网关支付金额”和“网关退款金额”。此外,各字段标签还可以在配置信息中有一定的配置顺序,例如,仍以上述“业务类型”、“支付名称”、“网关支付金额”和“网关退款金额”的字段标签为例,第一个字段标签为“业务类型”,则待生成的CSV文件中的第一列数据内容的列标题就为“业务类型”,以此类推,第四列数据内容的列标题就为“网关退款金额”。但是,在实际应用中,也可以不以各字段标签的配置顺序为准来部署目标CSV文件中的各列数据,只需要各字段标签都在目标CSV文件中作为列标题存在即可。
步骤102:实时判断当前时刻是否满足所述触发周期,如果是,则进入步骤103。
在获取到配置信息后,接着实时判断当前时刻是否满足所述触发周期所表示的时刻。例如,假设触发周期为日触发,而本领域技术人员预先设置好的基础日期为:2017年2月22日13:00,则当前时刻为“2017年2月23日13:00”时,就满足了所述日触发的触发周期,即,在2017年2月23日13:00的时刻,执行步骤103。可以理解的是,在当前时刻不满足触发周期的情况下,可以重复执行步骤102,或者隔一个预设时间段再执行步骤102,例如,隔10分钟执行一次步骤102等。
步骤103:判断源数据库中是否保存有所述源数据标识对应的各个源文件,如果是,则进入步骤104。
在到达触发周期的时刻后,接着再判断源数据库中是否存储有源数据标识对应的各个源文件。在本实施例中,可以采用Hive数据库保存源数据,因为待生成的CSV文件中的数据都是由目标源数据得来的,所以需要先判断目标源数据是否都保存在了Hive数据库中,如果目标源数据都保存在Hive数据库中了再触发步骤104。
在实际应用中,Hive数据库可以采用源文件的形式来保存源数据,每一个源文件都可以采用源文件名称来进行标识。例如,在Hive数据库中有四个源文件,源文件名称分别为:“pay_bills”、“ten_bills”、“gwara_bills”和“dim_pay”,而源数据标识为:“pay_bills”和“gwara_bills”,则说明Hive数据库中已经保存有源数据标识对应的目标源数据,在这种情况下继续触发步骤104;而如果源数据标识为:“diy_pay”,则判断得到Hive数据库中没有保存有对应的源文件的结果,在这种情况下,就不执行后续步骤104。
当然,为了减少对Hive数据库的查询次数,Hive数据库还可以专门用一个标识表格来保存已经保存过的源文件名称,这样的话,执行本步骤时直接从该标识表格中判断源数据标识是否存在即可。
步骤104:依据所述源数据标识和各字段标签获取目标源数据。
在本步骤中,再依据配置信息中的源数据标识和各字段标签,从源文件中获取到需要生成CSV文件的目标源数据。
具体的,步骤104具体可以包括步骤A1~步骤A2:
步骤A1:依据所述源数据标识,从源数据库中定位目标源数据所在的各个源文件。
在实际应用中,可以采用源文件名称作为源数据标识,以便通过源文件名称来从Hive数据库中定位目标源数据所在的各个源文件。例如,源数据标识分别为:“pay_bills”、“ten_bills”、“gwara_bills”和“dim_pay”,则表示目标源数据需要从数据库中的这四个源文件中获取。
步骤A2:依据所述CSV文件包括的数据类型,分别从所述各个源文件中获取所述数据类型对应的目标源数据。
在Hive数据库中的各个源文件可能保存着大量的源数据,并且每个原文件中可能只有一部分数据是目标源数据,其他数据不需要获取。因此,在本步骤中,就需要依据待生成的CSV文件中所包括的数据类型,来从各个源文件中获取到该数据类型所对应的目标源数据。例如,字段标签分别有如下:“业务类型”、“支付名称”、“网关支付金额”、“网关退款金额”、“收款账户”和“交易日期”,而源文件“pay_bills”中保存有“支付名称”的源数据,源文件“ten_bills”中保存有“业务类型”和“交易日期”的源数据,源文件“gwara_bills”中保存有“网关支付金额”的源数据,源文件“dim_pay”中保存有“收款账户”和“网关退款金额”的源数据。则具体的,需要分别从源文件“pay_bills”中获取“支付名称”的源数据,从源文件“ten_bills”中获取“业务类型”和“交易日期”的源数据,从源文件“gwara_bills”中获取“网关支付金额”的源数据,以及,从源文件“dim_pay”中获取“收款账户”和“网关退款金额”的源数据。
步骤105:按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件。
再按照配置信息中的各字段标签所表示的数据类型,将从源文件中获取到的目标源数据生成为目标CSV文件。例如,字段标签“业务类型”表示对应的CSV文件中某一列数据的数据类型为“业务类型”。
具体的,步骤105可以包括步骤B1~步骤B3:
步骤B1:将多个所述目标源数据合并为一个数据中间文件。
在本步骤中,因为目标源数据一般是从多个源文件中获取到的,因此,在生成CSV文件之前,可以先将获取到的目标源数据直接合并为一个数据中间文件。该数据中间文件中已经包括了CSV文件中的所有源数据,但是该数据中间文件因为是将各个源文件中的目标源数据直接合并得到的,所以可能会存在一些分隔符,例如空格,或者“/t”等,仍然是用户难以读懂的,所以后续需要将该数据中间文件再生成为表格数据的CSV文件。
步骤B2:从所述数据中间文件中分别获取所述各字段标签对应的各条字段内容。
在数据中间文件中保存了从各个源文件获取到的目标源数据,因此,数据中间文件中就保存了CSV文件中的各个字段标签所对应的字段内容,所以可以按照各字段标签在配置信息中的配置顺序,来从数据中间文件中获取对应的各条字段内容。例如,按照配置顺序第一个字段标签为“业务类型”,而数据中间文件中第一列数据为:“选座票、选座票、选座票、选影片”,则针对字段标签“业务类型”,获取到的第一条字段内容就是:“选座票、选座票、选座票、选影片”,该第一条字段内容将作为CSV文件的第一列数据内容,以此类推,可以得到CSV文件中的全部列数据内容。
步骤B3:将所述各字段标签及其对应的各条字段内容组合为表格数据,得到目标CSV文件。
待CSV文件中的各个字段标签对应的各条字段内容都从数据中间文件中获取到以后,则将全部字段标签即对应的全部字段内容分别作为表格数据,存储至预设的EXCEL表格中,从而得到目标CSV文件,该CSV文件可以用EXCEL程序打开。
参考表1所示,为一种示例性的CSV文件打开后的界面示意表。
表1
在表1中,各列的列标题按照配置顺序分别为:“交易类型”、“支付时间”、“商户订单号”、“支付方式”、“业务类型”、“收款金额”和“退款金额”,即分别对应了配置信息中的字段标签,而第一个字段标签“交易类型”对应的字段内容为:“'钱包余额'、'钱包余额'、'钱包余额'、'钱包余额'、'卡快捷支付'和'卡快捷支付'”,因为字段内容一共有6个,所以每一个字段内容分布一行,即,字段标签“交易类型”的字段内容共有6行,以此类推,字段标签“支付时间”的字段内容也是6个,分布了6行,最后一个字段标签“退款金额”的字段内容也是6个,分别分布了6行。
在实际应用中,CSV文件生成以后,为了供财务人员等用户下载查看,可以在配置信息中配置FTP服务器地址和文件地址,其中,FTP服务器地址对应于待上传的服务器,文件地址为该待上传的服务器中CSV文件的保存地址,因此,在步骤105之后,还可以包括:
步骤106:将生成的目标CSV文件上传至所述服务器地址对应的目标服务器中的文件地址处。
根据配置信息中的FTP服务器地址和文件地址,将目标CSV文件上传至该FTP服务器中的文件地址处。例如,FTP服务器地址可以为:“FTP_ip=10.10.10.10”,该FTP服务器地址表示上传至IP地址为“10.10.10.10”的FTP服务器,而文件地址可以为:“ftp_dir=ftpdata/Finance/”,该文件地址表示目标CSV文件保存至该FTP服务器中的“ftpdata/Finance/”路径处。进一步的,配置信息中还可以预先配置好目标CSV文件的名称,例如,“program=ftp_payment_gateway”,则表示“payment_gateway”为目标CSV文件的名称。
当然,以上示例仅仅是具体应用中的可能的数据,不应将其理解为本申请的限定。
在实际应用中,配置信息中还可以包括:日志存储地址;该日志存储地址可以表示将CSV文件的生成日志的存放地址,以便本领域技术人员从该存放地址处查看CSV文件的日志。则本实施例还可以将生成的所述目标CSV文件的日志信息存储至所述日志存储地址,其中,该日志信息可以包括生成CSV文件的过程中产生的中间数据或结果数据,以及,CSV文件的源数据信息,上传的地址信息等。
可见,在本申请实施例中,预先为待生成的CSV文件配置好配置信息,在该配置信息中指明了生成CSV文件的源数据,以及CSV文件的字段标签,因此,在触发周期到来时,就可以依据源数据生成可读性较好的CSV文件,在CSV文件中,因为只有数据内容本身,不再包括不统一的分隔符,并且,因为每一列数据都对应于预先配置好的各个字段标签,所以也不再有数据错位等情况的发生。因此,生成的CSV文件就更容易被财务人员等用户查看和浏览,不仅提升了报表***中数据的可读性,提升了用户的体验,同时还提高了报表***中处理数据的效率。
参考图2,示出了本申请一种CSV文件的生成方法实施例的流程图,本实施例可以应用于报表***的服务器上,本实施例可以包括以下步骤:
步骤201:获取预先配置的、待生成的CSV文件的配置信息,所述配置信息可以包括:触发周期、源数据标识、各字段标签、待上传的服务器地址、拆分标签。
其中,拆分标签可以用于表示将目标CSV文件拆分为多个CSV文件,拆分标签可以是配置信息中各字段标签中的任意一个字段标签,具体设置为哪个字段标签可以由本领域技术人员自主确定。如果各字段标签对应的各条字段内容的数据级较大,例如字段内容有10万行等,那么就会生成一个具有10万行数据内容的CSV文件,这就可能会导致文件内容过多而下载和打开都较为缓慢。因此,可以采用拆分标签来生成多个CSV文件。
步骤202:当前时刻满足触发周期且源数据库中都保存有源数据标识对应的目标源数据时,依据所述源数据标识,从源数据库中定位目标源数据所在的各个源文件。
步骤203:依据所述CSV文件包括的数据类型,分别从所述各个源文件中获取所述各数据类型对应的目标源数据。
步骤204:将多个所述目标源数据合并为一个数据中间文件,并从所述数据中间文件中分别获取所述各字段标签对应的各条字段内容。
步骤202~步骤204的内容可以参考实施例1的相关介绍,在此不再赘述。
步骤205:按照所述各字段标签在所述配置信息中的配置顺序,分别确定第N个字段标签。
在本实施例中,在生成CSV文件的具体过程中,可以按照配置信息中各字段标签的配置顺序,来分别确定CSV文件中的第一列至第N列数据内容。其中,N为整数,N的最小值为1,最大值为所述各字段标签的总个数。例如,配置信息中的各字段标签分别为:“订单号、业务类型、支付名称和支付方式名称”,则第一个字段标签为“订单号”,第二个字段标签为“业务类型”,第三个字段标签为“支付名称”,第四个字段标签为“支付方式名称”。
步骤206:将所述第N个字段标签及对应的第N条字段内容存储至预设表格的第N列位置,直至各字段标签都处理完毕。
在本步骤中,假设仍以N为4为例,依次将确定的第一个到第4个字段标签作为预设表格的4个列标题,再分别将对应的4条字段内容作为4个列标题对应的列数据,都存储至预设表格中,得到一个具有四列数据的表格文件。
步骤207:将从所述预设表格中所述拆分标签所在的列位置中,获取不同的字段内容分别作为拆分后的CSV文件的名称。
在本实施例中,因为还设置有拆分标签,可以判断作为拆分标签的字段标签在哪一列。例如,对于表1所示的示例性CSV文件来说,假设拆分标签为“交易类型”,则“交易类型”所在的位置为表1的第一列位置,则获取第一列的列数据为该拆分标签对应的“不同的字段内容”。以表1为例,获取到的不同的字段内容分别为:“钱包余额和卡快捷支付”。在这里需要说明的是,虽然第一列的字段内容有六行,即对应了四个“钱包余额”和两个“卡快捷支付”,但是因为在本步骤中确定的是不同的字段内容,因此,可以得到“钱包余额”和“卡快捷支付”,并将这两个不同的字段内容,分别作为拆分后的CSV文件的名称。
步骤208:将存储后的预设表格保存为固定个数的CSV文件。
然后,再将存储了全部字段标签及对应的全部字段内容的表1拆分为两个CSV文件,其中,拆分后的CSV的个数与不同的字段内容的个数相同,即因为表1的第一列中有两个不同的字段内容“钱包余额”和“卡快捷支付”,所以拆分后的CSV文件也有两个,并且两个CSV文件的名称分别为所述不同的字段内容,即第一个CSV文件的名称为“钱包余额”,第二个CSV文件的名称为“卡快捷支付”。
当然,以上仅仅是一种具体的例子数据,也可以以其他字段标签作为拆分标签,例如字段标签“订单号”,或者,“支付名称”等,可以理解的是,当某一个字段标签对应的字段内容只有一个时,例如表1中的字段标签“业务类型”只有“选座票”这一个字段内容,则可以生成一个CSV文件而不进行拆分,是否需要拆分以及拆分标签是哪一个字段标签由本领域技术人员预先在配置信息中配置好即可。
步骤209:将生成所述目标CSV文件的日志信息存储至所述日志存储地址。
在本实施例中,再将生成两个CSV文件的日志信息存储至配置信息中的日志存储地址处。
在本实施例中,不仅生成了更容易被用户查看和浏览的、易读性较强的CSV文件,提升了报表***中数据的可读性,提升了用户的体验,同时还提高了报表***中处理数据的效率。进一步的,还可以在数据量较大的情况下,生成多个CSV文件,使得每个CSV文件的数据量都不会太大,降低了在下载和查看CSV文件时对报表***的性能的影响。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请一种CSV文件的生成方法实施例所提供的方法相对应,参见图3,本申请还提供了一种CSV文件的生成装置实施例,在本实施例中,该装置可以集成于报表***的服务器上,该装置可以包括:
配置获取单元301,用于获取预先配置的、待生成的CSV文件的配置信息,所述配置信息包括:触发周期、源数据标识和各字段标签;所述字段标签用于表示所述CSV文件包括的数据类型。
第一判断单元302,用于实时判断当前时刻是否满足所述触发周期。
源数据获取单元303,用于在所述第一判断单元的结果为是的情况下,依据所述源数据标识和各字段标签获取目标源数据。
生成单元304,用于按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件。
其中,所述装置还可以包括:
第二判断单元,用于判断源数据库中是否保存有所述源数据标识对应的源文件;以及,触发单元,用于在所述第二判断单元的结果为是的情况下,触发所述源数据获取单元303。
其中,所述源数据获取单元303具体可以包括:
定位子单元,用于依据所述源数据标识,从源数据库中定位目标源数据所在的各个源文件;和,源数据获取子单元,用于依据所述CSV文件包括的数据类型,分别从所述各个源文件中获取所述数据类型对应的目标源数据。
其中,所述生成单元304具体可以包括:
合并子单元,用于将多个所述目标源数据合并为一个数据中间文件;字段内容获取子单元,用于从所述数据中间文件中分别获取所述各字段标签对应的各条字段内容;和,组合子单元,用于将所述各字段标签及其对应的各条字段内容组合为表格数据,得到目标CSV文件。
其中,所述组合子单元具体可以包括:
标签确定子单元,用于按照所述各字段标签在所述配置信息中的配置顺序,分别确定第N个字段标签;存储子单元,用于将所述第N个字段标签及对应的第N条字段内容存储至预设表格的第N列位置,直至各字段标签都处理完毕;其中,N为整数,N的最小值为1,最大值为所述各字段标签的总个数;和,保存子单元,用于将存储后的预设表格保存为所述目标CSV文件。
其中,所述配置信息还可以包括拆分标签,所述拆分标签为所述各字段标签中的任意一个字段标签,所述组合子单元可以包括:
名称获取子单元,用于从所述预设表格中所述拆分标签所在的列位置中,获取不同的字段内容分别作为拆分后的CSV文件的名称;和,保存子单元,用于将存储后的预设表格保存为固定个数的CSV文件;其中,所述固定个数与所述不同的字段内容的个数相同,且所述固定个数的CSV文件的名称分别为所述不同的字段内容。
其中,所述配置信息还可以包括:待上传的服务器地址和文件地址;所述装置还可以包括:
上传单元,用于将生成的目标CSV文件上传至所述服务器地址对应的目标服务器中的文件地址处。
其中,所述配置信息还可以包括:日志存储地址;所述装置还可以包括:
日志存储单元,用于将生成所述目标CSV文件的日志信息存储至所述日志存储地址。
可见,本申请实施例的装置可以预先为待生成的CSV文件配置好配置信息,在该配置信息中指明了生成CSV文件的源数据,以及CSV文件的字段标签,因此,在触发周期到来时,就可以依据源数据来生成可读性较好的CSV文件,在CSV文件中,因为只有数据内容本身,不再包括不统一的分隔符,并且,因为每一列数据都对应于预先配置好的各个字段标签,所以也不再有数据错位等情况的发生。因此,生成的CSV文件就更容易被财务人员等用户查看和浏览,不仅提升了报表***中数据的可读性,提升了用户的体验,同时还提高了报表***中处理数据的效率。
进一步的,本申请实施例的装置还可以在数据量较大的情况下,生成多个CSV文件,使得每个CSV文件的数据量都不会太大,降低了在下载和查看CSV文件时对报表***的性能的影响。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的CSV文件的生成方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种CSV文件的生成方法,其特征在于,该方法包括:
获取预先配置的、待生成的CSV文件的配置信息,所述配置信息包括:触发周期、源数据标识和各字段标签;所述字段标签用于表示所述CSV文件包括的数据类型;
实时判断当前时刻是否满足所述触发周期,如果是,则依据所述源数据标识和各字段标签获取目标源数据;
按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件。
2.根据权利要求1所述的方法,其特征在于,所述依据所述源数据标识和各字段标签获取目标源数据之前,还包括:
判断源数据库中是否保存有所述源数据标识对应的各个源文件,如果是,则执行所述依据所述源数据标识和各字段标签获取目标源数据。
3.根据权利要求2所述的方法,其特征在于,所述依据所述源数据标识和各字段标签获取目标源数据,包括:
依据所述源数据标识,从所述源数据库中定位目标源数据所在的各个源文件;
依据所述CSV文件包括的数据类型,分别从所述各个源文件中获取所述数据类型对应的目标源数据。
4.根据权利要求1所述的方法,其特征在于,所述按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件,包括:
将多个所述目标源数据合并为一个数据中间文件;
从所述数据中间文件中分别获取所述各字段标签对应的各条字段内容;
将所述各字段标签及其对应的各条字段内容组合为表格数据,得到目标CSV文件。
5.根据权利要求4所述的方法,其特征在于,所述将所述各字段标签及其对应的各条字段内容组合为表格数据,得到目标CSV文件,包括:
按照所述各字段标签在所述配置信息中的配置顺序,分别确定第N个字段标签;其中,N为整数,N的最小值为1,最大值为所述各字段标签的总个数;
将所述第N个字段标签及对应的第N条字段内容存储至预设表格的第N列位置,直至各字段标签都处理完毕;
将存储后的预设表格保存为所述目标CSV文件。
6.根据权利要求5所述的方法,其特征在于,所述配置信息还包括拆分标签,所述拆分标签为所述各字段标签中的任意一个字段标签,所述将存储后的预设表格保存为所述目标CSV文件,包括:
从所述预设表格中所述拆分标签所在的列位置中,获取不同的字段内容分别作为拆分后的CSV文件的名称;
将存储后的预设表格保存为固定个数的CSV文件;其中,所述固定个数与所述不同的字段内容的个数相同,且所述固定个数的CSV文件的名称分别为所述不同的字段内容。
7.根据权利要求1所述的方法,其特征在于,所述配置信息还包括:待上传的服务器地址和文件地址;所述方法还包括:
将生成的目标CSV文件上传至所述服务器地址对应的目标服务器中的文件地址处。
8.根据权利要求1所述的方法,其特征在于,所述配置信息还包括:日志存储地址;所述方法还包括:
将生成所述目标CSV文件的日志信息存储至所述日志存储地址。
9.一种CSV文件的生成装置,其特征在于,该装置包括:
配置获取单元,用于获取预先配置的、待生成的CSV文件的配置信息,所述配置信息包括:触发周期、源数据标识和各字段标签;所述字段标签用于表示所述CSV文件包括的数据类型;
第一判断单元,用于实时判断当前时刻是否满足所述触发周期;
源数据获取单元,用于在所述判断单元的结果为是的情况下,依据所述源数据标识和各字段标签获取目标源数据;
生成单元,用于按照所述各字段标签所表示的数据类型,将所述目标源数据生成目标CSV文件。
10.根据权利要求9所述的装置,其特征在于,还包括:
第二判断单元,用于判断源数据库中是否保存有所述源数据标识对应的源文件;
触发单元,用于在所述第二判断单元的结果为是的情况下,触发所述源数据获取单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120772.2A CN106777398A (zh) | 2017-03-02 | 2017-03-02 | 一种csv文件的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120772.2A CN106777398A (zh) | 2017-03-02 | 2017-03-02 | 一种csv文件的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106777398A true CN106777398A (zh) | 2017-05-31 |
Family
ID=58959666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710120772.2A Pending CN106777398A (zh) | 2017-03-02 | 2017-03-02 | 一种csv文件的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106777398A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763175A (zh) * | 2018-06-26 | 2018-11-06 | 中国银行股份有限公司 | 一种csv文件处理方法及*** |
CN108874403A (zh) * | 2018-05-30 | 2018-11-23 | 深圳市分期乐网络科技有限公司 | 规则文件的发布方法、装置、设备及存储介质 |
CN113642408A (zh) * | 2021-07-15 | 2021-11-12 | 杭州玖欣物联科技有限公司 | 一种工业互联网实时处理解析图片数据的方法 |
CN114945020A (zh) * | 2022-05-17 | 2022-08-26 | 宝信软件(武汉)有限公司 | 一种基于云平台的云边协同数据接入方法以及*** |
CN116089746A (zh) * | 2022-12-15 | 2023-05-09 | 北京力控元通科技有限公司 | 一种浏览器页面数据导出方法、***及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345484A (zh) * | 2013-06-21 | 2013-10-09 | 中国工商银行股份有限公司 | 基于动态域的报表处理***及方法 |
CN103605747A (zh) * | 2013-11-20 | 2014-02-26 | 北京国双科技有限公司 | 文件表单的处理方法和装置 |
CN105589968A (zh) * | 2015-12-25 | 2016-05-18 | ***股份有限公司 | 数据汇总***及方法 |
CN106227710A (zh) * | 2016-07-26 | 2016-12-14 | 浪潮通用软件有限公司 | 一种基于excel的数据文件转换配置方法 |
-
2017
- 2017-03-02 CN CN201710120772.2A patent/CN106777398A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345484A (zh) * | 2013-06-21 | 2013-10-09 | 中国工商银行股份有限公司 | 基于动态域的报表处理***及方法 |
CN103605747A (zh) * | 2013-11-20 | 2014-02-26 | 北京国双科技有限公司 | 文件表单的处理方法和装置 |
CN105589968A (zh) * | 2015-12-25 | 2016-05-18 | ***股份有限公司 | 数据汇总***及方法 |
CN106227710A (zh) * | 2016-07-26 | 2016-12-14 | 浪潮通用软件有限公司 | 一种基于excel的数据文件转换配置方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874403A (zh) * | 2018-05-30 | 2018-11-23 | 深圳市分期乐网络科技有限公司 | 规则文件的发布方法、装置、设备及存储介质 |
CN108763175A (zh) * | 2018-06-26 | 2018-11-06 | 中国银行股份有限公司 | 一种csv文件处理方法及*** |
CN113642408A (zh) * | 2021-07-15 | 2021-11-12 | 杭州玖欣物联科技有限公司 | 一种工业互联网实时处理解析图片数据的方法 |
CN114945020A (zh) * | 2022-05-17 | 2022-08-26 | 宝信软件(武汉)有限公司 | 一种基于云平台的云边协同数据接入方法以及*** |
CN114945020B (zh) * | 2022-05-17 | 2023-08-08 | 宝信软件(武汉)有限公司 | 一种基于云平台的云边协同数据接入方法以及*** |
CN116089746A (zh) * | 2022-12-15 | 2023-05-09 | 北京力控元通科技有限公司 | 一种浏览器页面数据导出方法、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106777398A (zh) | 一种csv文件的生成方法及装置 | |
US10262080B2 (en) | Enhanced search suggestion for personal information services | |
CN100489879C (zh) | 一种对页面数据进行校验的方法、***和服务器 | |
CN109683953A (zh) | 一种基于可视化界面进行配置文件处理的方法及装置 | |
CN112131295B (zh) | 基于Elasticsearch的数据处理方法及设备 | |
Sharma et al. | Latent DIRICHLET allocation (LDA) based information modelling on BLOCKCHAIN technology: a review of trends and research patterns used in integration | |
Chyrun et al. | Web Content Monitoring System Development. | |
CN111666490A (zh) | 基于kafka的信息推送方法、装置、设备及存储介质 | |
CN104572679B (zh) | 舆情数据存储方法和装置 | |
CN110263009A (zh) | 日志分类规则的生成方法、装置、设备及可读存储介质 | |
CN111859076B (zh) | 数据爬取方法、装置、计算机设备及计算机可读存储介质 | |
CN110289059A (zh) | 医疗数据处理方法、装置、存储介质及电子设备 | |
CN105631007A (zh) | 一种行业技术信息搜集方法及*** | |
CN106980667B (zh) | 一种给文章标注标签的方法和装置 | |
EP2965492B1 (en) | Selection of data storage settings for an application | |
CN104268289B (zh) | 链接url的失效检测方法和装置 | |
KR20170073693A (ko) | 유사 그룹 요소 추출 | |
CN113835692A (zh) | 字典的数据处理方法、装置、电子设备及计算机存储介质 | |
CN104133913A (zh) | 一种基于视频分析与搜索聚合的城市商铺信息库自动构建***及方法 | |
CN105786834A (zh) | 一种社交类网页结构化摘要的生成方法和*** | |
Boehr et al. | Preparing for the future: National Library of Medicine's® project to add MeSH® RDF URIs to its bibliographic and authority records | |
US10108929B2 (en) | Systems and methods for generating a report from stream data | |
US9449056B1 (en) | Method and system for creating and updating an entity name alias table | |
US11763070B2 (en) | Method and system for labeling and organizing data for summarizing and referencing content via a communication network | |
CN110516185A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |