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复杂生态、开箱即用等许多特点

你可能感兴趣的:(clickhouse 的前世今生)