日志数据处理方法、装置、存储介质与电子设备

文档序号:1952576 发布日期:2021-12-10 浏览:8次 >En<

阅读说明:本技术 日志数据处理方法、装置、存储介质与电子设备 (Log data processing method and device, storage medium and electronic equipment ) 是由 罗勇 于 2021-03-25 设计创作,主要内容包括:本公开提供一种日志数据处理方法、装置、存储介质与电子设备,涉及数据处理技术领域。其中,所述日志数据处理方法包括:根据待处理的日志数据中的事件标识,将所述日志数据划分成一个或多个一级数据片段;将所述一级数据片段划分成一个或多个二级数据片段;根据所述二级数据片段中所述事件标识所属的区间,确定所述二级数据片段的位图,以得到所述二级数据片段的索引信息;所述位图中的每一位对应一个区间。本公开在一定程度上降低了日志数据的存储成本。(The disclosure provides a log data processing method and device, a storage medium and electronic equipment, and relates to the technical field of data processing. The log data processing method comprises the following steps: dividing the log data into one or more primary data segments according to event identifications in the log data to be processed; dividing the primary data segment into one or more secondary data segments; determining a bitmap of the secondary data segment according to the interval to which the event identifier belongs in the secondary data segment to obtain index information of the secondary data segment; each bit in the bitmap corresponds to an interval. The storage cost of the log data is reduced to a certain extent.)

日志数据处理方法、装置、存储介质与电子设备

技术领域

本公开涉及数据处理技术领域,尤其涉及一种日志数据处理方法、日志数据处理装置、计算机可读存储介质与电子设备。

背景技术

通过对点击日志数据、浏览日志数据等用户行为类型的日志数据的分析,可以了解到用户的偏好,进而为用户提供个性化的服务。为了便于分析利用这些日志数据,对这些日志数据进行存储是不可避免的。

相关技术中,在对用户行为类型的日志数据进行存储时,通常将日志数据缓存在Redis内存而非磁盘中,由于内存自身存储容量小且成本大,会导致日志数据的存储成本较高。

需要说明的是,在上述

背景技术

部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本公开提供了一种日志数据处理方法、日志数据处理装置、计算机可读存储介质与电子设备,进而至少在一定程度上解决相关技术中日志数据的存储成本较高的问题。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的第一方面,提供一种日志数据处理方法,包括:根据待处理的日志数据中的事件标识,将所述日志数据划分成一个或多个一级数据片段;将所述一级数据片段划分成一个或多个二级数据片段;根据所述二级数据片段中所述事件标识所属的区间,确定所述二级数据片段的位图,以得到所述二级数据片段的索引信息;所述位图中的每一位对应一个区间。

在本公开的一种示例性实施例中,所述方法还包括:根据所述事件标识的最大值和最小值确定多个所述区间。

在本公开的一种示例性实施例中,所述根据所述事件标识的最大值和最小值确定多个所述区间,包括:根据所述一级数据片段中所述事件标识的最大值和最小值确定多个所述区间。

在本公开的一种示例性实施例中,当所述事件标识的数据类型为字符串类型时,所述方法还包括:对所述事件标识进行高位优先排序,根据排序结果确定所述事件标识的最大值和最小值。

在本公开的一种示例性实施例中,所述方法还包括:将所述事件标识的最大值和最小值添加至所述二级数据片段的索引信息中。

在本公开的一种示例性实施例中,所述根据所述二级数据片段中所述事件标识所属的区间,确定所述二级数据片段的位图,包括:确定所述二级数据片段中所述事件标识落入各个区间内的数量是否为0;当所述事件标识落入所述区间内的数量为0时,将所述区间在所述位图中对应的位值设为0;当所述事件标识落入所述区间内的数量不为0时,将所述区间在所述位图中对应的位值设为1。

在本公开的一种示例性实施例中,所述根据所述二级数据片段中所述事件标识所属的区间,确定所述二级数据片段的位图,包括:将所述二级数据片段中的所述事件标识替换为映射标识;根据所述映射标识所属的区间,确定所述二级数据片段的位图。

在本公开的一种示例性实施例中,所述将所述二级数据片段中的所述事件标识替换为映射标识,包括:当所述二级数据片段中的所述事件标识满足预设分布条件时,在所述事件标识中确定离散事件标识;将所述离散事件标识替换为映射标识。

在本公开的一种示例性实施例中,所述方法还包括:存储所述事件标识与所述映射标识的对应关系。

在本公开的一种示例性实施例中,所述方法还包括:当任一二级数据片段中日志数据的数量大于第一预设阈值时,将所述任一二级数据片段分割成至少两个新的二级数据片段;确定所述新的二级数据片段的位图,以得到所述新的二级数据片段的索引信息。

在本公开的一种示例性实施例中,所述方法还包括:当对所述任一二级数据片段进行分割后,在所述任一二级数据片段所属的一级数据片段中更新版本信息,以将所述版本信息关联至分割后得到的所述新的二级数据片段。

在本公开的一种示例性实施例中,所述方法还包括:获取待查询事件标识;根据所述待查询事件标识与各个二级数据片段的索引信息,在所述各个二级数据片段中确定候选二级数据片段;在所述候选二级数据片段中查找所述待查询事件标识对应的日志数据。

在本公开的一种示例性实施例中,所述根据所述待查询事件标识与各个二级数据片段的索引信息,在所述各个二级数据片段中确定候选二级数据片段,包括:分别判断每个二级数据片段的索引信息中目标区间对应的位值是否为1,所述目标区间为所述待查询事件标识所属的区间;当所述索引信息中目标区间对应的位值为1时,确定所述索引信息对应的所述二级数据片段为候选二级数据片段。

根据本公开的第二方面,提供一种日志数据处理装置,包括:第一划分模块,用于根据待处理的日志数据中的事件标识,将所述日志数据划分成一个或多个一级数据片段;第二划分模块,用于将所述一级数据片段划分成一个或多个二级数据片段;位图确定模块,用于根据所述二级数据片段中所述事件标识所属的区间,确定所述二级数据片段的位图,以得到所述二级数据片段的索引信息;所述位图中的每一位对应一个区间。

根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述日志数据处理方法。

根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述日志数据处理方法。

本公开的技术方案具有以下有益效果:

上述日志数据处理过程中,根据待处理的日志数据中的事件标识,将日志数据划分成一个或多个一级数据片段;将一级数据片段划分成一个或多个二级数据片段;根据二级数据片段中事件标识所属的区间,确定二级数据片段的位图,以得到二级数据片段的索引信息;位图中的每一位对应一个区间。一方面,通过将待处理的日志数据进行划分,可以实现对日志数据的分布式存储,以便利用多台存储服务器分担存储负荷。另一方面,利用数据片段中事件标识所属的区间构建索引,即使将日志数据存储至低成本的磁盘中,也能确保日志数据的查找效率,可以在确保查找效率的同时降低存储成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本示例性实施方式中一种日志数据处理方法的流程图;

图2示出本示例性实施方式中一种一级数据片段数据结构的实例图;

图3示出本示例性实施方式中一种确定二级数据片段的位图的流程图;

图4示出本示例性实施方式中一种事件标识替换为映射标识的流程图;

图5示出本示例性实施方式中一种二级数据片段分割的流程图;

图6示出本示例性实施方式中一种查找日志数据的流程图;

图7示出本示例性实施方式中一种确定候选二级数据片段的流程图;

图8示出本示例性实施方式中一种查询点击日志数据的流程图;

图9示出本示例性实施方式中一种点击日志数据处理的流程图;

图10示出本示例性实施方式中一种日志数据处理装置的结构框图;

图11示出本示例性实施方式中一种用于实现上述方法的电子设备。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本文中,“第一”、“第二”等是对特定对象的标记,而并非限定对象的数量或次序。

相关技术中,在对用户行为类型的日志数据进行存储时,通常将日志数据缓存在一个Redis内存中。Redis是一种内存数据库,将数据保存在内存中,而非磁盘上。随着日志数据量的不断增加,占用的Redis内存也越来越大,由于内存自身存储容量小且成本大,会导致日志数据的存储成本较高。

鉴于上述一个或多个问题,本公开的示例性实施方式提供一种日志数据处理方法。

图1示出了本示例性实施方式中日志数据处理方法的示意性流程,包括以下步骤S110至S130:

步骤S110,根据待处理的日志数据中的事件标识,将日志数据划分成一个或多个一级数据片段;

步骤S120,将一级数据片段划分成一个或多个二级数据片段;

步骤S130,根据二级数据片段中事件标识所属的区间,确定二级数据片段的位图,以得到二级数据片段的索引信息;位图中的每一位对应一个区间。

上述日志数据处理过程中,根据待处理的日志数据中的事件标识,将日志数据划分成一个或多个一级数据片段;将一级数据片段划分成一个或多个二级数据片段;根据二级数据片段中事件标识所属的区间,确定二级数据片段的位图,以得到二级数据片段的索引信息;位图中的每一位对应一个区间。一方面,通过将待处理的日志数据进行划分,可以实现对日志数据的分布式存储,以便利用多台存储服务器分担存储负荷。另一方面,利用数据片段中事件标识所属的区间构建索引,即使将日志数据存储至低成本的磁盘中,也能确保日志数据的查找效率,可以在确保查找效率的同时降低存储成本。

下面分别对图1中的每个步骤进行具体说明。

步骤S110,根据待处理的日志数据中的事件标识,将日志数据划分成一个或多个一级数据片段。

待处理的日志数据可以是点击日志数据、浏览日志数据等用户行为类型的日志数据,日志数据可以包括事件标识、URL、IP等维度的数据字段。事件标识指的是日志数据中用于区分各个事件的标识,可以是数字类型,也可以是字符串类型,具有唯一性,例如事件ID。一级数据片段是由日志数据组成的数据片段,由待处理的日志数据划分得到。

在一种可选的实施方式中,将日志数据划分成一个或多个一级数据片段,可以通过以下方式来实现:获取待处理的日志数据中的事件标识的哈希值;根据事件标识的哈希值,将日志数据划分成一个或多个以及数据片段。

例如,可以通过预先设置多个哈希值范围区间,将事件标识的哈希值落在同一个哈希值范围区间的日志数据划分成一个一级数据片段。

将日志数据划分成多个一级数据片段,便于将日志数据进行分布式存储,可以将各一级数据片段存储在不同的存储服务器上,由多台存储服务器分担存储负荷。

在一种可选的实施方式中,还可以根据一级数据片段中事件标识的特征,确定所述一级数据片段的索引信息。

一级数据片段中事件标识的特征可以是事件标识的哈希值所属的哈希值范围区间,通过记录各个一级数据片段与哈希值范围区间的对应关系,将该对应关系作为一级数据片段的索引信息,以便能够通过日志数据的事件标识的哈希值确定日志数据所属的一级数据片段。

步骤S120,将一级数据片段划分成一个或多个二级数据片段。

二级数据片段是由日志数据组成的数据片段,由一级数据片段划分得到。如图2所示的一级数据片段数据结构的实例图,一级数据片段被划分成n个二级数据片段。

需要说明的是,在实际实施过程中,还可以将数据片段进行更精细的划分,例如将二级数据片段再进一步进行划分成更小的数据片段进行存储。

在一种可选的实施方式中,可以根据事件标识的最大值和最小值确定多个区间。

上述事件标识的最大值和最小值可以是待处理的日志数据的事件标识的最大值和最小值,也可以是一级数据片段中事件标识的最大值和最小值。通过最大值和最小值确定区间的时候,可以将最大值和最小值构成的区间进行均等划分,也可以根据事件标识的分布情况将最大值和最小值构成的区间进行不均等划分,将事件标识分布较为稀疏的范围划分更大的区间,例如,5条日志数据的事件标识分别为1、2、9、10、100,事件标识最大值和最小值构成的范围区间为[1,100],可以将该区间划分为[1,5]、[6,10]、[11,100]。

通过划分的区间可以将数据片段进行分割,可以将事件标识落在同一个区间的日志数据划分为一个数据片段。

在一种可选的实施方式中,当事件标识的最大值和最小值为一级数据片段中事件标识的最大值和最小值时,根据事件标识的最大值和最小值确定多个区间,可以通过以下方式来实现:根据一级数据片段中事件标识的最大值和最小值确定多个区间。

根据一级数据片段中事件标识的最大值和最小值确定多个区间,可以将一级数据片段中事件标识落在内同一个区间内的日志数据划分成一个二级数据片段。上述过程中,将一级数据片段中事件标识的最大值和最小值构成的范围区间划分为多个区间,以便根据所划分的区间将一级数据片段划分成一个或多个二级数据片段。

在一种可选的实施方式中,当事件标识的数据类型为字符串类型时,方法还包括:对事件标识进行高位优先排序,根据排序结果确定事件标识的最大值和最小值。

高位优先排序是一种字符串排序方法,可将排序后的第一个事件标识和最后一个事件标识分别作为最小值和最大值。例如,5条日志数据的事件标识分别为c、a、b、abc、ab,通过高位优先排序后得到a、abc、ab、b、c,可以将a作为事件标识的最小值,将c作为事件标识的最大值。当事件标识为字符串类型时,通过确定事件标识最小值和最大值,使得事件标识的数据类型不局限于数字类型,可应用范围更广。

步骤S130,根据二级数据片段中事件标识所属的区间,确定二级数据片段的位图,以得到二级数据片段的索引信息;位图中的每一位对应一个区间。

上述位图(bitmap)是用二进制数组实现的,数组的每一位用来存放一种状态,适用于大规模数据,但数据状态又不是很多的情况,可以用来判断某个数据是否存在。位图中的每一位对应一个区间,位图中的每一位的位值表示该区间中是否存在数据。位图的长度为5bit时,可以表示2的5次方种事件标识的分布状态。二级片段的索引信息由该二级数据片段中事件标识所属的区间以及位图所构成。

在一种可选的实施方式中,可以将事件标识的最大值和最小值添加至二级数据片段的索引信息中。

将二级数据片段中事件标识的最大值和最小值添加至二级数据片段的索引信息中,无需存储二级数据片段中每条日志数据的索引,将事件标识的最大值和最小值添加至二级数据片段的索引信息中,能够减少索引文件的大小,便于加载。

在一种可选的实施方式中,可以根据二级片段中事件标识的最大值和最小值进一步确定多个区间,或根据二级片段所对应的一级片段中事件标识的最大值和最小值进一步确定多个区间,以从所划分的区间中确定二级数据片段中事件标识所属的区间。该区间可以将二级片段中事件标识的最大值和最小值所构成的范围区间进行均等划分后形成;也可以根据事件标识的分布情况,将二级片段中事件标识的最大值和最小值构成的区间进行不均等划分后形成,例如,二级数据片段中存在5条日志数据,对应的事件标识分别为1、2、9、10、100,事件标识最大值和最小值构成的范围区间为[1,100],可以将该区间划分为[1,5]、[6,10]、[11,100]。通过划分区间,可以为确定二级数据片段中事件标识所属的区间提供了参照区间。

在一种可选的实施方式中,根据二级数据片段中事件标识所属的区间,确定二级数据片段的位图,可以通过以下方式来实现:确定二级数据片段中事件标识落入各个区间内的数量是否为0;当事件标识落入区间内的数量为0时,将区间在位图中对应的位值设为0;当事件标识落入区间内的数量不为0时,将区间在位图中对应的位值设为1。

区间在位图中对应的位值表示二级数据片段中事件标识是否落入该区间,位值为0表示二级数据片段中没有事件标识落入该区间,位值为1表示二级数据片段中存在事件标识落入该区间。通过设置位值能够实现对事件标识的索引,可以有效过滤无关的二级数据片段,提高查找效率。

如图2所示,每个二级数据片段都包含相应的位图和索引(index)所构成的索引信息,二级数据片段的索引信息被存储二级数据片段中。二级数据片段的索引信息结构,可如表1所示,其中位图的位置标识表示位图中每个bit位的标识,数值范围表示所划分的区间,一个数值范围表示一个区间,位值表示位图中的每一位所对应的位值,位值为0表示该二级数据片段中没有事件标识落入所对应的数据值范围,位值为1表示该二级数据片段中存在事件标识落入所对应的数据值范围。

表1

位图的位置标识 数据值范围 位值
0 1-40 0
1 41-80 0
2 81-200 1
3 201-400 1
4 401-8000 0

在一种可选的实施方式中,根据二级数据片段中事件标识所属的区间,确定二级数据片段的位图,可以通过如图3所示的步骤S310至步骤S320来实现,具体包括以下步骤:

步骤S310,将二级数据片段中的事件标识替换为映射标识。

映射标识为与某个事件标识相对应的标识,可用于替换所对应的事件标识,与事件标识数据类型相同。

步骤S320,根据映射标识所属的区间,确定二级数据片段的位图。

可以根据二级数据片段中被替换后的映射标识所属的区间,确定二级数据片段的位图。

图3所示的过程中,可以根据事件标识分布情况,确定需要被替换的事件标识。通过替换事件标识可以优化标识分布情况,进而提高日志数据的查找效率。

在一种可选的实施方式中将二级数据片段中的事件标识替换为映射标识,可以通过如图4所示的步骤S410至步骤S420来实现,具体包括以下步骤:

步骤S410,当二级数据片段中的事件标识满足预设分布条件时,在事件标识中确定离散事件标识。

预设分布条件可以是由开发人员根据经验预先设置的事件标识离散分布条件,当某个事件标识的分布情况满足该预设分布条件时,将该事件标识确定离散事件标识。

步骤S420,将离散事件标识替换为映射标识。

例如,当二级数据片段中事件标识的分布不均时,例如大部分事件标识分布在1-1000,存在一个事件标识为9999,可以将9999替换成靠近1-1000范围的标识。

图4所示的步骤中,通过设置预设分布条件,能够确定二级数据片段中分布离散的事件标识,通过替换分布离散的事件标识,能够减少事件标识范围的跨度,进一步以提高日志数据的查找效率。

在一种可选的实施方式中,存储事件标识与映射标识的对应关系。

可以将事件标识与映射标识的对应关系存储至所对应的一级数据片段中,例如将事件标识与映射标识的对应关系存储至如图2所示的一级数据片段的元数据列表中,确保单个一级数据片段的自描述性,以便于查找。此外,也可以将事件标识的映射标识的对应关系存储至所对应的二级数据片段中,确保单个二级数据片段的自描述性,以便于查找。

在一种可选的实施方式中,还可以对日志数据中的数据字段进行替换,具体包括以下步骤:当日志数据中的数据字段出现频率大于第二预设阈值时,将该数据字段替换为映射字段,存储数据字段与映射字段的对应关系。

可以将存储数据字段与映射字段的对应关系存储在如图2所示的一级数据片段的元数据中,一个一级数据片段采用一套替换关系;也可以将存储数据字段与映射字段的对应关系存储在二级数据片段的元数据中,一个二级数据片段采用一套替换关系。

需要说明的是,映射字段的数据量小于数据字段的数据量。通过替换数据量较大且出现频率较高的数据字段,可有效减少日志数据的存储量。

在一种可选的实施方式中,可以通过如图5所示的步骤S510至步骤S520实现二级数据片段进行分割,以避免二级数据片段数据量过大,具体包括以下步骤:

步骤S510,当任一二级数据片段中日志数据的数量大于第一预设阈值时,将任一二级数据片段分割成至少两个新的二级数据片段。

将二级数据片段进行分割时,可以将该二级片段中事件标识所对应的最大值和最小值所构成的区间,拆分成两个区间,根据原二级数据片段中各个事件标识所属的区间将原二级数据片段拆分成两个新的二级数据片段,并删除原二级数据片段;也可以根据二级数据片段中日志数据的数量进行分割,确保每个新的二级数据片段所中日志数据的数据量相同或相差为1,例如某个二级数据片段包含有21条日志数据,该二级数据片段中的日志数据根据所对应的事件标识进行排序,可以从排序为第11的日志数据所在位置进行前后分割。

步骤S520,确定新的二级数据片段的位图,以得到新的二级数据片段的索引信息。

图5所示的步骤中,通过将二级数据片段进行分裂,避免单个二级数据片段内容过大从而影响查找效率,以确保在二级数据片中查找日志数据的效率。

在一种可选的实施方式中,当对任一二级数据片段进行分割后,在任一二级数据片段所属的一级数据片段中更新版本信息,以将版本信息关联至分割后得到的新的二级数据片段。

如图2所示,在一级数据片段中还存储了版本信息。通过更新版本信息,有助于了解二级数据片段的分割情况,能够实现将分割后得到的新的二级数据片段关联至相应的一级数据片段中,以明确二级数据片段的所属关系。

在一种可选的实施方式中,如图6所示,可以通过以下步骤S610至步骤S630查找日志数据。

步骤S610,获取待查询事件标识。

可以从媒体平台(如广告平台),通过消息队列获取到订单或流量等待查询的消息,再从待查询的消息中提取出待查询的事件标识。

步骤S620,根据待查询事件标识与各个二级数据片段的索引信息,在各个二级数据片段中确定候选二级数据片段。

在确定候选二级数据片段时,首先根据待查询事件标识和一级数据片段的索引信息,从待处理的日志数据中确定待查询事件标识所对应的候选一级数据片段,再根据待查询事件标识与各个二级数据片段的索引信息,从该候选一级数据片段所包含的各个二级数据片段中确定候选二级数据片段。

在一种可选的实施方式中,步骤S620可以通过如图7所示的步骤确定候选二级数据片段,具体包括步骤S710和步骤S720:

步骤S710,分别判断每个二级数据片段的索引信息中目标区间对应的位值是否为1,目标区间为待查询事件标识所属的区间。

步骤S720,当索引信息中目标区间对应的位值为1时,确定索引信息对应的二级数据片段为候选二级数据片段。

图7所示的步骤中,首先定位待查询事件标识所属的区间,无需遍历所有日志数据,可以快速过滤掉与待查询事件标识无关的二级数据片段。当索引信息中目标区间对应的位值为0时,说明该候选区间中不存在与待处理事件标识相对应的日志数据,无需再向下查找,避免了不必要的查询操作。当索引信息中目标区间对应的位值为1时,说明该候选区间中存在与待处理事件标识相对应的日志数据,再进一步向下查找。

步骤S630,在候选二级数据片段中查找待查询事件标识对应的日志数据。

确定了候选二级数据片段后,需要对该候选二级数据片段进行精确查找,以查询到与待查询事件标识对应的日志数据。

在一种可选的实施方式中,可以为二级数据片段创建倒排序索引,以通过该倒排序索引的索引信息从候选的二级数据中精确查找待查询事件标识对应的日志数据,进而确保查询的准确性。

当日志数据为点击日志数据时,图8提供了一种查询点击日志数据的实施方式,具体包括以下步骤:

步骤S801,开始;

步骤S802,对消息队列中的订单和流量信息进行点击ID提取,获取到其值,这里将所提取的点击ID作为待查询事件标识;

步骤S803,在block中对点击ID的位图索引位进行范围值匹配,这里的block作为二级数据片段,将各block的位图作为索引信息进行匹配,以确定点击ID所属的目标block文件,即候选二级数据片段;

步骤S804,查找到与点击ID值相匹配的block,得到目标block文件,该过程将步骤S803经过匹配后所查找到的目标block文件作为候选二级数据片段;

步骤S805,对目标block文件,进行倒排序索引匹配查询,获取到相应的日志数据,该过程从目标block文件中采用倒排序索引精确查找与点击ID相对应的日志信息;

步骤S806,结束。

当日志数据为点击日志数据时,图9示出一种点击日志数据处理的实施方式,应用于OCPX(Optimized Cost Per X,优化X出价)推广出价场景中,其中,“X”即泛指传统的按不同方式进行结算的模式,包括两个处理阶段:接入阶段和输出阶段。

接入阶段中具体包括以下步骤:

步骤S901,回传用户点击日志,这里将用户点击日志作为待处理的日志数据,由广告媒体将用户点击日志回传给广告主日志核心处理逻辑;

步骤S902,点击数据结构构建层,接收到由广告媒体回传的用户点击日志后,广告主日志核心处理逻辑点击数据结构构建层,将用户点击日志形成具有特定结构的日志数据,例如n个一级数据片段,m个二级数据片段;

步骤S903,日志分布式存储,将步骤S902形成的具有特定结构的日志数据进行分布式存储,可以将n个一级数据片段存储至不同的存储服务器,将m个二级数据片段存储至某存储服务器磁盘的不同区块;

接入阶段执行完成后,进入输出阶段,输出阶段具体包括以下步骤:

步骤S904,获取流量、订单等实时消息;

步骤S905,在流处理层Flink/Storm,对实时消息进行流处理查询,该过程是从上述步骤S903中所存储的日志数据中查询与实时消息相匹配的日志数据,其中Flink和Storm是两种开源的流处理框架,通过分布式流数据流引擎,进行大数据流的处理。

步骤S906,Sink输出层输出,Sink作为流处理层的输出端,Sink输出层将Flink/Storm处理的数据进行输出,可以将输出写到文件、套接字(sockets)、外部系统等位置,并由广告主日志核心处理逻辑将Sink输出层输出再回传给广告媒体;

步骤S907,OCPX转化,OCPX是一种以转化成本为优化目的,根据单个流量的点击率和转化率进行智能动态出价的调整的工具,该过程由广告媒体根据Sink输出层的输出进行OCPX转化,实现动态出价。

图9所示的步骤,基于OCPX的推广出价模式,对分布式存储的海量点击日志数据进行实时查询,实现海量点击日志数据的实时快速命中,并根据命中的点击日志数据的点击率和转化率,实现实时动态出价,能够确保OCPX命中转化的时效性和高效性。

本公开的示例性实施方式还提供一种日志数据处理装置。如图10所示,该日志数据处理装置1000包括:

第一划分模块1010,用于根据待处理的日志数据中的事件标识,将日志数据划分成一个或多个一级数据片段;

第二划分模块1020,用于将一级数据片段划分成一个或多个二级数据片段;

位图确定模块1030,用于根据二级数据片段中事件标识所属的区间,确定二级数据片段的位图,以得到二级数据片段的索引信息;位图中的每一位对应一个区间。

在一种可选的实施方式中,日志数据处理装置1000还包括:区间确定模块,用于根据事件标识的最大值和最小值确定多个区间。

在一种可选的实施方式中,区间确定模块,被配置为:根据一级数据片段中事件标识的最大值和最小值确定多个区间。

在一种可选的实施方式中,当事件标识的数据类型为字符串类型时,区间确定模块,还被配置为:对事件标识进行高位优先排序,根据排序结果确定事件标识的最大值和最小值。

在一种可选的实施方式中,日志数据处理装置1000还包括:添加模块,用于将事件标识的最大值和最小值添加至二级数据片段的索引信息中。

在一种可选的实施方式中,位图确定模块1030,被配置为:确定二级数据片段中事件标识落入各个区间内的数量是否为0;当事件标识落入区间内的数量为0时,将区间在位图中对应的位值设为0;当事件标识落入区间内的数量不为0时,将区间在位图中对应的位值设为1。

在一种可选的实施方式中,位图确定模块1030,还包括:替换模块,用于将二级数据片段中的事件标识替换为映射标识;位图确定模块,用于根据映射标识所属的区间,确定二级数据片段的位图。

在一种可选的实施方式中,替换模块,还被配置为:当二级数据片段中的事件标识满足预设分布条件时,在事件标识中确定离散事件标识;将离散事件标识替换为映射标识。

在一种可选的实施方式中,日志数据处理装置1000,还包括:存储模块,用于存储事件标识与映射标识的对应关系。

在一种可选的实施方式中,日志数据处理装置1000,还包括:数据片段分割模块,用于当任一二级数据片段中日志数据的数量大于第一预设阈值时,将任一二级数据片段分割成至少两个新的二级数据片段;位图确定子模块,用于确定新的二级数据片段的位图,以得到新的二级数据片段的索引信息。

在一种可选的实施方式中,日志数据处理装置1000,还包括:版本更新模块,用于当对任一二级数据片段进行分割后,在任一二级数据片段所属的一级数据片段中更新版本信息,以将版本信息关联至分割后得到的新的二级数据片段。

在一种可选的实施方式中,日志数据处理装置1000,还包括:标识获取模块,用于获取待查询事件标识;候选片段确定模块,用于根据待查询事件标识与各个二级数据片段的索引信息,在各个二级数据片段中确定候选二级数据片段;查找模块,用于在候选二级数据片段中查找待查询事件标识对应的日志数据。

在一种可选的实施方式中,候选片段确定模块,还被配置为:分别判断每个二级数据片段的索引信息中目标区间对应的位值是否为1,目标区间为待查询事件标识所属的区间;当索引信息中目标区间对应的位值为1时,确定索引信息对应的二级数据片段为候选二级数据片段。

上述日志数据处理装置1000中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。

本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述日志数据处理方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。该程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

本公开的示例性实施方式还提供了一种能够实现上述日志数据处理方法的电子设备。下面参照图11来描述根据本公开的这种示例性实施方式的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。

如图11所示,电子设备1100可以以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:至少一个处理单元1110、至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130和显示单元1140。

存储单元1120存储有程序代码,程序代码可以被处理单元1110执行,使得处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元1110可以执行图1、图3至图9中任意一个或多个方法步骤。

存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储单元(ROM)1123。

存储单元1120还可以包括具有一组(至少一个)程序模块1125的程序/实用工具1124,这样的程序模块1125包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备1100也可以与一个或多个外部设备1200(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。

此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于分布式数据库的数据处理方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!