如何检测交错日志文件中的序列

我想匹配给定模式库中的模式,返回检测到的最长模式。

但是,我在日志文件中只有多个并行任务的交错结果,例如来自处理器的多个内核。

这是数据挖掘中的已知应用程序吗?

我想到了一种与Regex subsequence matching相似的 regex 解决方案。然而,有一种距离度量允许一些模糊性会很好,例如,如果序列中的一个活动会丢失。


狐的传说
浏览 144回答 3
3回答

ABOUTYOU

正如其他人所指出的那样,如果我们了解您要完成的任务的语义,将会有所帮助。我在这里猜测你的模式库中的模式都属于单个资源(或)一组资源如果是这种情况,我建议您首先将该信息添加到您的模式库中以使其明确。例如,您的模式库看起来像:1: A1: AB1: ABC2: AD2: C2: D如果你想涵盖一组资源的模式,它可能看起来像这个人为的例子:3: X4: Y3,4: Z现在,您可以从交错日志文件中分离出属于每个资源的日志记录(假设日志文件确实具有资源标识符)。然后,您可以应用模式匹配来发现最长的模式。本质上,将您的关注点分开并为每个子问题应用解决方案。

繁华开满天机

如果我们有日志文件和模式库,我们可以用堆栈解决问题。我们开始从日志文件中读取。如果带有堆栈的新日志在模式库中创建了一个现有模式,我们将其推入堆栈。除非,我们把它放在一个新的堆栈中。

慕姐8265434

您的问题很容易描述,如果我们知道您的约束条件就好了。这需要运行多快?在 Python 中,您将在资源上有一个迭代器,将每个资源推送到一个单独的生成器来进行模式匹配。也就是说,迭代器产生(resource 1, A)并被推入资源 1 的生成器,以查看它是否与模式匹配。生成器偶尔会踢出匹配的模式。实际上,您可能只需要一个 Splunk 插件或将所有内容都放入数据库中。这种类型的分析用于常见问题,例如“查找您在过去两周内有过 3 次会话但放弃了购物车且购物车中有一个常见商品超过总数 75% 的所有客户。向这个犹豫不决的客户发送一个5% 折扣,24 小时有效。”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python