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 小時有效?!?/p>
添加回答
舉報