引子 半夜三點(diǎn),睡夢(mèng)中被一陣沒人接聽誓不罷休的電話鈴吵醒。睡眼惺忪的接聽了電話,電話那頭傳來(lái)了不用聽清任何人類語(yǔ)言就能感受的焦急。讓我趕快打開電腦,說(shuō)服務(wù)整個(gè)不工作了! 打開監(jiān)控看到線程池被打滿。本著“先恢復(fù)現(xiàn)場(chǎng)再排查原因”的基本原則,重啟并擴(kuò)容了一倍的服務(wù)器。服務(wù)又正常了。完美的做到了“三分鐘定位,十分鐘解決”。但是現(xiàn)場(chǎng)不在了,怎么排查根因呢?答案是:歷史記錄。 為什么要做歷史記錄 歷史記錄是大數(shù)據(jù)的最重要數(shù)據(jù)源。通過歷史記錄可以進(jìn)行事件追溯、未來(lái)預(yù)判和推薦。舉個(gè)例子: 靜兒在網(wǎng)上搜索了“穩(wěn)定性三十六計(jì)”這個(gè)詞,找到自己想要的內(nèi)容了。然后去做別的事情,再打開瀏覽器的時(shí)候,發(fā)現(xiàn)旁邊的小彈出框里推薦我《穩(wěn)定性寶典》這本書。 這個(gè)推薦效果很多種算法都能實(shí)現(xiàn),比如最近比較火的“協(xié)同過濾推薦算法(Collaborative Filtering Recommendation)”。啥是協(xié)同過濾推薦算法呢?協(xié)同過濾推薦算法簡(jiǎn)而言之,就是找到相同興趣的群體,將這個(gè)群體中感興趣的其他信息推薦給用戶。 實(shí)施的時(shí)候可以先建立一個(gè)大表,X軸是所有的推薦內(nèi)容,Y軸是所有的用戶。 然后我們將每個(gè)用戶感興趣的XY交叉點(diǎn)都標(biāo)出來(lái)。如圖可以看到對(duì)“穩(wěn)定性三十六計(jì)”感興趣的對(duì)“穩(wěn)定性寶典”感興趣的概率也很高。 歷史記錄對(duì)于穩(wěn)定性,也可以將其他同類系統(tǒng)作為用戶,將他們的問題作為推薦項(xiàng)進(jìn)行協(xié)同過濾分析,找到自身的可優(yōu)化點(diǎn)。系統(tǒng)出了問題需要分析原因時(shí),事件追溯更是必不可少。 怎么做歷史記錄 日志 最常用的事件維度記錄是日志。有存于本地磁盤和集中式日志兩種。 本地磁盤日志就是將日志在程序中控制直接寫入本地磁盤。 集中式日志的架構(gòu)大同小異,基本結(jié)構(gòu)如下:
以下是常用的數(shù)據(jù)收集系統(tǒng)的比較
ELK不是一款軟件,而是Elasticsearch、Logstash和Kibana首字母的縮寫。這三者是開源軟件,通常配合一起使用。而且先后歸于Elasic.co公司的名下,所以簡(jiǎn)稱ELK Stack。根據(jù)Google Trend的信息顯示,ELK已經(jīng)成為目前最流行的集中式日志解決方案。 Nosql 除了日志,任何有價(jià)值的歷史信息都是應(yīng)該存儲(chǔ)起來(lái)做分析的。這時(shí)候存儲(chǔ)就是關(guān)鍵。因?yàn)閿?shù)據(jù)量大,對(duì)強(qiáng)一致性沒有苛刻的要求。所以從成本上傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)不是首選。一般選擇Nosql數(shù)據(jù)庫(kù)。Nosql數(shù)據(jù)庫(kù)主要有四類: 1.key-value數(shù)據(jù)庫(kù)
2.列式數(shù)據(jù)庫(kù)
3.文檔型數(shù)據(jù)庫(kù)
4.圖結(jié)構(gòu)數(shù)據(jù)庫(kù)
時(shí)序數(shù)據(jù)庫(kù) 時(shí)序數(shù)據(jù)庫(kù)全稱為時(shí)間序列數(shù)據(jù)庫(kù)。時(shí)間序列數(shù)據(jù)庫(kù)主要用于指處理帶時(shí)間標(biāo)簽的數(shù)據(jù)。帶時(shí)間標(biāo)簽的數(shù)據(jù)也稱為時(shí)間序列數(shù)據(jù)。 基于時(shí)間序列數(shù)據(jù)的特點(diǎn),關(guān)系型數(shù)據(jù)庫(kù)無(wú)法滿足對(duì)時(shí)間序列數(shù)據(jù)的有效存儲(chǔ)與處理,因此迫切需要一種專門針對(duì)時(shí)間序列數(shù)據(jù)來(lái)做優(yōu)化的數(shù)據(jù)庫(kù)系統(tǒng),即時(shí)間序列數(shù)據(jù)庫(kù)。 目前行業(yè)內(nèi)比較流行的開源時(shí)序數(shù)據(jù)庫(kù)產(chǎn)品對(duì)比如下:
總結(jié) Talk is cheap, show me the data! |
|