CN117112162B - 一种数据处理方法、装置、设备和存储介质 - Google Patents
一种数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117112162B CN117112162B CN202310987690.3A CN202310987690A CN117112162B CN 117112162 B CN117112162 B CN 117112162B CN 202310987690 A CN202310987690 A CN 202310987690A CN 117112162 B CN117112162 B CN 117112162B
- Authority
- CN
- China
- Prior art keywords
- load data
- initial
- preset
- preset theme
- segment
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012163 sequencing technique Methods 0.000 claims abstract description 10
- 238000005192 partition Methods 0.000 claims description 55
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 abstract description 8
- 238000012423 maintenance Methods 0.000 abstract description 5
- 230000008094 contradictory effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置、设备和存储介质。该方法包括:获取初始载荷数据文件;根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段;将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中;对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。通过本发明的技术方案,能够解决分布式处理及全局顺序保持存在矛盾的问题,可以提升分类有序载荷数据文件的解析效率。
Description
技术领域
本发明实施例涉及航空航天及大数据技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。
背景技术
现有技术中,分布式并行处理成为处理大载荷数据文件的有效的方法。然而在直接的并行处理过程中,各个分布式节点仅处理分配给本节点的部分数据文件,一个大的载荷数据文件拆分成几个部分之后,子(部分)数据文件之间并不存在优先级,这就导致了拆分之前的载荷数据文件中的顺序没有得到保持。如果希望保持顺序,则只能利用单一节点对大载荷数据文件进行串行处理,这样则会导致解析时间过长,不能充分利用分布式并行处理带来的好处。
发明内容
本发明实施例提供一种数据处理方法、装置、设备和存储介质,以实现能够解决分布式处理及全局顺序保持存在矛盾的问题,可以提升分类有序载荷数据文件的解析效率。
根据本发明的一方面,提供了一种数据处理方法,包括:
获取初始载荷数据文件;
根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段;
将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中;
对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。
根据本发明的另一方面,提供了一种数据处理装置,该装置包括:
获取模块,用于获取初始载荷数据文件;
拆分模块,用于根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段;
存储模块,用于将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中;
排序模块,用于对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据处理方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据处理方法。
本发明实施例通过获取初始载荷数据文件,根据预设并行度对初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段,将每个载荷数据段中的载荷数据分别存储至至少一个预设主题中,对每个预设主题中的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据。通过本发明的技术方案,能够解决分布式处理及全局顺序保持存在矛盾的问题,可以提升分类有序载荷数据文件的解析效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例中的一种数据处理方法的流程图;
图2是本发明实施例中的一种初始载荷数据文件的示意图;
图3是本发明实施例中的一种第一载荷数据段存入预设主题的示意图;
图4是本发明实施例中的一种第二载荷数据段存入预设主题的示意图;
图5是本发明实施例中的一种第三载荷数据段存入预设主题的示意图;
图6是本发明实施例中的一种第四载荷数据段存入预设主题的示意图;
图7是本发明实施例中的将所有载荷数据段存入预设主题后的示意图;
图8是本发明实施例中的一种目标载荷数据的示意图;
图9是本发明实施例中的一种数据处理装置的结构示意图;
图10是实现本发明实施例的数据处理方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是本发明实施例中的一种数据处理方法的流程图,本实施例可适用于数据处理的情况,该方法可以由本发明实施例中的数据处理装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
S101、获取初始载荷数据文件。
在本实施例中,初始载荷数据文件可以是实时接收的初始的包含若干航天载荷数据的文件。
S102、根据预设并行度对初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段。
其中,预设并行度可以是由用户根据实际情况预先设置的长度,本实施例对此不进行限定。载荷数据段可以是将初始载荷数据文件进行拆分处理后得到的子(部分)数据段。
具体的,可以将初始载荷数据文件输入Flink分布式***,通过设置预设并行度,Flink分布式***能够按照预设并行度对初始载荷数据文件进行大致均等的拆分。
S103、将每个载荷数据段中的载荷数据分别存储至至少一个预设主题中。
在本实施例中,预设主题可以是在Kafka中建立的主题,可以表示为Topic。
具体的,预先在Kafka中建立若干预设主题Topic,将每个载荷数据段中的载荷数据分别存储到每个预设主题中。
S104、对每个预设主题中的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据。
需要说明的是,目标载荷数据可以是将每个预设主题中的载荷数据进行排序后得到的载荷数据。
具体的,可以对每个预设主题中的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据,将目标载荷数据输出到文件中,进而对目标载荷数据进行后续处理,如落盘或者做进一步的数据帧解析。
本发明实施例通过获取初始载荷数据文件,根据预设并行度对初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段,将每个载荷数据段中的载荷数据分别存储至至少一个预设主题中,对每个预设主题中的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据。通过本发明的技术方案,能够解决分布式处理及全局顺序保持存在矛盾的问题,可以提升分类有序载荷数据文件的解析效率。
可选的,每个载荷数据段中包括至少一个载荷数据,每个载荷数据携带类别信息。
在本实施例中,类别信息可以是载荷数据具体所属的类别的信息,每个载荷数据的类别信息可以是每个载荷数据自身携带的信息,可以直接获取,可以通过代表VC的16进制数表示。
将每个载荷数据段中的载荷数据分别存储至至少一个预设主题中,包括:
根据每个载荷数据携带的类别信息,对每个载荷数据段中的载荷数据进行归类,得到每个载荷数据段对应的至少一个载荷数据集合。
其中,载荷数据集合可以是每个载荷数据段中类别相同的载荷数据组成的集合。
示例性的,某载荷数据段中包括10个载荷数据,载荷数据1携带的类别信息为类别VC1,载荷数据2携带的类别信息为类别VC3,载荷数据3携带的类别信息为类别VC2,载荷数据4携带的类别信息为类别VC4,载荷数据5携带的类别信息为类别VC1,载荷数据6携带的类别信息为类别VC2,载荷数据7携带的类别信息为类别VC1,载荷数据8携带的类别信息为类别VC1,载荷数据9携带的类别信息为类别VC3,载荷数据10携带的类别信息为类别VC4,则该载荷数据段对应的载荷数据集合可以是:载荷数据集合1:类别VC1={载荷数据1、载荷数据5、载荷数据7、载荷数据8},载荷数据集合2:类别VC2={载荷数据3、载荷数据6},载荷数据集合3:类别VC3={载荷数据2、载荷数据9},载荷数据集合4:类别VC4={载荷数据4、载荷数据10}。
将每个载荷数据段对应的至少一个载荷数据集合分别存储至至少一个预设主题中。
可选的,将每个载荷数据段对应的至少一个载荷数据集合分别存储至至少一个预设主题中,包括:
建立与每种类别信息对应的预设主题。
具体的,预先在Kafka中建立与每种类别信息对应的预设主题Topic,即每种类别信息对应一个预设主题Topic,类别信息的总个数与预设主题Topic的总个数相同。
将每个载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题中。
可选的,将每个载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题中,包括:
获取载荷数据段的目标数量。
其中,目标数量可以是将初始载荷数据文件进行拆分后得到的载荷数据段数量。
具体的,获取将初始载荷数据文件进行拆分后得到的载荷数据段的目标数量。
在每个预设主题中建立目标数量的分区。
在本实施例中,分区可以是用于存储每个载荷数据段对应的每种载荷数据集合中类别信息相同的载荷数据的区域,可以用Partition进行表示。
示例性的,若将初始载荷数据文件进行拆分后得到的载荷数据段的目标数量为4,则分别在每个预设主题中建立4个分区。
将每个载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题的分区中。
可选的,将每个载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题的分区中,包括:
将同一个载荷数据段对应的每种载荷数据集合分别存储在每种类别信息对应的预设主题的相同位置的分区内。
示例性的,将载荷数据段1中的载荷数据集合11即类别VC1中包括的所有载荷数据存储在类别VC1对应的预设主题Topic1的第一个分区Partition11,将载荷数据段1中的载荷数据集合12即类别VC2中包括的所有载荷数据存储在类别VC2对应的预设主题Topic2的第一个分区Partition21,将载荷数据段1中的载荷数据集合13即类别VC3中包括的所有载荷数据存储在类别VC3对应的预设主题Topic3的第一个分区Partition31,将载荷数据段1中的载荷数据集合14即类别VC4中包括的所有载荷数据存储在类别VC4对应的预设主题Topic4的第一个分区Partition41。将载荷数据段2中的载荷数据集合21即类别VC1中包括的所有载荷数据存储在类别VC1对应的预设主题Topic1的第二个分区Partition12,将载荷数据段2中的载荷数据集合22即类别VC2中包括的所有载荷数据存储在类别VC2对应的预设主题Topic2的第二个分区Partition22,将载荷数据段2中的载荷数据集合23即类别VC3中包括的所有载荷数据存储在类别VC3对应的预设主题Topic3的第二个分区Partition32,将载荷数据段2中的载荷数据集合24即类别VC4中包括的所有载荷数据存储在类别VC4对应的预设主题Topic4的第二个分区Partition42。以此类推,直至将所有载荷数据都存储至每种类别信息对应的预设主题的相同位置的分区内。
可选的,对每个预设主题中的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据,包括:
按照每个载荷数据在初始载荷数据文件中的目标顺序,对每个预设主题中每个分区的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据。
需要解释的是,每个载荷数据在初始载荷数据文件中的目标顺序可以是每个载荷数据在初始载荷数据文件中的原始相对顺序。
具体的,按照每个载荷数据在初始载荷数据文件中的原始相对顺序,将每个预设主题中每个分区的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据,即,每个分区内的载荷数据的顺序为每个载荷数据在初始载荷数据文件中的原始相对顺序,同一个预设主题中每个分区的顺序为:根据每个分区的第一个载荷数据在初始载荷数据文件中的原始相对顺序对所有分区进行排序。
示例性的,某预设主题Topic内包括:分区Partition1、分区Partition2、分区Partition3和分区Partition4;分区Partition1内包括数据:载荷数据1、载荷数据5,分区Partition2内包括数据:载荷数据3,分区Partition3内包括数据:载荷数据2,分区Partition4内包括数据:载荷数据4。则排序后的结果为:分区Partition1(载荷数据1、载荷数据5)、分区Partition3(载荷数据2)、分区Partition2(载荷数据3)和分区Partition4(载荷数据4)。其中,载荷数据1中的1表示此载荷数据在初始载荷数据文件中的原始相对顺序为第一,载荷数据2中的2表示此载荷数据在初始载荷数据文件中的原始相对顺序为第二等等。
可选的,根据预设并行度对初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段,包括:
根据预设并行度确定初始载荷数据文件中对应的至少一个初始拆分位置。
需要说明的是,初始拆分位置可以是根据预设并行度确定的,将初始载荷数据文件进行拆分的初始载荷数据文件中的位置。
示例性的,若初始载荷数据文件中共包含200个载荷数据,预设并行度为50个载荷数据的长度,则根据预设并行度确定的初始载荷数据文件中对应的初始拆分位置可以是:第50和第51个载荷数据之间的位置、第100和第101个载荷数据之间的位置以及第150和第151个载荷数据之间的位置。
检测每个初始拆分位置是否存在分隔符。
在本实施例中,分隔符可以理解为位于初始载荷数据文件中的,不可拆开的标识符。
具体的,根据预设并行度确定初始载荷数据文件中对应的至少一个初始拆分位置后,检测每个初始拆分位置是否存在分隔符。
若初始拆分位置不存在分隔符,则将初始拆分位置确定为目标拆分位置。
其中,目标拆分位置可以是将初始载荷数据文件进行拆分的位置。
具体的,若检测到某个初始拆分位置不存在分隔符,即该位置可以直接进行拆分,不会对载荷数据造成影响,则可以直接将该初始拆分位置确定为目标拆分位置进行初始载荷数据文件的拆分。
若初始拆分位置存在分隔符,则将分隔符的前一载荷数据位置确定为目标拆分位置。
具体的,若检测到某个初始拆分位置存在分隔符,即该位置不可以直接进行拆分,会对载荷数据造成影响,则可以直接将分隔符的前一载荷数据位置确定为目标拆分位置。
根据目标拆分位置对初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段。
具体的,确定好每个目标拆分位置后,根据每个目标拆分位置对初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段。
作为本发明实施例的一个示例性描述,现通过一个具体实例对数据处理方法进行说明。
图2是本发明实施例中的一种初始载荷数据文件的示意图。如图2所示,初始载荷数据文件中一共包含有20个载荷数据,图2中第2列的数字表示每个载荷数据在初始载荷数据文件中的目标顺序,图2中第3列的内容表示每个载荷数据的类别信息。通过Flink分布式***对初始载荷数据文件进行拆分处理,假设预设并行度为5个载荷数据的长度,对初始载荷数据文件进行拆分,可以拆分为4个载荷数据段:split-01(即第一载荷数据段)、split-02(即第二载荷数据段)、split-03(即第三载荷数据段)和split-04(即第四载荷数据段)。
根据每个载荷数据携带的类别信息,对每个载荷数据段中的载荷数据进行归类,得到每个载荷数据段对应的至少一个载荷数据集合。建立与每种类别信息对应的预设主题:与类别信息VC1对应的预设主题Kafka Topic(VC1)、与类别信息VC2对应的预设主题Kafka Topic(VC2)、与类别信息VC3对应的预设主题Kafka Topic(VC3)、与类别信息VC4对应的预设主题Kafka Topic(VC4)。在每个预设主题中建立4个分区,用于存放每个载荷数据段对应的载荷数据集合:分区partition1(for split-01)、分区partition2(for split-02)、分区partition3(for split-03)、分区partition4(for split-04),将每个载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题的分区中。
图3是本发明实施例中的一种第一载荷数据段存入预设主题的示意图。如图3所示,将第一载荷数据段即split-01中的属于VC1的载荷数据集合(载荷数据1、载荷数据5)存入与类别信息VC1对应的预设主题Kafka Topic(VC1)中的分区partition1(for split-01)中,将第一载荷数据段即split-01中的属于VC2的载荷数据集合(载荷数据3)存入与类别信息VC2对应的预设主题Kafka Topic(VC2)中的分区partition1(for split-01)中,将第一载荷数据段即split-01中的属于VC3的载荷数据集合(载荷数据2)存入与类别信息VC3对应的预设主题Kafka Topic(VC3)中的分区partition1(for split-01)中,将第一载荷数据段即split-01中的属于VC4的载荷数据集合(载荷数据4)存入与类别信息VC4对应的预设主题Kafka Topic(VC4)中的分区partition1(for split-01)中。
图4是本发明实施例中的一种第二载荷数据段存入预设主题的示意图。如图4所示,将第二载荷数据段即split-02中的属于VC1的载荷数据集合(载荷数据7、载荷数据8)存入与类别信息VC1对应的预设主题Kafka Topic(VC1)中的分区partition2(for split-02)中,将第二载荷数据段即split-02中的属于VC2的载荷数据集合(载荷数据6)存入与类别信息VC2对应的预设主题Kafka Topic(VC2)中的分区partition2(for split-02)中,将第二载荷数据段即split-02中的属于VC3的载荷数据集合(载荷数据9)存入与类别信息VC3对应的预设主题Kafka Topic(VC3)中的分区partition2(for split-02)中,将第二载荷数据段即split-02中的属于VC4的载荷数据集合(载荷数据10)存入与类别信息VC4对应的预设主题Kafka Topic(VC4)中的分区partition2(for split-02)中。
图5是本发明实施例中的一种第三载荷数据段存入预设主题的示意图。如图5所示,将第三载荷数据段即split-03中的属于VC1的载荷数据集合(载荷数据14)存入与类别信息VC1对应的预设主题Kafka Topic(VC1)中的分区partition3(for split-03)中,将第三载荷数据段即split-03中的属于VC2的载荷数据集合(载荷数据11、载荷数据15)存入与类别信息VC2对应的预设主题Kafka Topic(VC2)中的分区partition3(for split-03)中,将第三载荷数据段即split-03中的属于VC3的载荷数据集合(载荷数据12)存入与类别信息VC3对应的预设主题Kafka Topic(VC3)中的分区partition3(for split-03)中,将第三载荷数据段即split-03中的属于VC4的载荷数据集合(载荷数据13)存入与类别信息VC4对应的预设主题Kafka Topic(VC4)中的分区partition3(for split-03)中。
图6是本发明实施例中的一种第四载荷数据段存入预设主题的示意图。如图6所示,将第四载荷数据段即split-04中的属于VC1的载荷数据集合(载荷数据19)存入与类别信息VC1对应的预设主题Kafka Topic(VC1)中的分区partition4(for split-04)中,将第四载荷数据段即split-04中的属于VC2的载荷数据集合(载荷数据18)存入与类别信息VC2对应的预设主题Kafka Topic(VC2)中的分区partition4(for split-04)中,将第四载荷数据段即split-04中的属于VC3的载荷数据集合(载荷数据16)存入与类别信息VC3对应的预设主题Kafka Topic(VC3)中的分区partition4(for split-04)中,将第四载荷数据段即split-04中的属于VC4的载荷数据集合(载荷数据17、载荷数据20)存入与类别信息VC4对应的预设主题Kafka Topic(VC4)中的分区partition4(for split-04)中。
图7是本发明实施例中的将所有载荷数据段存入预设主题后的示意图。如图7所示,在所有split即载荷数据段均并行处理完成后并存入Kafka后,Kafka中的每一个预设主题Topic下的不同分区partition之间是相对独立的,载荷数据在分区partition中有序,而分区partition与分区partition之间是并行(无序)的关系。
并行处理Kafka中的每一个预设主题Topic,将每一个预设主题Topic中所有分区partition中的载荷数据批量存入Redis的Sorted Set。Redis中的Sorted Set具有优先级队列的能力及批处理能力,因为可以针对分区partition进行整体排序,最终达到每一个预设主题Topic中的不同的partition的载荷数据在Redis的Sorted Set中得以按照在初始载荷数据文件中的相对顺序位置进行存储,之后可以对Redis中相应的Sorted Set进行后续处理,如落盘或者做进一步的数据帧解析。图8是本发明实施例中的一种目标载荷数据的示意图。如图8所示,按照每个载荷数据在初始载荷数据文件中的目标顺序,对每个预设主题中每个分区的载荷数据进行排序,得到初始载荷数据文件对应的目标载荷数据。图8中vc1.dat表示与类别信息VC1对应的预设主题Kafka Topic(VC1)中的所有目标载荷数据,vc2.dat表示与类别信息VC2对应的预设主题Kafka Topic(VC2)中的所有目标载荷数据,vc3.dat表示与类别信息VC3对应的预设主题Kafka Topic(VC3)中的所有目标载荷数据,vc4.dat表示与类别信息VC4对应的预设主题Kafka Topic(VC4)中的所有目标载荷数据。
本发明实施例的技术方案,通过Flink分布式***对初始载荷数据文件进行拆分处理,在每一个拆分内对载荷数据的类别进行判断,将相同的数据类别存入Kafka相应的预设主题Topic中,将Kafka中同一预设主题Topic下的不同分区Partition通过批量***的方式存入Redis的Sorted Set中,对Redis中相应的Sorted Set进行后续处理,如落盘或者做进一步的数据帧解析。本发明实施例的技术方案通过组合利用Flink分布式批处理能力,以及Kafka的Topic中的Partition部分有序,结合Redis中的Sorted Set的ZRANGESTORE功能,解决了分布式处理及全局顺序保持的矛盾,提升了分类有序载荷数据文件的解析效率。
实施例二
图9是本发明实施例中的一种数据处理装置的结构示意图。本实施例可适用于数据处理的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供数据处理的功能的设备中,如图9所示,所述数据处理装置具体包括:获取模块201、拆分模块202、存储模块203和排序模块204。
其中,获取模块201,用于获取初始载荷数据文件;
拆分模块202,用于根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段;
存储模块203,用于将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中;
排序模块204,用于对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。
可选的,每个所述载荷数据段中包括至少一个载荷数据,每个所述载荷数据携带类别信息;
所述存储模块203包括:
归类子模块,用于根据每个所述载荷数据携带的类别信息,对每个所述载荷数据段中的载荷数据进行归类,得到每个所述载荷数据段对应的至少一个载荷数据集合;
存储子模块,用于将每个所述载荷数据段对应的至少一个载荷数据集合分别存储至至少一个预设主题中。
可选的,所述存储子模块包括:
建立单元,用于建立与每种所述类别信息对应的预设主题;
存储单元,用于将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题中。
可选的,所述存储单元包括:
获取子单元,用于获取所述载荷数据段的目标数量;
建立子单元,用于在每个所述预设主题中建立所述目标数量的分区;
存储子单元,用于将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题的分区中。
可选的,所述存储子单元具体用于:
将同一个所述载荷数据段对应的每种载荷数据集合分别存储在每种类别信息对应的预设主题的相同位置的分区内。
可选的,所述排序模块204具体用于:
按照每个所述载荷数据在所述初始载荷数据文件中的目标顺序,对每个所述预设主题中每个所述分区的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。
可选的,所述拆分模块204具体用于:
根据预设并行度确定所述初始载荷数据文件中对应的至少一个初始拆分位置;
检测每个所述初始拆分位置是否存在分隔符;
若所述初始拆分位置不存在分隔符,则将所述初始拆分位置确定为目标拆分位置;
若所述初始拆分位置存在分隔符,则将所述分隔符的前一载荷数据位置确定为目标拆分位置;
根据所述目标拆分位置对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段。
上述产品可执行本发明任意实施例所提供的数据处理方法,具备执行数据处理方法相应的功能模块和有益效果。
实施例三
图10示出了可以用来实施本发明的实施例的电子设备30的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图10所示,电子设备30包括至少一个处理器31,以及与至少一个处理器31通信连接的存储器,如只读存储器(ROM)32、随机访问存储器(RAM)33等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器31可以根据存储在只读存储器(ROM)32中的计算机程序或者从存储单元38加载到随机访问存储器(RAM)33中的计算机程序,来执行各种适当的动作和处理。在RAM 33中,还可存储电子设备30操作所需的各种程序和数据。处理器31、ROM 32以及RAM 33通过总线34彼此相连。输入/输出(I/O)接口35也连接至总线34。
电子设备30中的多个部件连接至I/O接口35,包括:输入单元36,例如键盘、鼠标等;输出单元37,例如各种类型的显示器、扬声器等;存储单元38,例如磁盘、光盘等;以及通信单元39,例如网卡、调制解调器、无线通信收发机等。通信单元39允许电子设备30通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器31可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器31的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器31执行上文所描述的各个方法和处理,例如数据处理方法:
获取初始载荷数据文件;
根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段;
将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中;
对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。
在一些实施例中,数据处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元38。在一些实施例中,计算机程序的部分或者全部可以经由ROM 32和/或通信单元39而被载入和/或安装到电子设备30上。当计算机程序加载到RAM 33并由处理器31执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,处理器31可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (5)
1.一种数据处理方法,其特征在于,包括:
获取初始载荷数据文件;
根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段;
将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中;
对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据;
每个所述载荷数据段中包括至少一个载荷数据,每个所述载荷数据携带类别信息;
将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中,包括:
根据每个所述载荷数据携带的类别信息,对每个所述载荷数据段中的载荷数据进行归类,得到每个所述载荷数据段对应的至少一个载荷数据集合;
将每个所述载荷数据段对应的至少一个载荷数据集合分别存储至至少一个预设主题中;
将每个所述载荷数据段对应的至少一个载荷数据集合分别存储至至少一个预设主题中,包括:
建立与每种所述类别信息对应的预设主题;
将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题中;
将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题中,包括:
获取所述载荷数据段的目标数量;
在每个所述预设主题中建立所述目标数量的分区;
将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题的分区中;
将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题的分区中,包括:
将同一个所述载荷数据段对应的每种载荷数据集合分别存储在每种类别信息对应的预设主题的相同位置的分区内;
对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据,包括:
按照每个所述载荷数据在所述初始载荷数据文件中的目标顺序,对每个所述预设主题中每个所述分区的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。
2.根据权利要求1所述的方法,其特征在于,根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段,包括:
根据预设并行度确定所述初始载荷数据文件中对应的至少一个初始拆分位置;
检测每个所述初始拆分位置是否存在分隔符;
若所述初始拆分位置不存在分隔符,则将所述初始拆分位置确定为目标拆分位置;
若所述初始拆分位置存在分隔符,则将所述分隔符的前一载荷数据位置确定为目标拆分位置;
根据所述目标拆分位置对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段。
3.一种数据处理装置,其特征在于,包括:
获取模块,用于获取初始载荷数据文件;
拆分模块,用于根据预设并行度对所述初始载荷数据文件中的载荷数据进行拆分,得到至少一个载荷数据段;
存储模块,用于将每个所述载荷数据段中的载荷数据分别存储至至少一个预设主题中;
排序模块,用于对每个所述预设主题中的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据;
每个所述载荷数据段中包括至少一个载荷数据,每个所述载荷数据携带类别信息;
所述存储模块包括:
归类子模块,用于根据每个所述载荷数据携带的类别信息,对每个所述载荷数据段中的载荷数据进行归类,得到每个所述载荷数据段对应的至少一个载荷数据集合;
存储子模块,用于将每个所述载荷数据段对应的至少一个载荷数据集合分别存储至至少一个预设主题中;
所述存储子模块包括:
建立单元,用于建立与每种所述类别信息对应的预设主题;
存储单元,用于将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题中;
所述存储单元包括:
获取子单元,用于获取所述载荷数据段的目标数量;
建立子单元,用于在每个所述预设主题中建立所述目标数量的分区;
存储子单元,用于将每个所述载荷数据段对应的每种载荷数据集合分别存储至每种类别信息对应的预设主题的分区中;
所述存储子单元具体用于:
将同一个所述载荷数据段对应的每种载荷数据集合分别存储在每种类别信息对应的预设主题的相同位置的分区内;
所述排序模块具体用于:
按照每个所述载荷数据在所述初始载荷数据文件中的目标顺序,对每个所述预设主题中每个所述分区的载荷数据进行排序,得到所述初始载荷数据文件对应的目标载荷数据。
4.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-2中任一项所述的数据处理方法。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-2中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310987690.3A CN117112162B (zh) | 2023-08-07 | 2023-08-07 | 一种数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310987690.3A CN117112162B (zh) | 2023-08-07 | 2023-08-07 | 一种数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117112162A CN117112162A (zh) | 2023-11-24 |
CN117112162B true CN117112162B (zh) | 2024-07-05 |
Family
ID=88811956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310987690.3A Active CN117112162B (zh) | 2023-08-07 | 2023-08-07 | 一种数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112162B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297216A (zh) * | 2021-05-17 | 2021-08-24 | 中国人民解放军63920部队 | 航天测控数据实时入库方法 |
CN116303761A (zh) * | 2022-12-28 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 一种分布式入库的方法、装置、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366053B1 (en) * | 2015-11-24 | 2019-07-30 | Amazon Technologies, Inc. | Consistent randomized record-level splitting of machine learning data |
US11620345B2 (en) * | 2018-09-24 | 2023-04-04 | Salesforce, Inc. | Method and apparatus for a mechanism for event replay when a reroute of recordation of the event occurred in a multiplexed event recordation system |
CN114048217A (zh) * | 2021-10-21 | 2022-02-15 | 微民保险代理有限公司 | 增量数据的同步方法和装置、电子设备和存储介质 |
CN115237595A (zh) * | 2022-04-13 | 2022-10-25 | 杭州涂鸦信息技术有限公司 | 数据处理方法、装置、分发服务器、***及存储介质 |
CN115840766A (zh) * | 2022-11-25 | 2023-03-24 | 网易(杭州)网络有限公司 | 一种日志数据解析方法、装置、电子设备及存储介质 |
CN115994190B (zh) * | 2023-03-23 | 2023-05-19 | 中国科学院空间应用工程与技术中心 | 一种航天海量数据的分布式实时处理方法及*** |
-
2023
- 2023-08-07 CN CN202310987690.3A patent/CN117112162B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297216A (zh) * | 2021-05-17 | 2021-08-24 | 中国人民解放军63920部队 | 航天测控数据实时入库方法 |
CN116303761A (zh) * | 2022-12-28 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 一种分布式入库的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117112162A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117149894A (zh) | 一种调用链路的展示方法、装置、电子设备及存储介质 | |
CN113377998A (zh) | 数据加载的方法、装置、电子设备及存储介质 | |
CN117112162B (zh) | 一种数据处理方法、装置、设备和存储介质 | |
CN116126719A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
CN116938953A (zh) | 基于区块链的数据处理方法、装置、电子设备及存储介质 | |
CN116303013A (zh) | 源码分析方法、装置、电子设备及存储介质 | |
CN115774602A (zh) | 一种容器资源的分配方法、装置、设备及存储介质 | |
CN115438007A (zh) | 一种文件合并方法、装置、电子设备及介质 | |
CN114035906A (zh) | 虚拟机迁移方法、装置、电子设备及存储介质 | |
CN116827411B (zh) | 一种载荷数据解析方法、装置、电子设备和存储介质 | |
CN112395081A (zh) | 一种资源在线自动回收方法、***、服务器以及存储介质 | |
CN117573491A (zh) | 一种性能瓶颈的定位方法、装置、设备及存储介质 | |
CN113343064A (zh) | 数据处理方法、装置、设备、存储介质以及计算机程序产品 | |
CN117632748A (zh) | 冒烟测试用例的确定方法、装置、电子设备及存储介质 | |
CN114817301A (zh) | 一种优化方法、装置、电子设备及存储介质 | |
CN117632120A (zh) | 一种报表数据的加工***、方法、设备及存储介质 | |
CN115859300A (zh) | 一种漏洞检测方法、装置、电子设备及存储介质 | |
CN116781694A (zh) | 一种应用于边缘计算***的调度方法、装置、设备及介质 | |
CN116594708A (zh) | 多模型加载配置文件的生成方法、装置、设备及介质 | |
CN116455999A (zh) | 一种应用状态管理方法、装置、电子设备及存储介质 | |
CN116405543A (zh) | 一种微服务动态调度的方法、装置、设备及介质 | |
CN116450606A (zh) | 一种参数调整方法、装置、电子设备及存储介质 | |
CN117544487A (zh) | 异常设备确定方法、装置、电子设备以及存储介质 | |
CN117786453A (zh) | 一种箱柜类型的识别方法、装置、设备及存储介质 | |
CN117610512A (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 |