Pinterest使用MemSQL和Spark Streaming進行實時數據分析
Pinterest 是一家提供可視化書簽工具的公司,這種工具可以幫助人們發現并保存有創意的想法,目前這家公司正使用實時數據分析來達到以數據驅動決策的目的。 實驗 中使用了 MemSQL 和 Spark 這樣的技術,用以分析來自全球的用戶實時行為信息。
Pinterest采用Redshift實現強大的交互式數據分析
通過MemSQL和Spark,Pinterest創建了一條數據管道。這條管道通過 Apache Kafka 使數據流入MemSQL,并且通過 Spark Streaming API向Spark輸入數據(譯者注:數據流向是Kafka -> Spark -> MemSQL ,見圖1)。這個方案對了解全球用戶如何使用Pins(譯者注:即可視化書簽)提供了實時性的洞察。這有助于Pinterest成為一個更好的推薦引擎,它可以顯示相關的Pins,人們會在不同的場景下來使用這種服務,比如為購物、去某個地方和烹飪食譜做個計劃。
Pin的行為數據(engagement data)先被送入到Kafka主題(Topic)中,接著它被Spark streaming作業消耗掉。作業中每個Pin會進行過濾,然后加上其地理位置和Pin的類別來充實其信息。接著再通過 MemSQL Spark 連接器 (MemSQL Spark Connector)將充實后的信息持久化到MemSQL數據庫中以提供查詢服務。MemSQL Spark 連接器提供了Spark讀寫MemSQL數據庫的工具,它使用MemSQL RDD(Resilient Distributed Dataset)從MemSQL讀取數據。
綜上所述,這個方案框架可以支持實時地收集、存儲和處理用戶行為數據。同時,它也可以幫助獲得下面這些能力:
高性能事件日志:即使用一個叫Singer的代理來收集事件日志,然后把它們運送到集中的數據倉庫中。
可靠的日志傳輸和存儲:即通過Apache kafka和一個叫 Secor 的持久化服務來可靠將這些事件寫入到長期數據存儲 Amazon S3 中。Secor在設計上克服了S3的弱最終一致性模型(weak eventual consistency model)的缺陷,沒有數據丟失而且支持水平擴展和可選的基于日期的數據分片。
基于實時數據的快速查詢:即在實時事件到達時就對它們執行SQL查詢。
查看英文原文: Real-time Data Analytics at Pinterest using MemSQL and Spark Streaming
via:InfoQ
End.