CN110297810B - 一种流数据处理方法、装置及电子设备 - Google Patents
一种流数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110297810B CN110297810B CN201910604613.9A CN201910604613A CN110297810B CN 110297810 B CN110297810 B CN 110297810B CN 201910604613 A CN201910604613 A CN 201910604613A CN 110297810 B CN110297810 B CN 110297810B
- Authority
- CN
- China
- Prior art keywords
- data
- batch
- files
- merging
- target file
- 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
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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种流数据处理方法、装置及电子设备,该方法包括:接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次;将所述流数据中的数据块进行合并,得到目标文件;将所述目标文件写入到目标端,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息。将数据块进行合并后,以目标文件的形式写入到目标端,减少了写入目标端的操作次数,因此可以减少产生的附属信息的量,进一步减小了对目标端内存的占用。
Description
技术领域
本申请涉及流数据技术领域,尤其涉及一种流数据处理方法、装置及电子设备。
背景技术
在流数据从源端传输到目标端时,通常将流数据按照微批的方式进行处理。例如,对流数据进行分块,将分块的数据按照多批次并行的方式依次向目标端进行传输,每个批次上的每个数据块到达目标端时,以小文件的形式写入到目标端的硬盘中。
由此,多批次并行传输的流数据通常会因为流数据的特性在目标端上产生大量的小文件,导致这些小文件的文件描述符在目标端占用大量的存储空间。
因此,亟需一种能够节省目标端存储空间的流数据传输方案。
发明内容
有鉴于此,本申请提供一种流数据处理方法,以实现能够节省目标端存储空间的流数据传输方案。
本申请提供的方案如下:
一种流数据处理方法,包括:
接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次;
将所述流数据中的数据块进行合并,得到目标文件;
将所述目标文件写入到目标端,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息。
优选的,所述流数据中包括至少一个批次的数据块;
其中,将所述流数据中的数据块进行合并,得到目标文件,包括:
对所述流数据中属于同一所述批次的数据块进行合并,得到单批次文件;
在所述单批次文件满足第一缓存规则的情况下,对所述单批次文件进行合并,得到多批次文件;
在所述多批次文件满足第二缓存规则的情况下,基于所述多批次文件,获得目标文件。
优选的,将所述流数据中的数据块进行合并,得到目标文件,包括:
在所述目标端的缓存区域中,将所述流数据中的数据块进行合并,得到目标文件。
优选的,所述第一缓存规则包括:所述单批次文件的数据量大于预设的第一阈值;
所述第二缓存规则包括:所述多批次文件的数据量大于预设的第二阈值。
优选的,所述第一缓存规则包括:所述单批次文件的数量大于预设的第三阈值;
所述第二缓存规则包括:所述多批次文件的数量大于预设的第四阈值。
优选的,将所述目标文件写入到目标端,包括:
将所述目标文件中的多批次文件按照文件属性写入到目标端;
其中,所述文件属性至少包括:数据块批次。
优选的,基于所述多批次文件,获得目标文件,包括:
读取所述多批次文件中合并时间排序在前的文件,以得到目标文件。
优选的,将所述目标文件写入到目标端之后,所述方法还包括:
将所述缓存区域中的所述目标文件进行删除。
一种流数据处理装置,包括:
接收单元,接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次;
合并单元,用于将所述流数据中的数据块进行合并,得到目标文件;
写入单元,用于将所述目标文件写入到目标端,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息。
一种电子设备,包括:
存储器,用于存储应用程序及所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现功能:接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次;将所述流数据中的数据块进行合并,得到目标文件;将所述目标文件写入到目标端,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息。
从上述技术方案可以看出,本申请公开的一种流数据处理方法,将数据块进行合并后,以目标文件的形式写入到目标端,减少了写入目标端的操作次数,因此可以减少产生的附属信息的量,进一步减小了对目标端内存的占用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种流数据处理方法的流程图;
图2为本申请实施例公开的又一流数据处理方法的流程图;
图3为本申请实施例公开的又一流数据处理方法的流程图;
图4为本申请实施例公开的又一流数据处理方法的原理示意图;
图5为本申请实施例公开的一种流数据处理装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请公开的一种流数据处理方法的流程,包括:
步骤S101:接收源端传输来的流数据。
流数据是一组顺序、大量并且连续到达的数据序列,其中包括至少一个数据块,而数据块具有传输的批次,也就是说,每个数据块都具有标记其属于哪一个批次的属性信息,流数据中的数据块可能是分不同的批次传输的,也可能是同一个批次传输的。
本实施例中的数据块可以是文件、文件夹或者数据表等数据类型。其可以是文本文件,也可以是音频文件或者视频文件等。
步骤S102:将所述流数据中的数据块进行合并,得到目标文件。
在本实施例中,将流数据中的数据块进行合并可以看做将流数据中的至少一个数据块进行合并,例如,将流数据中的数据块A、数据块B和数据块C合并为一个目标文件。具体可以基于数据块的批次对数据块进行合并,得到目标文件。
步骤S103:将所述目标文件写入到目标端。
在本实施例中,执行该流数据处理方法流程的可以是目标端,也可以是独立于目标端之外的一个处理器,则写入目标端可以理解为,目标端将目标文件写入其自身的存储空间内,或者,某个执行该流数据处理方法流程的处理器将目标文件发送给目标端,再由目标端将其写入自身的存储空间内。
其中,目标文件在写入到目标端的存储空间时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端的存储空间时所产生的附属信息量。需要说明的是,目标文件对应的数据块是指,用于合并该目标文件时所用到的数据块。
在将多个数据块写入目标端的存储空间时,会针对每个数据块生成其对应的附属信息,而将多个数据块合并得到的目标文件写入到目标端的存储空间时,只需生成针对该目标文件的附属信息即可,所以写入目标文件时的附属信息量,相应的要比将用于合并目标文件时所用到的数据块直接写入产生的数据量小。
所述附属信息为描述对应数据的至少一个属性的信息,这里所指的数据可以是数据块也可以是由数据块合并后得到的目标文件。其中,属性通常包括:数据的大小、生成时间、数据类型等,附属信息则是描述上述一个或多个的属性的信息。
本申请实施例公开的流数据处理方法中,将数据块进行合并后,以目标文件的形式写入到目标端,减少了写入目标端的操作次数,因此可以减少产生的附属信息的量,进一步减小了对目标端内存的占用。
在本申请公开的又一流数据处理方法中,在将流数据中的数据块进行合并得到目标文件时的流程如图2所示,包括:
步骤S201:对所述流数据中属于同一所述批次的数据块进行合并,得到单批次文件。
在本实施例中,首先将流数据中属于同一批次的数据块进行合并,得到同一批次数据块的合并结果。
在本步骤中,可以预先设定对属于同一批次的数据块进行合并的条件,当达到这个条件时,则执行同一批次的数据块的合并操作。该条件可以是该批次中数据块的总数据量大于一个预设值,比如说10M,假设该批次已经有了有数据块A和数据块B,数据量总和为8M,则数据块C传输过来以后,其数据量为3M,则将ABC三个数据块进行合并,得到一个单批次文件。当第四个数据块D传输过来,其数据量为11M,大于10M,则将数据库合并的操作就相当于将数据块D作为一个单批次文件。根据该合并条件,随着数据块的不断传输,可以将该批次中的数据块依次生成单批次文件。
当然,本实施例并不限定对数据块进行合并的条件为该批次中数据块的总数据量大于一个预设值,其也可以设定为,每隔预设的时间对该批次中的数据块进行一次合并处理,或者,在每个批次接收到预设个数的数据块后,即对这些数据块做合并处理。
并且,对每个批次内数据块的合并操作是并行执行的,不同批次间互不影响,只要达到合并条件,该批次就可以启动合并操作。
步骤S202:在所述单批次文件满足第一缓存规则的情况下,对所述单批次文件进行合并,得到多批次文件。
在分别将每个批次里的数据块进行合并得到单批次文件的过程中,如果单批次文件满足了第一缓存规则,则将单批次文件进行合并,得到多批次文件。
本实施例中,第一缓存规则包括:单批次文件的数据量大于预设的第一阈值,比如30M。在每生成一个单批次文件后,就可以记录当前已经得到的单批次文件的总数据量,只要总数据量满足这个缓存规则,则可以将这些单批次文件进行合并,得到多批次文件。
而如果在该过程中,首先生成的一个单批次文件的数据量就已经大于30M,则将单批次文件进行合并得到多批次文件的过程就是将该单批次文件作为多批次文件的过程。
步骤S203:在所述多批次文件满足第二缓存规则的情况下,基于所述多批次文件,获得目标文件。
本实施例中的第二缓存规则为:多批次文件的数据量大于预设的第二阈值,在本步骤中,累计多批次文件的数据量,如果累计的数据量大于预设的第二阈值,例如200M,则从中获得目标文件。
在本实施例中,基于所述多批次文件,获得目标文件的过程,可以为,将当前的多批次文件进行合并,得到目标文件。例如,得到3个多批次文件,数据量总和为180,接下来合并得到的多批次文件为50M,则多批次文件的数据量为230M,大于预设的第二阈值,则将这四个多批次文件合并,得到目标文件。
通过这种依据数据量进行合并后得到目标文件的方式,可以在一定程度上将目标文件的数据量平均化,也就是说,目标文件的大小能够尽量的均匀,至少是大于预定的第二阈值,而由于对于单批次文件的数据量同样也有限定,因此可以实现将目标文件的大小尽量的均匀化,方便数据的存储以及预估可能会占用的目标端内存的大小以及写入过程所占用的时间。
以上实施例中,使用的第一缓存规则和第二缓存规则的关键点在于文件的数据量,通过设置文件的数据量的阈值来实现对单批次文件合并和获得目标文件两个操作的执行的控制,从而实现方案能够顺利有序的进行。除了利用数据量外,本申请还公开了另外一种方式,实现流数据处理方法中的得到目标文件的过程,如图3所示,包括:
步骤S301:对所述流数据中属于同一所述批次的数据块进行合并,得到单批次文件。
同样,本实施例中对数据块进行合并的条件可以是该批次中数据块的总数据量大于一个预设值、达到预设的时间间隔,或者,接收到预设个数的数据块中的任意一种。或者,也可以是其他可以用于判断是否进行合并的条件。
步骤S302:在所述单批次文件的数量大于预设的第三阈值的情况下,对所述单批次文件进行合并,得到多批次文件。
本实施例中,用于确定是否对单批次文件进行合并的判断依据是单批次文件的数量,也就是在合并得到的单批次文件的个数大于预设的第三阈值的情况下,则对单批次文件进行合并,例如第三阈值为10,则无需对单批次文件的数据量进行累加计算,不管数据量是多少,只需对单批次文件的个数进行累计即可,只要个数满足要求则这些单批次文件进行合并,得到多批次文件。
步骤S303:在所述多批次文件的数量大于预设的第四阈值的情况下,基于所述多批次文件,获得目标文件。
在本步骤中,同样也是基于多批次文件的数量来决定是否获得目标文件。
本实施例中基于文件的数量来实现对单批次文件合并和获得目标文件两个操作的执行控制,相对于图2所示实施例更容易实现,也更加简便。
在基于多批次文件获得目标文件的过程中,可以参考图2所示实施例中,将多批次文件进行合并的方式,当然也可以采用其他的方式,例如,将多批次文件按照合并的时间进行排序,从中选取排序在前几位的多批次文件,将这些多批次文件作为目标文件,写入到目标端内存,例如排序在前3位的多批次文件。并且,该方式也可以应用于如图2所示实施例中。
上面通过两个实施例对流数据中的数据块进行合并,得到目标文件的过程做了详细的说明,但是上述两个实施例仅仅作为该过程的两个示例,并非限定,在实现该过程时,还可以有其他的方式。
分析上述两个实施例可以看出,在执行判断是否进行单批次文件合并的时候,不管是数据量还是数据个数,都是以单批次文件作为最小的单元来进行分析的,但是,单批次文件实际上是由数据块构成的,因此,在设定判别条件时,可以以数据块作为最小的单元来进行分析,例如,通过判断合并得到的单批次文件中所包含的总的数据块的个数是否满足预设条件,或者,单批次文件中所包含的总的数据块中,数据块的数据量大于某一阈值的数据块的个数或者占比大于某一阈值,来判断是否合并单批次文件得到多批次文件,以此类推,在基于多批次文件获得目标文件时,也可以考量构成多批次文件的单批次文件的个数或者单批次文件的数据量是否满足预设条件。
再或者,可以不从数据块本身的属性入手,不考虑其个数或者数据量,而只从接收流数据的角度入手,设定预设的时间间隔,或者说是处理周期,每隔一段时间就对每个批次中的数据块进行合并操作。这种方式不依赖于数据块本身,可以更加准确的控制整个流程的执行进度。
因为在实际利用该流数据处理方法的场景有很多种,例如大数据迁移,或者从网络中获取大量数据进行网络监控,或者在某个大型控制***中获取各个传感器检测到的数据,或卫星云图监测等,每个场景下的工作任务和要求都各有不同,可以根据具体的情况来选择如何实现将流数据中的数据块进行合并的方式。
对于对实时性要求较高的场景,可以选择上述按照预设时间间隔进行合并的方式,根据需求设定较小的时间间隔从而保证数据块能够被尽快的合并处理然后进行写入,但是因为数据块的数据量并不固定,所以不同次合并操作得到的目标文件的数据量可能偏差也较大,如果出现数据量突然的增大,可能会给目标端的处理器带来很大的压力,进而影响写入过程的有效性,严重的可能会造成目标端的处理性能,而如果在这个时间间隔内接收的数据块的数据量非常小,进而目标文件的数据量也就会非常小,则会使得写入操作的有效性降低,在一定程度上降低了目标端的处理效率。
而对于实时性要求不高,但是对目标端有较高稳定性能要求的场景,则可以考虑如图2所示实施例,利用单批次文件的数据量达到第一阈值的情况开始合并处理,虽然因为数据块的数据量并不固定,有时需要等待较长时间才能够达到数据量的要求,但是这种方式能够在一定程度上将写入过程的数据量均匀化,不会突发数据量增加的情况,保证了目标端的稳定运行,同时也避免了写入的数据量非常小,而导致写入过程的有效性低的问题,也就是说,每一次的写入操作都能够更有效。
对上述实现流数据中数据块进行合并,得到目标文件的过程中,所有的实现方式都基于一个原则,那就是每个单批次文件中所包含的数据块都是来源于一个批次的,也就是说,不会出现跨批次的情况,这样做是直接利用了微批处理得到的分批结果,将被处理的数据块先预先划分了不同的批次或者说不同的组,各个批次或组就可以并行处理,在不增加工作量的前提下,还进一步提升了数据的处理效率。
但是本申请并不限定这种依赖于分批处理的方式。因为流数据中的数据块除了具有批次的属性以外,还具有很多其他的属性,例如数据块来源、生成时间、归属的任务或数据的类型等等。这些属性都可以作为进行合并的参考和依据。也就是说,在对数据块进行合并时,可以先以其中的某一个属性作为参考属性,然后对所有批次内的数据块进行划分。
例如,以数据块的来源来划分,则在合并的过程中,将某一时间段内接收的流数据中,所有属于同一设备发送的数据块进行合并,得到目标文件。或者,以归属的任务来划分,则将某一时间段内接收的流数据中,为了实现同一任务而产生的数据块进行合并,得到目标文件。
当然,这些实现过程中也可以利用数据块数量,或者数据块数据量来对合并操作进行控制,例如,在属于同一设备发送的数据块的数据量大于100M的情况下,进行合并操作,得到目标文件,或者,在接收的数据的类型为音频的数据块的个数大于50个的情况下,进行合并操作,得到目标文件。
在利用数据块来源、生成时间、归属的任务或数据的类型等属性作为参考属性将数据块进行合并的方法中,虽然会增加将流数据中数据块按照参考属性进行划分的过程,但是因为合并的数据具有统一的属性,方便后续对数据的查找和处理。
参考以上各实现方式,在将目标文件写入到目标端的过程中,可以根据目标文件中多批次文件按照文件属性写入到目标端。文件属性包括数据块批次属性,也就是说,可以将属于同一批次的目标文件写入到某一个专门为该批次划定的存储区域。
或者,如果目标文件是按照数据块的其他属性来进行合并的,例如数据块来源、生成时间、归属的任务或数据的类型等属性,则文件属性就承袭数据块的这些属性,则可以根据该目标文件包含的数据块属性写入到目标端,例如,将属于同一设备发送的数据块合并得到的目标文件存入为该设备预先分配的存储区域。
在以上各实现方式中,可以在所述目标端的缓存区域中,将所述流数据中的数据块进行合并,得到目标文件。并且,在将目标文件写入到目标端的内存中后,将该缓存区域中的目标文件删除,以避免对缓存区域的占用,影响接下来的操作。
本申请公开的流数据处理方法,可以应用在结构化流Structured Streaming架构中,利用该架构实现上述实施例中如图3所示流程的原理如图4所示。
首先,该架构将流数据按照微批进行处理,得到各个批次的数据,以3个批次为例,batch1,batch2和batch3,然后不同批次的数据调用StreamExecution持续驱动引擎,生成数据传输任务,并且,持续驱动引擎运用SparkSQL引擎生成执行计划。
在生成执行计划后,将不同批次的数据分块,得到数据块partition1、partition2、partition3等,各个数据块上都携带有标记其属于哪一个传输批次的信息。从图4中可以看出,每个批次的数据并行进行如上操作,得到各自包含的数据块。
本实施例中对所述流数据中属于同一所述批次的数据块进行合并,得到单批次文件时,通过判断该批次中的数据块的个数是否大于2来实现,如图4中所示,此时三个批次中的数据块的个数均为3,则都满足条件,执行合并操作,则每个批次都得到各自对应的单批次文件SingleStore1,SingleStore2和SingleStore3。当然,每个批次中的数据块进行合并得到单批次文件的时间并不是相同的,只要某个批次中的数据块个数满足条件,则就可以启动合并操作。
在得到单批次文件后,继续判断单批次文件的个数是否大于2,在大于2的情况下,将单批次文件进行合并,得到多批次文件MultiStore1,在多批次文件满足预设条件的情况下,获得目标文件,将目标文件写入到目标端的内存中,即,HDFS分布式文件***中。
从以上流程可以看出,在本申请中,流数据的数据块首先按照一定的规则进行合并后,再将合并得到的目标文件写入到目标端,这一操作大大减少了写入操作的次数,进而减少了因写入操作而产生的附属信息的量,进一步减小了对目标端内存的占用。
本申请同时公开了一种流数据处理装置,其结构如图5所示,包括:
接收单元501,接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次;
合并单元502,用于将所述流数据中的数据块进行合并,得到目标文件;
写入单元503,用于将所述目标文件写入到目标端,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息。
该流数据处理装置可以设置于目标端,也可以设置于独立于目标端之外的一个处理器。
本申请实施例公开的流数据处理装置,将数据块进行合并后,以目标文件的形式写入到目标端,减少了写入目标端的操作次数,因此可以减少产生的附属信息的量,进一步减小了对目标端内存的占用。
该装置的工作流程可以参考如图1-3中所示实施例,在此不再赘述。
本申请同时还公开了一种电子设备,该电子设备包括:存储器,用于存储应用程序及所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现功能:接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次;将所述流数据中的数据块进行合并,得到目标文件;将所述目标文件写入到目标端,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息。
在利用该电子设备实现对流数据的处理时,将数据块进行合并后,以目标文件的形式写入到目标端,减少了写入目标端的操作次数,因此可以减少产生的附属信息的量,进一步减小了对目标端内存的占用。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种流数据处理方法,包括:
接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次,所述流数据中包括至少一个批次的数据块;
将所述流数据中的数据块进行合并,得到目标文件;
将所述目标文件按照文件属性写入到目标端中与所述文件属性对应的存储区域,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息;
其中,将所述流数据中的数据块进行合并,得到目标文件,包括:
基于满足数据块合并的条件对所述流数据中属于同一所述批次的数据块进行合并,得到单批次文件,所述数据块合并的条件包括以下任意一种:所述批次中数据块的总数据量大于预设值、达到预设的时间间隔、接收到预设个数的数据块;
在所述单批次文件满足第一缓存规则的情况下,对所述单批次文件进行合并,得到多批次文件;
在所述多批次文件满足第二缓存规则的情况下,基于所述多批次文件,获得目标文件。
2.根据权利要求1所述的方法,将所述流数据中的数据块进行合并,得到目标文件,包括:
在所述目标端的缓存区域中,将所述流数据中的数据块进行合并,得到目标文件。
3.根据权利要求1所述的方法,所述第一缓存规则包括:所述单批次文件的数据量大于预设的第一阈值;
所述第二缓存规则包括:所述多批次文件的数据量大于预设的第二阈值。
4.根据权利要求1所述的方法,所述第一缓存规则包括:所述单批次文件的数量大于预设的第三阈值;
所述第二缓存规则包括:所述多批次文件的数量大于预设的第四阈值。
5.根据权利要求1所述的方法,其中,所述文件属性至少包括:数据块批次。
6.根据权利要求1所述的方法,基于所述多批次文件,获得目标文件,包括:
读取所述多批次文件中合并时间排序在前的文件,以得到目标文件。
7.根据权利要求2所述的方法,将所述目标文件写入到目标端之后,所述方法还包括:
将所述缓存区域中的所述目标文件进行删除。
8.一种流数据处理装置,包括:
接收单元,接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次,所述流数据中包括至少一个批次的数据块;
合并单元,用于将所述流数据中的数据块进行合并,得到目标文件;
写入单元,用于将所述目标文件按照文件属性写入到目标端中与所述文件属性对应的存储区域,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息;
其中,合并单元具体用于:
基于满足数据块合并的条件对所述流数据中属于同一所述批次的数据块进行合并,得到单批次文件,所述数据块合并的条件包括以下任意一种:所述批次中数据块的总数据量大于预设值、达到预设的时间间隔、接收到预设个数的数据块;
在所述单批次文件满足第一缓存规则的情况下,对所述单批次文件进行合并,得到多批次文件;
在所述多批次文件满足第二缓存规则的情况下,基于所述多批次文件,获得目标文件。
9.一种电子设备,包括:
存储器,用于存储应用程序及所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现功能:接收源端传输来的流数据,所述流数据中包括至少一个数据块,其中,所述数据块具有传输的批次,所述流数据中包括至少一个批次的数据块;将所述流数据中的数据块进行合并,得到目标文件;将所述目标文件按照文件属性写入到目标端中与所述文件属性对应的存储区域,其中,所述目标文件在写入到目标端时所产生的附属信息量小于将目标文件对应的数据块直接写入到目标端时所产生的附属信息量,所述附属信息为描述对应数据的至少一个属性的信息;其中,将所述流数据中的数据块进行合并,得到目标文件,包括:基于满足数据块合并的条件对所述流数据中属于同一所述批次的数据块进行合并,得到单批次文件,所述数据块合并的条件包括以下任意一种:所述批次中数据块的总数据量大于预设值、达到预设的时间间隔、接收到预设个数的数据块;在所述单批次文件满足第一缓存规则的情况下,对所述单批次文件进行合并,得到多批次文件;在所述多批次文件满足第二缓存规则的情况下,基于所述多批次文件,获得目标文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910604613.9A CN110297810B (zh) | 2019-07-05 | 2019-07-05 | 一种流数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910604613.9A CN110297810B (zh) | 2019-07-05 | 2019-07-05 | 一种流数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297810A CN110297810A (zh) | 2019-10-01 |
CN110297810B true CN110297810B (zh) | 2022-01-18 |
Family
ID=68030431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910604613.9A Active CN110297810B (zh) | 2019-07-05 | 2019-07-05 | 一种流数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297810B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032340B (zh) * | 2019-12-24 | 2024-05-14 | 阿里巴巴集团控股有限公司 | 数据文件的合并方法、装置、存储介质及处理器 |
CN112597112B (zh) * | 2020-12-25 | 2023-06-27 | 北京市商汤科技开发有限公司 | 数据处理方法及装置、电子设备和存储介质 |
CN112667686B (zh) * | 2020-12-30 | 2024-07-05 | 中国农业银行股份有限公司 | 一种实时流数据拼接方法及装置 |
CN115002527B (zh) * | 2022-05-30 | 2024-05-07 | 平安科技(深圳)有限公司 | 数据传输优化方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366016A (zh) * | 2013-08-01 | 2013-10-23 | 南京大学 | 基于hdfs的电子文件集中存储及优化方法 |
CN104503710A (zh) * | 2015-01-23 | 2015-04-08 | 福州瑞芯微电子有限公司 | 一种提高闪存写入速度的方法和装置 |
CN104978351A (zh) * | 2014-04-09 | 2015-10-14 | 中国电信股份有限公司 | 海量小文件备份方法与云存储网关 |
CN105843841A (zh) * | 2016-03-07 | 2016-08-10 | 青岛理工大学 | 一种小文件存储方法和*** |
CN106686148A (zh) * | 2017-03-20 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种用于提高对象存储***中对象上传速度的方法和*** |
WO2017133216A1 (zh) * | 2016-02-06 | 2017-08-10 | 华为技术有限公司 | 分布式存储方法和设备 |
CN108460121A (zh) * | 2018-01-22 | 2018-08-28 | 重庆邮电大学 | 智慧城市中时空数据小文件合并方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020129048A1 (en) * | 2000-03-03 | 2002-09-12 | Surgient Networks, Inc. | Systems and methods for resource monitoring in information storage environments |
CN102446137B (zh) * | 2010-10-08 | 2015-12-09 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
CN102982147B (zh) * | 2012-11-26 | 2016-03-30 | 深圳市华为技术软件有限公司 | 一种提高数据信息整合效率的方法和装置 |
CN105989129B (zh) * | 2015-02-15 | 2019-03-26 | 腾讯科技(深圳)有限公司 | 实时数据统计方法和装置 |
US10331380B1 (en) * | 2015-04-06 | 2019-06-25 | EMC IP Holding Company LLC | Scalable distributed in-memory computation utilizing batch mode extensions |
-
2019
- 2019-07-05 CN CN201910604613.9A patent/CN110297810B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366016A (zh) * | 2013-08-01 | 2013-10-23 | 南京大学 | 基于hdfs的电子文件集中存储及优化方法 |
CN104978351A (zh) * | 2014-04-09 | 2015-10-14 | 中国电信股份有限公司 | 海量小文件备份方法与云存储网关 |
CN104503710A (zh) * | 2015-01-23 | 2015-04-08 | 福州瑞芯微电子有限公司 | 一种提高闪存写入速度的方法和装置 |
WO2017133216A1 (zh) * | 2016-02-06 | 2017-08-10 | 华为技术有限公司 | 分布式存储方法和设备 |
CN105843841A (zh) * | 2016-03-07 | 2016-08-10 | 青岛理工大学 | 一种小文件存储方法和*** |
CN106686148A (zh) * | 2017-03-20 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种用于提高对象存储***中对象上传速度的方法和*** |
CN108460121A (zh) * | 2018-01-22 | 2018-08-28 | 重庆邮电大学 | 智慧城市中时空数据小文件合并方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110297810A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297810B (zh) | 一种流数据处理方法、装置及电子设备 | |
CN109522428B (zh) | 一种基于索引定位的图计算***的外存访问方法 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN111813805A (zh) | 一种数据处理方法及装置 | |
CN110673794A (zh) | 分布式数据的均衡处理方法、装置、计算终端和存储介质 | |
CN112269661B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN114297630A (zh) | 恶意数据的检测方法、装置、存储介质及处理器 | |
CN105701128A (zh) | 一种查询语句的优化方法和装置 | |
US10860472B2 (en) | Dynamically deallocating memory pool subinstances | |
CN112948330A (zh) | 数据合并方法、装置、电子设备、存储介质及程序产品 | |
CN109101191B (zh) | 数据存储方法、装置和存储介质以及电子设备 | |
CN110909072B (zh) | 一种数据表建立方法、装置及设备 | |
CN110909085A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN116226071A (zh) | 数据统计方法、装置、设备及存储介质 | |
CN111143456B (zh) | 基于Spark的Cassandra数据导入方法、装置、设备及介质 | |
CN112181829B (zh) | Ab实验的用户分流方法、装置、终端及介质 | |
CN115269519A (zh) | 一种日志检测方法、装置及电子设备 | |
CN112463741A (zh) | 一种聚合大文件的清理方法及相关设备 | |
WO2019214685A1 (zh) | 一种消息的处理方法、装置和*** | |
CN109947721A (zh) | 一种小文件处理方法和装置 | |
CN109101188B (zh) | 一种数据处理方法和装置 | |
JP2021018711A (ja) | タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム | |
CN110109881B (zh) | 文件拆分的方法、装置、电子设备及存储介质 | |
CN109597689B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |