Pinot是一個適用于Web的實時數據分析系統,由LinkedIn設計開發,現在已經成為LinkedIn的分布式實時數據分析基礎設施,支撐著LinkedIn內外30多個分析產品。LinkedIn的各種數據跟蹤功能都是在Pinot的基礎上實現的,如最近哪些用戶查看了特定用戶的資料,哪些用戶在關注某個公司等。
據GigaOM報道,在LinkedIn還是一家初創企業的時候,其工程團隊分成了若干不同的組,每個組使用的數據存儲系統差別很大,如將Oracle的關系型數據庫用于查詢,而將Voldemort用于鍵值存儲。但隨著LinkedIn的日益發展以及用戶數據的增多,這些不同的系統變得難以擴展。
Praveen Neppalli Naga是LinkedIn的一名項目經理。他告訴GigaOM,為了解決上述問題,他與其團隊開始構建一個集中式系統。該系統既要能夠整合LinkedIn的所有數據,又要能夠簡化以它為基礎的數據密集型產品的構建過程。為了集中管理LinkedIn的數據,他們選用Hadoop基礎架構模型作為Pinot的基礎,并根據需要做了修改。然后,他們就可以編寫Hadoop腳本,檢索建有索引的用戶數據。
另外,為了能夠快速準確的響應用戶請求,LinkedIn工程團隊還必須找到一種方法,既能保證與請求相關的最新數據隨時可用,又能保證老數據的可用性,同時,老數據又不會混入新數據妨礙用戶的查詢。為了實現這個目標,他們借助Apache Kafka實現了實時數據索引過程。
據Naga說,經過了大約兩年的開發,Pinot現在成了LinkedIn事實上的數據分析平臺。他們正在評估將其開源,并圍繞它建立一個開發社區,以推動它進一步發展。