clickhouse 的前世今生

背景

  • Google于2003~2006年相繼發表了三篇論文“Google File System”“Google MapReduce”和“Google Bigtable”,將大數據的處理技術帶進了大眾視野。

  • 2006年開源項目Hadoop的出現,標志著大數據技術普及的開始,大數據技術真正開始走向普羅大眾。

  • hadoop由最初的HDFS和MapReduce,變成了一個龐大的生態(包括Yarn、Hive、HBase、Spark等數十種之多)。

  • 大數據分析場景中,傳統關系型數據庫被Hadoop生態取代。
    數據倉庫由之前使用的傳統關系型數據庫唄以Hive為代表的大數據技術取代,數據查詢分析的手段也層出不窮,Spark、Impala、Kylin等百花齊放。

  • hadoop生態存在一定局限,生態化給人們帶來便利,只需相互借力、組合就能形成新的方案。但生態化的另一面則可以看作臃腫和復雜。與此同時,隨著現代化終端系統對實效性的要求越來越高,Hadoop在海量數據和高時效性的雙重壓力下,也顯得有些力不從心了。

hadoop局限:a.臃腫復雜 b.海量數據和高時效性方面力不從心

clickhouse的前世今生

1.1 傳統BI系統之殤

https://blog.csdn.net/yxf19034516/article/details/107245337

1. BI、數據倉庫、OLAP關系

OLTP: 聯機事務處理,諸如流程審批、數據錄入和填報這類工作等等,事務處理。
OLAP:聯機分析,分析類視角,例如分析報表、分析決策等

數據倉庫:為了解決數據孤島的問題。即通過引入一個專門用于分析類場景的數據庫,將分散的數據統一匯聚到一處。

BI(商業智能)系統:一類統一面向數據倉庫,專注于提供數據分析、決策類功能的系統與解決方案應運而生。
指用現代數據倉庫技術、線上分析處理技術、數據挖掘和數據展現技術進行數據分析以實現商業價值。

2. 傳統BI特點:

a. 傳統BI系統對企業的信息化水平要求較高
b. 狹小的受眾制約了傳統BI系統發展的生命力
c.冗長的研發過程滯后了需求的響應時效

1.2 現代BI系統的新思潮

現代BI系統的典型應用場景是多維分析

1.3 OLAP常見架構分類

OLAP名為聯機分析,又可以稱為多維分析,它指的是通過多種不同的維度審視數據,進行深層次分析。維度可以看作觀察數據的一種視角。

那么多維分析通常都包含哪些基本操作呢?

對于一張銷售明細表,數據立方體可以進行如下操作。
? 下鉆:從高層次向低層次明細數據穿透。例如從“省”下鉆到“市”,從“湖北省”穿透到“武漢”和“宜昌”。
? 上卷:和下鉆相反,從低層次向高層次匯聚。例如從“市”匯聚成“省”,將“武漢”“宜昌”匯聚成“湖北”。
? 切片:觀察立方體的一層,將一個或多個維度設為單個固定值,然后觀察剩余的維度,例如將商品維度固定為“足球”。
? 切塊:與切片類似,只是將單個固定值變成多個值。例如將商品維度固定成“足球”“籃球”和“乒乓球”。
? 旋轉:旋轉立方體的一面,如果要將數據映射到一張二維表,那么就要進行旋轉,這就等同于行列置換。

為了實現上述這些操作,將常見的OLAP架構大致分成三類。

A. ROLAP(Relational OLAP,關系型OLAP)

它直接使用關系模型構建,數據模型常使用星型模型或者雪花模型

B. MOLAP(Multidimensional OLAP,多維型OLAP)

它的出現是為了緩解ROLAP性能問題。
MOLAP使用多維數組的形式保存數據,其核心思想是借助預先聚合結果,使用空間換取時間的形式最終提升查詢性能。也就是說,用更多的存儲空間換得查詢時間的減少。其具體的實現方式是依托立方體模型的概念。

C. HOLAP(Hybrid OLAP,混合架構的OLAP)

這種思路可以理解成ROLAP和MOLAP兩者的集成。

學習:
https://tech.meituan.com/2020/04/09/doris-in-meituan-waimai.html

1.4 OLAP實現技術的演進

A. 傳統關系型數據庫階段

OLAP主要基于以Oracle、MySQL為代表的一眾關系型數據實現。
ROLAP: 直接的數據庫查詢
MOLAP:借助物化視圖的形式實現數據立方體

B. 大數據技術階段

  • 以ROLAP架構為例,傳統關系型數據庫就被Hive和SparkSQL這類新興技術所取代。
    缺點:spark為例,替代了oracle,但是海量處理方面優秀,但直接作為終端查詢還是太慢,用戶普遍沒有耐心。分鐘級用戶無法接受。
  • MOLAP背后也轉為依托MapReduce或Spark這類新興技術,將其作為立方體的計算引擎,加速立方體的構建過程。其預聚合結果的存儲載體也轉向HBase這類高性能分布式數據庫。
    缺點:MOLAP架構依然存在維度爆炸、數據同步實時性不高的問題。

總結:如果單純從模型角度考慮,很明顯ROLAP架構更勝一籌。是否存在這樣一種技術,它既使用ROLAP模型,同時又擁有比肩MOLAP的性能呢?

ClickHouse

其具有ROLAP、在線實時查詢、完整的DBMS、列式存儲、不需要任何數據預處理、支持批量更新、擁有非常完善的SQL支持和函數、支持高可用、不依賴Hadoop復雜生態、開箱即用等許多特點

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。