我有分隔的日誌文件,每隔5分鐘捕獲一些進程的快照。我想對它們進行一些統計分析,對數據的子集進行分組和繪製圖表等,其中一部分涉及計算過程開放的時間(即總分鐘數= x 5中出現的快照數量)。我可以使用Python,R或我選擇的任何語言。推薦快照數據的數據結構
所面臨的挑戰是,田沒有是唯一的(有一個一對多和多對多的一對多關係),所以唯一的比賽是在對整個線上的每要素是相同。
也許一個例子會有所幫助。比方說,第一個快照日誌看起來是這樣的:
R123,M,5,... <-- line A
R190,Z,4,...
R663,M,8,...
然後5分鐘後,下一個快照顯示了這個:
R123,M,5,... <-- line A
R123,P,3,... <-- line B
R955,Z,3,...
顯然的過程中A線已經出現了至少5分鐘現在。但即使B行具有相同的第一個字段,但其他字段不匹配,因此它不是相同的過程。
我只是想弄清楚一個很好的數據模型,使這個數據很容易處理。
一個選項可能是一個簡單的頻率計數:將每行整行讀入一個Python字典或Perl散列,並將該行作爲關鍵字,這樣當下一個快照中出現重複行時,它就會添加到計數中。例如在Perl中:$count{$_}++ foreach @lines;
但是,整行數據甚至可以作爲字典鍵有效嗎?那麼非連續的實例怎麼樣,比如如果A行出現3個快照,那麼另一天又會出現? - 這些實例應該是單獨的實例,以便基於時間的查詢仍然有效。
對我有何建議我可能會處理&存儲這些數據?
爲什麼不拔出重複的行?有一個具有數據幀方法的「重複」函數。 –
@DWin:因爲我需要量化他重複的行數,因爲關於這個過程持續了多長時間的關鍵數據只能通過查看從第一次出現到最後出現多少次或多長時間才能找到。 – ewall