一种数据乱序到达处理方法和系统技术方案

技术编号:15910841 阅读:33 留言:0更新日期:2017-08-01 22:31
本发明专利技术公开了一种数据乱序到达处理方法和系统。方法包括以下步骤:提取当前时间窗口字段,将时间窗口字段处理成日期类型数据;判断用户流数据是否存在指定时间窗口字段,并做相应地处理;标记时间分片字段所在的时间窗口字段,并从Redis存储库中提取在该时间窗口字段之前的数据集;判断标记的时间窗口字段的时间分片数据是否在提取的数据集中,并做相应地处理;存储用户流数据到Redis存储库中,更新Redis存储库;系统包括数据处理模块、第一判断模块、标记模块、第二判断模块和Redis存储库模块。本发明专利技术解决了实时流数据的乱序到达的问题,尤其适用于解决数据源并非序列化的场景,提升了数据的有效性和时序性。

Data disorderly arrival processing method and system

The invention discloses a data disorderly arrival processing method and a system. The method comprises the following steps: extracting the current time window field, processing time window into field date type data; judging user data stream if there is a specified time window field, and do the corresponding processing; time window field marking time slice field where, before the time window and extract the field data sets from the Redis repository in the time window; the field judgment marker time slice data are concentrated in the extracted data, and do the corresponding processing; storage of user data stream to the Redis repository, update the Redis repository; the system comprises a data processing module, a first judging module, a judging module and a second marking module, Redis storage module. The invention solves the problem of the random arrival of the real-time stream data, and is especially suitable for solving the scenario that the data source is not serialized, thereby improving the validity and timing of the data.

【技术实现步骤摘要】
一种数据乱序到达处理方法和系统
本专利技术涉及大数据分析处理
,具体是一种数据乱序到达处理方法和系统。
技术介绍
目前大数据产业背景下,实时流技术是一种将批次化、有序、整齐的序列化数据,固定地往分析器中推送的数据处理技术。由于分析器对数据格式要求严格,这直接导致大多数情况下,数据格式单一,序列化要求严格。然而,在实时流数据源中,数据往往并非都是来自高度序列化的场景,因数据乱序到达导致数据清洗结果与原数据结果经常呈现不一致,数据时序性差,数据质量低。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种数据乱序到达处理方法和系统,本专利技术通过对实时流数据时间分片分批分配的原理,使Spark处理节点上在存储Redis过程中进行逻辑分配,从而解决了实时流数据的乱序到达问题,提升了数据的有效性和时序性。本专利技术的目的是通过以下技术方案来实现的:一种数据乱序到达处理方法,它包括以下步骤:S103:提取当前时间窗口字段,将时间窗口字段处理成日期类型数据;S104:判断用户流数据是否存在指定时间窗口字段,(1)如果用户流数据没有指定时间窗口字段,则使用当前时间作为时间分片字段;(2)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段不在合法窗口内,则丢弃该字段并记录日志,将日志作为时间分片字段;(3)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段在合法窗口内,则使用该字段作为该条用户数据的时间分片字段;S105:标记步骤S4中得到的时间分片字段所在的时间窗口字段,并从Redis存储库中提取在该时间窗口字段之前的数据集;S106:判断标记的时间窗口字段的时间分片数据是否在步骤S5中提取的数据集中,(1)如果所述的时间分片数据在数据集中,则将所述的时间分片数据与数据集合并,并将合并后的数据重新存储到Redis存储库中;(2)如果所述的时间分片数据不在数据集中,则对所述的时间分片数据新建数据表单,并将新建数据表单添加到Redis存储库中;S107:存储该条用户流数据到Redis存储库中,更新Redis存储库。进一步,在步骤S103之前,还包括以下步骤:S101:接收用户流数据;S102:对接收到的用户流数据进行预处理,判断数据的有效性,并对有效数据转换数据类型。所述的用户流数据包括传感器数据、业务系统数据和服务器日志。一种数据乱序到达处理系统,它包括:数据处理模块,用于将时间窗口字段处理成日期类型数据;第一判断模块,用于判断用户流数据是否存在指定时间窗口字段;标记模块,用于标记时间分片字段所在的时间窗口字段;第二判断模块,用于判断标记的时间窗口字段的时间分片数据是否在提取的数据集中;Redis存储库模块,用于存储时间分片数据和用户流数据。进一步,所述的系统还包括数据接收模块,用于接收用户流数据。进一步,所述的系统还包括预处理模块,用于对接收到的用户流数据进行预处理,判断数据的有效性,并对有效数据转换数据类型。进一步,所述的系统它还包括配置模块,用于配置数据清洗流程。本专利技术的有益效果是:(1)本专利技术采用了Spark集群环境的分布式处理优势,并结合了Redis存储库中的NoSQL存储快的特点,能够快速地构建数据分片的存储地址,从而使乱序的时间分片得到有效地划分和有效地区别;(2)本专利技术基于对实时流数据时间分片分批分配的原理,使Spark处理节点上在存储Redis的过程中进行逻辑分配,解决了实时流数据的乱序到达的问题,尤其适用于解决数据源并非序列化的场景,显著提升了数据的有效性和时序性;(3)本专利技术解决了现有流式数据无法对乱序到达的消息进行处理的瓶颈问题,可以集成到现有序列化数据处理系统中,提高对实时流数据的处理能力;(4)本专利技术解决了实时流数据源中,因数据乱序到达导致数据清洗结果与原数据结果呈现不一致的问题,使用本专利技术后,可以有效地根据时间分片来对乱序到达的数据进行分批分配处理。附图说明图1为本专利技术方法的流程图;图2为本专利技术系统的功能模块构架图。具体实施方式下面结合附图进一步详细描述本专利技术的技术方案,但本专利技术的保护范围不局限于以下所述。如图1所示,一种数据乱序到达处理方法,它包括以下步骤:S103:提取当前时间窗口字段,将时间窗口字段处理成日期类型数据;S104:判断用户流数据是否存在指定时间窗口字段,(1)如果用户流数据没有指定时间窗口字段,则使用当前时间作为时间分片字段;(2)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段不在合法窗口内,则丢弃该字段并记录日志,将日志作为时间分片字段;(3)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段在合法窗口内,则使用该字段作为该条用户数据的时间分片字段;S105:标记步骤S4中得到的时间分片字段所在的时间窗口字段,并从Redis存储库中提取在该时间窗口字段之前的数据集;S106:判断标记的时间窗口字段的时间分片数据是否在步骤S5中提取的数据集中,(1)如果所述的时间分片数据在数据集中,则将所述的时间分片数据与数据集合并,并将合并后的数据重新存储到Redis存储库中;(2)如果所述的时间分片数据不在数据集中,则对所述的时间分片数据新建数据表单,并将新建数据表单添加到Redis存储库中;S107:存储该条用户流数据到Redis存储库中,更新Redis存储库。进一步,在步骤S103之前,还包括以下步骤:S101:接收用户流数据;S102:对接收到的用户流数据进行预处理,判断数据的有效性,并对有效数据转换数据类型。所述的用户流数据包括传感器数据、业务系统数据和服务器日志。如图2所示,一种数据乱序到达处理系统,它包括:数据处理模块,用于将时间窗口字段处理成日期类型数据;第一判断模块,用于判断用户流数据是否存在指定时间窗口字段;标记模块,用于标记时间分片字段所在的时间窗口字段;第二判断模块,用于判断标记的时间窗口字段的时间分片数据是否在提取的数据集中;Redis存储库模块,用于存储时间分片数据和用户流数据。进一步,所述的系统还包括数据接收模块,用于接收用户流数据。进一步,所述的系统还包括预处理模块,用于对接收到的用户流数据进行预处理,判断数据的有效性,并对有效数据转换数据类型。进一步,所述的系统它还包括配置模块,用于配置数据清洗流程。实施例:本专利技术是根据Redis存储原理,将数据进行分批次存储,供以外部接口进行调用查询,目前,一种SDCSream大数据实时流产品已采用本专利技术进行数据乱序到达处理,通过实际测试运用,效果非常理想。下面结合附图再进一步详细描述本专利技术的技术存储方案:如图1所示,在本专利技术存储步骤流程图中,主要包括流式数据接收、数据转换、数据时间片段判断和数据存储到Redis等几个步骤。在本实施例中,数据存储逻辑判断是通过Java代码结合Spark调度和Redis存储完成的:第一步:接收流数据,并传输到乱序到达处理模块;第二步:对流数据进行预处理,例如对数据进行初步清洗,判断确认数据的有效性;第三步:甄选当前时间窗口字段设置的值;第四步:做系统逻辑判断,判断用户是否有制定时间字段;①如果用户未指定时间窗口字段,系统会使用当前时间作为有效的时间分片字段;②如果用户所指定的时间窗口字段不在合法窗口内,系统无法对字段进行分片处理,则丢弃掉该条数据并记录本文档来自技高网...
一种数据乱序到达处理方法和系统

【技术保护点】
一种数据乱序到达处理方法,其特征在于,它包括以下步骤:S103:提取当前时间窗口字段,将时间窗口字段处理成日期类型数据;S104:判断用户流数据是否存在指定时间窗口字段,(1)如果用户流数据没有指定时间窗口字段,则使用当前时间作为时间分片字段;(2)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段不在合法窗口内,则丢弃该字段并记录日志,将日志作为时间分片字段;(3)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段在合法窗口内,则使用该字段作为该条用户数据的时间分片字段;S105:标记步骤S4中得到的时间分片字段所在的时间窗口字段,并从Redis存储库中提取在该时间窗口字段之前的数据集;S106:判断标记的时间窗口字段的时间分片数据是否在步骤S5中提取的数据集中,(1)如果所述的时间分片数据在数据集中,则将所述的时间分片数据与数据集合并,并将合并后的数据重新存储到Redis存储库中;(2)如果所述的时间分片数据不在数据集中,则对所述的时间分片数据新建数据表单,并将新建数据表单添加到Redis存储库中;S107:存储该条用户流数据到Redis存储库中,更新Redis存储库。

【技术特征摘要】
1.一种数据乱序到达处理方法,其特征在于,它包括以下步骤:S103:提取当前时间窗口字段,将时间窗口字段处理成日期类型数据;S104:判断用户流数据是否存在指定时间窗口字段,(1)如果用户流数据没有指定时间窗口字段,则使用当前时间作为时间分片字段;(2)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段不在合法窗口内,则丢弃该字段并记录日志,将日志作为时间分片字段;(3)如果用户流数据有指定时间窗口字段,且指定的时间窗口字段在合法窗口内,则使用该字段作为该条用户数据的时间分片字段;S105:标记步骤S4中得到的时间分片字段所在的时间窗口字段,并从Redis存储库中提取在该时间窗口字段之前的数据集;S106:判断标记的时间窗口字段的时间分片数据是否在步骤S5中提取的数据集中,(1)如果所述的时间分片数据在数据集中,则将所述的时间分片数据与数据集合并,并将合并后的数据重新存储到Redis存储库中;(2)如果所述的时间分片数据不在数据集中,则对所述的时间分片数据新建数据表单,并将新建数据表单添加到Redis存储库中;S107:存储该条用户流数据到Redis存储库中,更新Redis存储库。2.根据权利要求1所...

【专利技术属性】
技术研发人员:李广王纯斌曹洹太覃进学刘旻哲
申请(专利权)人:成都四方伟业软件股份有限公司
类型:发明
国别省市:四川,51

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

1