2008年5月21日,Information Weekd一篇文章詳細講述了貌似Yahoo的web分析核心數據庫。爲什麼是貌似呢?最後再回答。主要的內容包括:
- Yahoo的web分析數據庫已超過1PB大小。宣稱在09年將會超過10倍。
- Yahoo的web分析數據庫是基於PostgreSQL之上的。哈哈!有太多MySQL的粉絲認爲Yahoo在web分析數據庫商都在用他們的鐘愛。我也不知道是不是事實,但是報道上面不是這麼講的。當然,Yahoo在一些苛刻和嚴格的應用上確實使用了MySQL。
- 但是,但是…,Yahoo的web分析數據庫沒有真正使用PostgreSQL的存儲引擎。Yahoo自己寫了一個列式存儲的方案。
- Yahoo每天處理240億個“事件”。報道中沒有說清楚到底這些請求是直接送至分析存儲的,還是有一箇中間的存儲引擎。比較有可能的是,系統在RAM中把塊寫滿,隨即添加到唯一的持久化存儲中。如果在生產過程中偶爾宕掉了然後損失了一些數據,比如說幾兆,其實也無所謂,因爲這個應用太大了。
- Yahoo認爲商用的列式存儲數據庫還不足以應付100T以上的數據。
- Yahoo說根據他們自己的應用優化後的自定義系統性能相當棒!不太清楚具體是什麼。
- Yahoo,100TB(其中原始數據量僅爲18TB!!! 數據行:3850億條,有點意思。),使用Oracle數據庫,運行在Fujitusu Siemens的UNIX平臺上,使用EMC提供的存儲介質,採用集中式SMP的架構。所以3年的時間,不太可能做好那麼大的動作,換成列式存儲,移植到PostgreSQL。
而跟Yahoo數據量比較接近的是尼爾森媒體研究中心,原始數據量爲18TB,數據行:5000億行,使用Sun的Solaris平臺,同樣使用EMC的存儲,用Sybase IQ(注意,這是一個列式數據庫!!!)作數據倉庫引擎,最後的數據倉庫的存儲量是17TB。