掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及数据处理的技术领域,尤其是涉及一种分布式环境下数据流式归并方法。

背景技术

近年来,随着门户网站、社交网络、电子商务等网络应用的高速发展,以及业务的持续增长和延伸,产生并累积了大量的业务数据,这些数据具有数据总量大,数据结构多样化,数据增长率高等特点,是典型的分布式数据。

例如,在电子商务实时推荐系统中,用户喜欢在各平台上进行选择性购物,例如淘宝、天猫、聚划算、支付宝商城等等多商务平台之间各自存储着大量商品的信息,以及用户的注册、搜索、收藏、购买等记录信息,利用该数据实现有效的实时推荐。

对于数据的归并,通常采用的技术手段是利用窗口机制等方式实现,例如:某条数据到达窗口算子时,窗口算子会根据当前数据的时间和归并周期,建立一个窗口,后续根据匹配规则将数据累积到该窗口进行归并,然后,等到窗口结束时,将窗口内的数据处理后输出到外部存储系统。存在以下技术问题,对于较多的数据,全部进行归并,且在归并周期内,数据累积在内存中,内存开销大。

发明内容

本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本发明的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。

鉴于上述现有一种分布式环境下数据流式归并方法的问题,提出了本发明。因此,本发明目的是提供一种分布式环境下数据流式归并方法,能够。

为解决上述技术问题,本发明提供一种分布式环境下数据流式归并方法,采用如下的技术方案:具体包括以下步骤:

S1:通过各环境下的各第一流式归并引擎获取处理数据的集合,利用第一匹配规则对处理数据进行规则匹配,如果所述处理数据命中第一匹配规则,将所述处理数据输出至第二匹配规则内;

S2:利用第二流式归并引擎获取命中第一匹配规则的处理数据,将所述处理数据通过第二匹配规则进行规则匹配;

S3:将命中第二匹配规则的处理数据存入内存,将未命中第一匹配规则和第二匹配规则的处理数据输出到外部存储系统;

S4:内存缓冲区进行数据处理,输出结果,最后释放内存以备循环使用。

可选的,所述处理数据包括分布式环境下的中的累积的大数据即所述处理数据包括各环境下累积的历史数据,都备份在分布式环境的文件系统上,在系统启动或者开始计算任务之前,需要通过第一流式归并引擎读取这部分数据并作预处理。

可选的,所述第一流式归并引擎和第二流式归并引擎均包括:

串行数据访问,组织成连续的数据流;

线性化执行,对数据输入流的操作采用有序串联;

局部邻近,当数据输入流中独立数据经过相应匹配规则后,不应该涉及到数据流中其他过渡偏远的数据;

顺序存储,流式调度的过程是顺序读取数据,内存缓冲区进行数据处理。

可选的,所述第一匹配规则包括第一过滤规则,基于所述第一过滤规则判断第一匹配规则匹配之前是否过滤掉所述处理数据,如果是则将所述数据输出到外部存储系统,否则执行对所述处理数据进行第二匹配规则匹配。

可选的,所述第二匹配规则包括第二过滤规则,基于所述第二过过滤规则判断第二匹配规则匹配之前是否过滤掉进行第二匹配规则匹配的处理数据,如果是则将所述处理数据输出到外部存储系统,否则执行对所述处理数据存入内存。

可选的,所述第一匹配规则包括字段信息,判断所述数据中的相应字段的字段信息与第一匹配规则中对应的字段信息是否一致;如果一致,则确定所述字段信息命中对应的第一匹配规则,将所述字段信息输出至第二匹配规则内。

可选的,所述第二匹配规则采用字段信息之间的一定时间内的近似性比较方法,将存在近似性的字段信息存入内存,否则输出到外部存储系统。

可选的,所述一定时间内的近似性比较方法为设定近似性比较字段信息的时间阈值,当超过该时间阈值则将命中第一匹配规则的处理数据存入内存,当在该时间阈值内存在近似性的字段信息存入内存,当在该时间阈值内不存在近似性的字段信息则输出到外部存储系统。

综上所述,本发明包括以下至少一种有益效果:

1、通过采用流式归并引擎从分布式环境中每一次从结果集中获取到的数据,都能够通过逐条获取的方式返回正确的单条数据,并不需要将所有的数据一次性加载至内存中,能够极大减少内存的消耗。

2、采用第一匹配规则和第二匹配规则,能够快速的将不需要将数据快速剔除,内存中只保留了关联度较大的处理数据信息,可以支撑更长的归并周期,进而更好地满足归并需求。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明方法流程示意图。

具体实施方式

以下结合附图1对本发明作进一步详细说明。

参照图1,本发明公开一种分布式环境下数据流式归并方法,具体包括以下步骤:

S1:通过各环境下的各第一流式归并引擎获取处理数据的集合,例如将淘宝和天猫各环境下或的处理数据,处理数据包括分布式环境下的中的累积的大数据即所述处理数据包括各环境下累积的历史数据,都备份在分布式环境的文件系统上,在系统启动或者开始计算任务之前,需要通过第一流式归并引擎读取这部分数据并作预处理。

利用第一匹配规则对处理数据进行规则匹配,如果所述处理数据命中第一匹配规则,将所述处理数据输出至第二匹配规则内;所述第一匹配规则包括字段信息,判断所述数据中的相应字段的字段信息与第一匹配规则中对应的字段信息是否一致;如果一致,则确定所述字段信息命中对应的第一匹配规则,将所述字段信息输出至第二匹配规则内。

通过第一匹配规则对通过逐条获取的方式返回正确的单条数据进行剔除,不但能够减少内存的消耗,还能够保留了具有关联度处理数据信息。

S2:利用第二流式归并引擎获取命中第一匹配规则的处理数据,将所述处理数据通过第二匹配规则进行规则匹配;所述第二匹配规则采用字段信息之间的一定时间内的近似性比较方法,将存在近似性的字段信息存入内存,否则输出到外部存储系统。

第二匹配规则采用的一定时间内的近似性比较方法为现有关键词近似度检索的技术,可以对各分布式环境下的字段信息进行近似性比较,然后再通过逐条获取的方式返回正确的单条数据进行剔除,不但能够大大减少内存的消耗,还能够保留了关联度较大的处理数据信息。

其中,所述第一流式归并引擎和第二流式归并引擎采用现有技术,流式归并是指每一次从结果集中获取到的数据,都能够通过逐条获取的方式返回正确的单条数据,它与数据库原生的返回结果集的方式最为契合。遍历、排序以及流式分组都属于流式归并的一种。内存归并则是需要将结果集的所有数据都遍历并存储在内存中,再通过统一的分组、排序以及聚合等计算之后,再将其封装成为逐条访问的数据结果集返回。还包括结合装饰者归并是对所有的结果集归并进行统一的功能增强,目前装饰者归并有分页归并和聚合归并这2种类型。

具体包括:

串行数据访问,组织成连续的数据流;

线性化执行,对数据输入流的操作采用有序串联;

局部邻近,当数据输入流中独立数据经过相应匹配规则后,不应该涉及到数据流中其他过渡偏远的数据;

顺序存储,流式调度的过程是顺序读取数据,内存缓冲区进行数据处理。

S3:将命中第二匹配规则的处理数据存入内存,将未命中第一匹配规则和第二匹配规则的处理数据输出到外部存储系统;

所述一定时间内的近似性比较方法为设定近似性比较字段信息的时间阈值,当超过该时间阈值则将命中第一匹配规则的处理数据存入内存,当在该时间阈值内存在近似性的字段信息存入内存,当在该时间阈值内不存在近似性的字段信息则输出到外部存储系统。

例如,在淘宝输入的字段信息为“生活用品”,在天猫输入的字段信息为“扫把”,经过第一匹配规则会将属于“生活用品”和“扫把”的信息进行剔除,然后通过第二匹配规则将具有近似度比较的“生活用品”和“扫把”归纳在内存,相反,在淘宝输入的字段信息为“扫把”,如果在天猫输入的字段信息为“汽车”,如果超过时间阈值,则通过第二匹配规则时会将字段信息删除,认定不是用户真正搜索的意图,当在时间阈值内,则将该组字段信息存在内存内。通过时间阈值为历史记录信息的时间进行比较,即即使满足字段信息存在近似性而不在时间阈值范围内也可存储到内存。

所述第一匹配规则包括第一过滤规则,基于所述第一过滤规则判断第一匹配规则匹配之前是否过滤掉所述处理数据,如果是则将所述数据输出到外部存储系统,否则执行对所述处理数据进行第二匹配规则匹配。所述第二匹配规则包括第二过滤规则,基于所述第二过过滤规则判断第二匹配规则匹配之前是否过滤掉进行第二匹配规则匹配的处理数据,如果是则将所述处理数据输出到外部存储系统,否则执行对所述处理数据存入内存。

过滤规则可以是一种设定的白名单规则,即:首先通过白名单规则对数据进行过滤,过滤掉不需要进行归并的数据。以白名单规则为例,对于符合白名单规则的数据进行过滤,该部分数据不参与后续的归并。例如:数据源包括数据源1至数据源3,而根据需要仅需要对数据源2和数据源3的数据进行归并,此时,可以按照元数据1的源ip地址设置白名单规则,以此来直接过滤掉来自数据源1的所有数据。由此,减少了数据处理的工作量,可以提升后续数据归并的效率。

S4:内存缓冲区进行数据处理,输出结果,最后释放内存以备循环使用。

以上均为本发明的较佳实施例,并非依此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。

技术分类

06120115637397