3 回答
TA贡献1812条经验 获得超5个赞
正如其他人所指出的那样,如果我们了解您要完成的任务的语义,将会有所帮助。我在这里猜测你的模式库中的模式都属于
单个资源(或)
一组资源
如果是这种情况,我建议您首先将该信息添加到您的模式库中以使其明确。例如,您的模式库看起来像:
1: A
1: AB
1: ABC
2: AD
2: C
2: D
如果你想涵盖一组资源的模式,它可能看起来像这个人为的例子:
3: X
4: Y
3,4: Z
现在,您可以从交错日志文件中分离出属于每个资源的日志记录(假设日志文件确实具有资源标识符)。然后,您可以应用模式匹配来发现最长的模式。
本质上,将您的关注点分开并为每个子问题应用解决方案。
TA贡献1816条经验 获得超4个赞
如果我们有日志文件和模式库,我们可以用堆栈解决问题。我们开始从日志文件中读取。如果带有堆栈的新日志在模式库中创建了一个现有模式,我们将其推入堆栈。除非,我们把它放在一个新的堆栈中。
TA贡献1813条经验 获得超2个赞
您的问题很容易描述,如果我们知道您的约束条件就好了。这需要运行多快?
在 Python 中,您将在资源上有一个迭代器,将每个资源推送到一个单独的生成器来进行模式匹配。也就是说,迭代器产生(resource 1, A)
并被推入资源 1 的生成器,以查看它是否与模式匹配。生成器偶尔会踢出匹配的模式。
实际上,您可能只需要一个 Splunk 插件或将所有内容都放入数据库中。这种类型的分析用于常见问题,例如“查找您在过去两周内有过 3 次会话但放弃了购物车且购物车中有一个常见商品超过总数 75% 的所有客户。向这个犹豫不决的客户发送一个5% 折扣,24 小时有效。”
添加回答
举报