數據生產面臨的挑戰
數據爆炸,每日使用最新維度對歷史數據進行回溯計算。在Kylin的MOLAP模式下存在以下問題:html
- 歷史數據每日刷新,失去了增量的意義。
- 每日回溯歷史數據量大,10億+的歷史數據回溯。
- 數據計算耗時3小時+,存儲1TB+,消耗大量計算存儲資源,同時嚴重影響SLA的穩定性。
- 預計算的大量歷史數據實際使用率低下,實際工做中對歷史的回溯80%集中在近1個月左右,但爲了應對全部需求場景,業務要求計算近半年以上的歷史。
- 不支持明細數據的查詢。
引入MPP引擎,數據現用現算
歷史數據預計算成本巨大,最好的辦法就是現用現算,但現用現算須要強大的並行計算能力。
OLAP的實現有 MOLAP、ROLAP、HOLAP 三種形式。
MOLAP 以Cube爲表現形式,但計算與管理成本較高。
ROLAP 須要強大的關係型DB引擎支撐。
長期以來,因爲傳統關係型DBMS的數據處理能力有限,因此ROLAP模式受到很大的侷限性。隨着分佈式、並行化技術成熟應用,MPP引擎逐漸表現出強大的高吞吐、低時延計算能力,號稱「億級秒開」的引擎不在少數,ROLAP模式能夠獲得更好的延伸。單從業務實際應用考慮,性能在千萬量級關聯查詢現場計算秒開的狀況下,已經能夠覆蓋到不少應用場景,具有應用的可能性。例如:日數據量的ROLAP現場計算,周、月趨勢的計算,以及明細數據的瀏覽均可以較好的應對。算法
MOLAP模式的劣勢架構
- 應用層模型複雜,根據業務須要以及Kylin生產須要,還要作較多模型預處理。這樣在不一樣的業務場景中,模型的利用率也比較低。
- Kylin配置過程繁瑣,須要配置模型設計,並配合適當的「剪枝」策略,以實現計算成本與查詢效率的平衡。
- 因爲MOLAP不支持明細數據的查詢,在「彙總+明細」的應用場景中,明細數據須要同步到DBMS引擎來響應交互,增長了生產的運維成本。
- 較多的預處理伴隨着較高的生產成本。
ROLAP模式的優點併發
- 應用層模型設計簡化,將數據固定在一個穩定的數據粒度便可。好比商家粒度的星形模型,同時複用率也比較高。
- App層的業務表達能夠經過視圖進行封裝,減小了數據冗餘,同時提升了應用的靈活性,下降了運維成本。
- 同時支持「彙總+明細」。
- 模型輕量標準化,極大的下降了生產成本。
綜上所述,在變化維、非預設維、細粒度統計的應用場景下,使用MPP引擎驅動的ROLAP模式,能夠簡化模型設計,減小預計算的代價,並經過強大的實時計算能力,能夠支撐良好的實時交互體驗。運維
雙引擎下的應用場景適配問題
架構上經過MOLAP+ROLAP雙引擎模式來適配不一樣應用場景分佈式
技術權衡性能
MOLAP:經過預計算,提供穩定的切片數據,實現屢次查詢一次計算,減輕了查詢時的計算壓力,保證了查詢的穩定性,是「空間換時間」的最佳路徑。實現了基於Bitmap的去重算法,支持在不一樣維度下去重指標的實時統計,效率較高。
ROLAP:基於實時的大規模並行計算,對集羣的要求較高。
MPP引擎的核心是經過將數據分散,以實現CPU、IO、內存資源的分佈,來提高並行計算能力。在當前數據存儲以磁盤爲主的狀況下,數據Scan須要的較大的磁盤IO,以及並行致使的高CPU,仍然是資源的短板。所以,高頻的大規模彙總統計,併發能力將面臨較大挑戰,這取決於集羣硬件方面的並行計算能力。傳統去重算法須要大量計算資源,實時的大規模去重指標對CPU、內存都是一個巨大挑戰。目前Doris最新版本已經支持Bitmap算法,配合預計算能夠很好地解決去重應用場景。ui
MOLAP: 當業務分析維度相對固化,並在可使用歷史狀態時,按照時間進行增量生產,加工成本呈線性增加狀態,數據加工到更粗的粒度(如組織單元),減小結果數據量,提升交互效率。如上圖所示,由A模型預計算到B模型,使用Kylin是一個不錯的選擇。spa
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