大數據OLAP系統 (1)

數據生產面臨的挑戰

數據爆炸,每日使用最新維度對歷史數據進行回溯計算。在Kylin的MOLAP模式下存在如下問題:

  • 歷史數據每日刷新,失去了增量的意義。
  • 每日回溯歷史數據量大,10億+的歷史數據回溯。
  • 數據計算耗時3小時+,存儲1TB+,消耗大量計算存儲資源,同時嚴重影響SLA的穩定性。
  • 預計算的大量歷史數據實際使用率低下,實際工作中對歷史的回溯80%集中在近1個月左右,但爲了應對所有需求場景,業務要求計算近半年以上的歷史。
  • 不支持明細數據的查詢。

引入MPP引擎,數據現用現算

歷史數據預計算成本巨大,最好的辦法就是現用現算,但現用現算需要強大的並行計算能力。
OLAP的實現有 MOLAP、ROLAP、HOLAP 三種形式。
MOLAP 以Cube爲表現形式,但計算與管理成本較高。
ROLAP 需要強大的關係型DB引擎支撐。
長期以來,由於傳統關係型DBMS的數據處理能力有限,所以ROLAP模式受到很大的侷限性。隨着分佈式、並行化技術成熟應用,MPP引擎逐漸表現出強大的高吞吐、低時延計算能力,號稱“億級秒開”的引擎不在少數,ROLAP模式可以得到更好的延伸。單從業務實際應用考慮,性能在千萬量級關聯查詢現場計算秒開的情況下,已經可以覆蓋到很多應用場景,具備應用的可能性。例如:日數據量的ROLAP現場計算,周、月趨勢的計算,以及明細數據的瀏覽都可以較好的應對。

MOLAP模式的劣勢

  1. 應用層模型複雜,根據業務需要以及Kylin生產需要,還要做較多模型預處理。這樣在不同的業務場景中,模型的利用率也比較低。
  2. Kylin配置過程繁瑣,需要配置模型設計,並配合適當的“剪枝”策略,以實現計算成本與查詢效率的平衡。
  3. 由於MOLAP不支持明細數據的查詢,在“彙總+明細”的應用場景中,明細數據需要同步到DBMS引擎來響應交互,增加了生產的運維成本。
  4. 較多的預處理伴隨着較高的生產成本。

ROLAP模式的優勢

  1. 應用層模型設計簡化,將數據固定在一個穩定的數據粒度即可。比如商家粒度的星形模型,同時複用率也比較高。
  2. App層的業務表達可以通過視圖進行封裝,減少了數據冗餘,同時提高了應用的靈活性,降低了運維成本。
  3. 同時支持“彙總+明細”。
  4. 模型輕量標準化,極大的降低了生產成本。

綜上所述,在變化維、非預設維、細粒度統計的應用場景下,使用MPP引擎驅動的ROLAP模式,可以簡化模型設計,減少預計算的代價,並通過強大的實時計算能力,可以支撐良好的實時交互體驗。

雙引擎下的應用場景適配問題

架構上通過MOLAP+ROLAP雙引擎模式來適配不同應用場景

技術權衡

MOLAP:通過預計算,提供穩定的切片數據,實現多次查詢一次計算,減輕了查詢時的計算壓力,保證了查詢的穩定性,是“空間換時間”的最佳路徑。實現了基於Bitmap的去重算法,支持在不同維度下去重指標的實時統計,效率較高。
ROLAP:基於實時的大規模並行計算,對集羣的要求較高。
MPP引擎的核心是通過將數據分散,以實現CPU、IO、內存資源的分佈,來提升並行計算能力。在當前數據存儲以磁盤爲主的情況下,數據Scan需要的較大的磁盤IO,以及並行導致的高CPU,仍然是資源的短板。因此,高頻的大規模彙總統計,併發能力將面臨較大挑戰,這取決於集羣硬件方面的並行計算能力。傳統去重算法需要大量計算資源,實時的大規模去重指標對CPU、內存都是一個巨大挑戰。目前Doris最新版本已經支持Bitmap算法,配合預計算可以很好地解決去重應用場景。

MOLAP: 當業務分析維度相對固化,並在可以使用歷史狀態時,按照時間進行增量生產,加工成本呈線性增長狀態,數據加工到更粗的粒度(如組織單元),減少結果數據量,提高交互效率。如上圖所示,由A模型預計算到B模型,使用Kylin是一個不錯的選擇。

ROLAP: 當業務分析維度靈活多變或者特定到最新的狀態時(如上圖A模型中,始終使用最新的商家組織歸屬查看歷史),預計算回溯歷史數據成本巨大。在這種場景下,將數據穩定在商家的粒度,通過現場計算進行歷史數據的回溯分析,實現現用現算,可以節省掉預計算的巨大成本,並帶來較大的應用靈活性。這種情況下適合MPP引擎支撐下的ROLAP生產模式。

MPP引擎的選型

目前開源的比較受關注的OLAP引擎很多,比如 Greenplum、Apache Impala、Presto、Doris、ClickHouse、Druid、TiDB 等等,但缺乏實踐案例的介紹,所以我們也沒有太多的經驗可以借鑑。於是,我們就結合自身業務的需求,從引擎建設成本出發,並立足於公司技術生態融合、集成、易用性等維度進行綜合考慮,作爲選型依據,最終我們平臺部門選擇了2018年剛進入Apache社區的Doris。


參考
https://tech.meituan.com/2020/04/09/doris-in-meituan-waimai.html
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章