一种数据文件组装方法、装置、设备及储存介质制造方法及图纸

技术编号:22817081 阅读:23 留言:0更新日期:2019-12-14 13:08
本发明专利技术实施例公开了一种数据文件组装方法、装置、设备及存储介质。该方法包括:通过第一线程从数据库中读取预设数据;通过第一线程将读取到的预设数据写入到预设阻塞队列中;通过第二线程从预设阻塞队列中读取队列数据;通过第二线程将读取到的队列数据写入数据文件。本发明专利技术实施例实现了高效地组装数据文件并且减少了单线程处理中不断打开数据流和关闭数据流的数据流开销。

A data file assembly method, device, equipment and storage medium

【技术实现步骤摘要】
一种数据文件组装方法、装置、设备及储存介质
本专利技术实施例涉及数据处理技术,尤其涉及一种数据文件组装方法、装置、设备及储存介质。
技术介绍
两个业务系统之间的大型数据交互都先把数据组装成文件,以文件的形式进行传输,以保证数据的完整性。现有技术中,业务系统每天会生成多个数据文件,处理方式是先批次去读数据库里面的数据,再进行处理,最后再把这一批的数据写到文件中,然后按照以上方式对数据库里面的数据逐批处理,直到最后一批数据。但是这种数据文件的组装方法存在如下的缺陷:首先,用单线程去读数据,再写入数据文件,而单线程处理比较耗时,导致时效性差。其次,单线程分批次的执行写文件,每执行一次写文件就会有一次打开数据流和关闭数据流的开销,导致性能低。
技术实现思路
本专利技术实施例提供一种数据文件组装方法、装置、设备及储存介质,实现了高效地组装数据文件并且减少了数据流开销。第一方面,本专利技术实施例提供了一种数据文件组装方法,包括:通过第一线程从数据库中读取预设数据;通过所述第一线程将读取到的所述预设数据写入到预设阻塞队列中;通过第二线程从所述预设阻塞队列中读取队列数据;通过所述第二线程将读取到的所述队列数据写入数据文件。第二方面,本专利技术实施例还提供了一种数据文件组装装置,包括:预设数据读取模块,用于通过第一线程从数据库中读取预设数据;阻塞队列数据写入模块,用于通过所述第一线程将读取到的所述预设数据写入到预设阻塞队列中;<br>队列数据读取模块,用于通过第二线程从所述预设阻塞队列中读取队列数据;数据写入模块,用于通过所述第二线程将读取到的所述队列数据写入数据文件。第三方面,本专利技术实施例还提供了一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任意实施例所提供的数据文件组装方法。第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本专利技术任意实施例所提供的数据文件组装方法。本专利技术实施例通过第一线程从数据库中读取预设数据,并将第一线程读取到的预设数据写入到预设阻塞队列中;然后通过第二线程从预设阻塞队列中读取数据,并将第二线程读取带的队列数据写入数据文件中。通过分线程处理,实现了高效地组装数据文件并且减少了单线程处理中不断打开数据流和关闭数据流的数据流开销。附图说明图1是本专利技术实施例一中的一种数据文件组装方法的流程图;图2是本专利技术实施例二中的一种数据文件组装方法的流程图;图3是本专利技术实施例二中的第一线程和第二线程的具体流程图;图4是本专利技术实施例三中的一种数据文件组装装置的结构示意图;图5是本专利技术实施例四中的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一中的一种数据文件组装方法的流程图,本实施例可适用于系统中数据处理的情况,该方法可以由数据文件组装装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在执行本方法的设备中,在本实施例中执行本方法的设备可以是计算机、平板电脑和/或手机等任意一种智能终端。具体的,参考图1,该方法具体包括如下步骤:S110、通过第一线程从数据库中读取预设数据。具体的,线程是一个任务的处理者,一个线程代表一个处理者,其中,线程处理的任务可以是数据的读取操作、数据的写入操作或者数据的运算操作等。数据库是用来存储数据的仓库,例如,MySQL、SQLServer、Oracle、Sybase、DB2等。预设数据为存储在数据库中需要读取的数据,即为了完成某一任务而需要的保存在数据库内的数据,例如,为了调查某地男性平均身高,则预设数据为数据库中存储的与男性身高相关的数据;或者为了统计某地区肺癌的人员的年龄以及性别分布,则预设数据为该地区患肺癌人员的数据。可选的,在通过第一线程从数据库中读取预设数据之前,还包括建立预设阻塞队列。需要说明的是,预设阻塞队列是存放预设数据的容器,预设阻塞队列是一种有序的容器,预设数据在其内部需要遵循先进先出的原则,即先进入预设阻塞队列内的数据需要先出预设阻塞队列。S120、通过第一线程将读取到的预设数据写入到预设阻塞队列中。具体的,第一线程将从数据库中读取到的预设数据写入到预设阻塞队列中去,以实现更快速的读取预设数据。可选的,在第一线程将所有预设数据写入到预设阻塞队列中之后,通过第一线程将预设结束标识写入到预设阻塞队列中,其中,预设结束标识用来标识预设数据已写入完毕。可选的,预设结束标识是一个区别于预设数据的常量,可以用户自己定义,例如,预设数据为当地一年的温度,则可以将预设结束标识设定为100,因为自然天气温度不可能超过100摄氏度,因此将预设结束标识设定为100可以明显的和预设数据区分开,当第一线程将100写入到预设阻塞队列后,第一线程将结束将数据写入到预设阻塞队列的操作。S130、通过第二线程从预设阻塞队列中读取队列数据。具体的,第一线程将预设数据和预设结束标识写入到预设阻塞队列中之后,通过第二线程从预设阻塞队列中读取队列数据,其中,队列数据包括第一线程写入到预设阻塞队列中的全部预设数据和预设结束标识。S140、通过第二线程将读取到的队列数据写入数据文件。具体的,第二线程将读取到的队列数据先转换成数据流,再将数据流写入到数据文件中,其中,数据文件可以实现两个系统之间的大型数据交换,以数据文件的形式进行数据传输,可以保证数据的完整性,不会存在丢失数据的现象。可选的,当从预设阻塞队列中读取到预设结束标识时,关闭将队列数据写入数据文件的数据流。需要说明的是,本专利技术实施例中的第二线程并不是将预设阻塞队列中的所有队列数据读取完毕后再讲队列数据写入到数据文件中,而是一边读取队列数据一边将队列数据写入到数据文件中,当读取到预设结束标识时,停止将队列数据转换成数据流,即停止将队列数据写入到数据文件。由于预设阻塞队列遵循先进先出的原则,而预设结束标识是最后写入到预设阻塞队列中的,因此不会出现预设数据写入数据文件不完整的情况。本实施例的技术方案,通过第一线程从数据库中读取预设数据,并将第一线程读取到的预设数据写入到预设阻塞队列中;然后通过第二线程从预设阻塞队列中读取数据,并将第二线程读取带的队列数据写入数据文件中。通过分线程处理,实现了高效地将预设数据写入到数据文件中并且减少了单线程处理中不断打开数据流和关闭数据流的数据流开销。实施例二图2是本专利技术实施例二中的一种数据文件组装方法本文档来自技高网...

【技术保护点】
1.一种数据文件组装方法,其特征在于,包括:/n通过第一线程从数据库中读取预设数据;/n通过所述第一线程将读取到的所述预设数据写入到预设阻塞队列中;/n通过第二线程从所述预设阻塞队列中读取队列数据;/n通过所述第二线程将读取到的所述队列数据写入数据文件。/n

【技术特征摘要】
1.一种数据文件组装方法,其特征在于,包括:
通过第一线程从数据库中读取预设数据;
通过所述第一线程将读取到的所述预设数据写入到预设阻塞队列中;
通过第二线程从所述预设阻塞队列中读取队列数据;
通过所述第二线程将读取到的所述队列数据写入数据文件。


2.根据权利要求1所述的数据文件组装方法,其特征在于,在所述通过第一线程从数据库中读取预设数据之前,还包括:
建立所述预设阻塞队列。


3.根据权利要求1所述的数据文件组装方法,其特征在于,在所述通过所述第一线程将读取到的所述预设数据写入到预设阻塞队列中之后,还包括:
当所述第一线程将所述预设数据写入到所述预设阻塞队列完毕时,通过所述第一线程将预设结束标识写入到所述预设阻塞队列中。


4.根据权利要求3所述的数据文件组装方法,其特征在于,在所述通过第二线程从所述预设阻塞队列中读取队列数据之后,还包括:
当从所述预设阻塞队列中读取到所述预设结束标识时,关闭将所述队列数据写入所述数据文件的数据流。


5.根据权利要求3或4所述的数据文件组装方法,其特征在于,所述结束标识为预设常量。


6.根据权利要求1-4任一项所述的数据文件组装方法,其特征在于,在所述通过第二线程从所述预设阻塞队列中读取队列数据之前,还包括:
通过第三线程对所述预设阻塞队列中的队列数据进行预设处理。


7.一种数据文件组装装置,其特征在于,包括:
预设数据读取模块,用于通过第一线程从数据库中读取预设数据;
阻塞队列数据写入模块,用于通过...

【专利技术属性】
技术研发人员:伍深
申请(专利权)人:深圳乐信软件技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1