實時OLAP(三)Apache Pinot在微博的實踐

一、爲什麼微博需要用Apache Pinot?

微博有很多的業務的場景和非常大量的實時數據和離線數據,在沒有使用Pinot之前,我們使用實時檢索引擎elsaticsearch對數據進行檢索和kibana進行可視化。問題是隨着業務的逐漸增多,很多業務需要實時多維秒級查詢近百億的數據,elasticsearch很顯然不擅長做多維分析,響應時間很長,對此需要一個實時OLAP來解決這種問題。

在對druid,clickhouse,pinot進行調研之後,首選java寫的,畢竟可能要看源代碼,然後覺得pinot的運維簡單,最後測試pinot響應時間滿足需求,多維查詢性能還是很不錯的。在使用pinot之後,業務只需要在數據庫進行配置,調度系統自動從數據倉庫攝取數據,或者從kafka實時的攝取數據。

二、Apache Pinot 在微博的使用場景?

  1. 智能預警
  2. 實時OLAP分析
  3. 根因分析
  4. A/B test

三、Apache Pinot架構

在這裏插入圖片描述

Apache Pinot的架構主要是Lambda,分成實時層和離線層。主要的節點包括:

  • controller 節點:管理集羣中的節點、對Table和Segment的創建、更新和刪除操作的處理和計算Table和Segment在server上的分配
  • broker 節點:接收客戶端的查詢請求,並且將路由到多個服務上(根據路由策略), 合併接收的查詢結果並返回給客戶端
  • server 節點: 當被分配一個預先創建的segment,下載並且裝載這個Segment,當被分配一個Kafka Topic,從kafka的partion的一個子集中消費數據。執行查詢請求並將結果返回給broker。

四、微博OLAP平臺的架構和功能分析

在這裏插入圖片描述
Apache Pinot和周圍的組件共同組合成微博OLAP平臺,其主要功能:

  • hubble多維數據實時分析,可視化展示
  • cosmos智能調度系統,數據精準導入Pinot
  • thirdeye 根因分析系統,對比分析
  • 智能預警系統,實時數據異常報警
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章