ClickHouse(二)学习之OLAP

ClickHouse(二)学习之OLAP

背景

  1. 在社会发展过程中,随着互联网和移动互联网,未来随着5G对于物联网推动,海量数据的存储和处理遇到的技术挑战会越来越大。这主要来自于数据的量级、产生速度、处理速度、准确率等方面考量。
    而这些海量数据,从是否结构化来划分,可以分为结构化数据(存储于各类关系型数据库中的结构化数据)、半结构化数据(客户端和服务器端产生的大量日志文件)、非结构化数据(如社交app的图数据、视频、ppt、图片、word、音频等等形式的数据)。
  2. 而从16年俄罗斯的Yandex公司开源了他们处理结构化数据的大数据处理框架Clickhouse之后,由于其100–1000倍甚至更高的技术指标,在世界范围掀起研究和应用的热潮。国内腾讯、头条、携程等大量部署了clickhouse集群,几百到几千的节点来应对PB级别的海量结构化数据存储和分析。
  3. 大数据处理技术,公司级别应用,最后一般都是为BI也就是business intellegence 商业智能。而这种场景下,一般归属于OLAP。

1.OLAP是什么

OLAP官方历史介绍
相关论文
ClickHouse(二)学习之OLAP_第1张图片

  1. OLAP(online analyse process,俗称联机分析处理技术)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。
  2. OLAP是基于数据库的,而数据库概念最初源于1962年Kenneth Iverson发表的名为“A Programming Language” (APL)的著作,它第一次提出了处理操作和多维变量的的数学表达式,后来APL语言由IBM实现。
  3. 数据库之父Edgar F. Codd提出了著名的关系数据模型理论《A Relational Model of Data for Large Shared Data Banks 》,为后面数据库发展奠定基础。
  4. 第一款OLAP产品Express于1975年问世,随着被Oracle收购后繁荣发展了30余年,最后由继任者Oracle 9i替代。这么多年过去,基本的OLAP理念和数据模型仍然未变。
  5. OLAP这个名词是数据库之父Edgar F. Codd于1993年在文章《Providing OLAP (On-Line Analytical Processing) to User-Analysts: An IT Mandate》提出,他总结了OLAP产品的12个原则,随后OLAP产品相继问世并逐渐形成今天的格局。

2. OLAP重要概念

  1. 数据立方体(Data Cube),多维数据模型作为一种新的逻辑模型赋予了数据新的组织和存储形式。并不是说数据维度像立方体一样只有x、y、z三个维度,而是由很多个数据维度,各个维度数据组合而成。这样多维度的数据存储和描述某一个事物可以让信息更加翔实和充分。在商业领域,多一个维度考量,就多一份胜算。
    如下图,京东笔记本电脑中,用户进行检索的指标,就有非常多的维度
    ClickHouse(二)学习之OLAP_第2张图片
  2. 维, 可以简单理解维平时看待事物或者评估事物的一个角度或者标准。实际商业生产中,评估一个事物会从很多维度进行记录和分析。就跟生活中评价一个人一样,会有很多个角度和方向来综合评价而不是单一角度评价。
  1. 维(Dimension):人们观察事物的视角,如时间、地理位置、年龄和性别等,是单一角度概念。
  2. 维的层次(Lever of Dimension):表示维度概念基础上进一步的细分,如时间可以细分为年、季度、月三个层次。
  3. 维成员(Member of Dimension):表示维不可再细分的原子取值,如时间维的成员可以是2019年1月10日。
  4. 度量(Measure):表示在这个维成员上的取值。

ClickHouse(二)学习之OLAP_第3张图片
3. 操作
参考博客https://blog.csdn.net/xwc35047/article/details/86369465中图片
ClickHouse(二)学习之OLAP_第4张图片
4. 下探或者叫钻取(Drill down):
维度是有层次的,下探表示进入维度的下一层,将汇总数据拆分到下一层所在细节数据信息,如下图从第二季度下探到看4、5、6月的明细数据。
简单来说,就是查看数据的更详细数据,所以叫下探
ClickHouse(二)学习之OLAP_第5张图片

  1. 上钻(Roll up):
    下探的反向操作,回到更高汇聚层的汇总数据。
    简单来说,就是对数据做归纳和汇总,得到更进一步的数据。类似把一本书总结为几句话。
    ClickHouse(二)学习之OLAP_第6张图片

  2. 切片(Slice):
    切片可以理解成把立体按某一个维度进行切分,就可以看两维数据,如图中按电子产品4切分,看到的是时间和地理位置关系的二维数据。
    简单来说,就是根据某个标准进行数据划分,例如家产是否大于一个亿,是就是有钱人,不是就是穷人。
    ClickHouse(二)学习之OLAP_第7张图片

  3. 切块(Dice):
    相对于切片是按一个点切分,切块就是按一个范围(区间)来做切分。
    简单来说就是,切块是按照一个区域范围来划分数据的,例如家产在100万到1个亿之间,普通人,低于100万的是穷人,大于1个亿的是有钱人。所以我需要努力挣钱,争取泡面自由,。
    ClickHouse(二)学习之OLAP_第8张图片

  4. 旋转(Pivot):
    维的行列位置交换,换一个视角分析数据。
    简单来说,类比一个二维坐标,把x和y轴调换,有时候就会得到不一样的数据视角。换个角度看问题。
    ClickHouse(二)学习之OLAP_第9张图片

3.OLAP对技术提出的挑战

  1. 海量数据处理
  2. 数据准确
  3. 处理速度
  4. 支持数据自定义运算和操作
  5. 数据以读取为主,一般是一次写入,多次读取和转换。(和常规的关系型数据库差别较大,常规数据库读写都很重要,还需要加事务Transaction的概念来保证操作的原子性;而OLAP场景下,因为大部分都是读取数据,所以为了提升读取效率,很多都是不支持事务Transaction操作来优化数据库的读取操作的。而且数据读取本身不涉及数据改动,所以是否加事务Transaction并不是很重要)

4.OLAP分类

涉及到分类,就可以有很多分类标准。按照存储器数据格式划分,可以分为ROLAP、MOLAP和HOLAP。

4.1. MOLAP(Multi-dimensional OLAP)

以多维数组(Multi-dimensional Array)存储模型的OLAP,是OLAP发源最初的形态,某些方面也等同于OLAP。它的特点是数据需要预计算(pre-computaion),然后把预计算之后的结果(cube)存在多维数组里。

  1. 优点:
  • cube包含所有维度的聚合结果,所以查询速度非常快。这是自然而然地结果,数据都已经处理好了,只等待查询,而不需要临时进行处理。速度肯定更快
  • 计算结果数据占用的磁盘空间相对关系型数据库更小
  1. 缺点:
  • 空间和时间开销大。update cube的时间跟计算维度(degree)相关,随着维度增加计算时间大幅增加,此外预计算还会造成数据库占用急剧膨胀。这也是很自然地结果,空间换时间地代价。
  • 查询灵活度比较低。需要提前设计维度模型,查询分析的内容仅限于这些指定维度,增加维度需要重新计算。

4.2 ROLAP(Relational OLAP)

基于关系模型存放数据,一般要求事实表(fact table)和维度表(dimensition table)按一定关系设计,它不需要预计算,使用标准SQL就可以根据需要即时查询不同维度数据。

  1. 优点
  • 扩展性强,适用于维度数量多的模型,MOLAP对于维度多的模型预计算慢,空间占用大。更适合处理non-aggregate数据,例如文本描述。
  • 基于row数据更容易做权限管理,权限管理本身就是关系型数据库的强项,至少对比其他数据库类型来说。
  1. 缺点
  • 因为是即时计算,查询响应时间一般比预计算的MOLAP长。

4.3 HOLAP(hybrid OLAP)

业界还没有一致的定义,它是MOLAP和ROLAP类型的混合运用,细节的数据以ROLAP的形式存放,更加方便灵活,而高度聚合的数据以MOLAP的形式展现,更适合于高效的分析处理。公司使用HOLAP的目的是根据不同场景来利用不同OLAP的特性。

5.常见的OLAP引擎或者技解决方案

5.1 MOLAP

  1. Cognos Powerplay, IBM家的,性能可以,但价格大家都懂的。https://www.ibm.com/support/knowledgecenter/en/SSEP7J_11.1.0/com.ibm.swg.ba.cognos.pps_install_config.doc/c_pps_integration_with_ca.html
    ClickHouse(二)学习之OLAP_第10张图片

  2. Oracle Database OLAP Option, Oracle家的,性能很好,不过价格就
    随时担心会收取高额费用,瑟瑟发抖。https://www.simba.com/blog/oracle-database/
    ClickHouse(二)学习之OLAP_第11张图片

  3. MicroStrategy, 微策略(Microstrategy)成立于1989年,是全球最大的独立BI(Business Intelligence)公司(NASDAQ:MSTR)。该公司自成立以来保持了20年的持续增长, 年营收超过5亿美金, 主要来自BI软件和服务。 该公司高度重视中国用户的产品体验, 在华研发员工总数超过300人。Microstrategy 一直是GartnerMagicQuadrant评鉴中列为领先的前五大BI工具和服务厂家。http://www.microstrategy.cn/cn
    ClickHouse(二)学习之OLAP_第12张图片

  4. Microsoft Analysis Services, 微软家的,https://azure.microsoft.com/zh-cn/services/analysis-services/。ClickHouse(二)学习之OLAP_第13张图片

  5. Essbase, Oracle家的,https://www.oracle.com/business-analytics/essbase.html
    ClickHouse(二)学习之OLAP_第14张图片

  6. TM1, IBM家的技术,https://www.ibm.com/cn-zh/products/planning-analytics?p1=Search&p4=43700052974990686&p5=1&cm_mmc=Search_Baidu--1S_1S--CN_CN-_-tm1_1&cm_mmca7=71700000065639752&cm_mmca8=%7btargetid%7d&cm_mmca9=CNCY2tjBuOsCFREgvAodlHoF2A&cm_mmca10=37366801656&gclid=CNCY2tjBuOsCFREgvAodlHoF2A&gclsrc=ds
    ClickHouse(二)学习之OLAP_第15张图片

  7. Jedox ,https://knowledgebase.jedox.com/jedox/how-jedox-works.htm
    ClickHouse(二)学习之OLAP_第16张图片

  8. icCube,https://www.iccube.com/
    ClickHouse(二)学习之OLAP_第17张图片
    下载链接:https://www.iccube.com/download-page/

  9. kylin, http://kylin.apache.org/cn/
    ClickHouse(二)学习之OLAP_第18张图片
    重点,重点,这是一个开源方案,不要钱

5.2ROLAP

  1. Vertica、https://www.vertica.com/

  2. Amazon Redshift、https://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/welcome.html
    ClickHouse(二)学习之OLAP_第19张图片

  3. Google Dremel、不开源,apache支持了一个dremel的开源实现项目,drill(http://drill.apache.org/)
    ClickHouse(二)学习之OLAP_第20张图片

  4. Hulu Nesto、可以参考这篇博客https://blog.csdn.net/hulu_beijing/article/details/107538103

  5. Presto、https://prestodb.io/
    ClickHouse(二)学习之OLAP_第21张图片
    这是开源的解决方案

  6. Druid、https://druid.apache.org/,apache开源方案
    ClickHouse(二)学习之OLAP_第22张图片
    这是开源的解决方案

  7. Impala、http://impala.apache.org/,apache开源方案
    ClickHouse(二)学习之OLAP_第23张图片
    这是开源的解决方案

  8. Greenplum、https://greenplum.org/
    ClickHouse(二)学习之OLAP_第24张图片
    这是开源的解决方案

  9. HAWQ,http://hawq.apache.org/
    ClickHouse(二)学习之OLAP_第25张图片
    这是开源的解决方案

  10. Doris,http://doris.apache.org/master/zh-CN/
    ClickHouse(二)学习之OLAP_第26张图片
    这是开源的解决方案

  11. 实际使用组合技术,也可以达到多维查询的效果,如Hive从HBase或者其他数据库中读取结构化数据再把SQL转换为mapreduce代码,达到实时查询的效果

  12. ClickHouse, 异军突起,直接突破了Hadoop的生态,从分布式数据存储到数据处理全部解决,并且性能在传统的数据库解决方案的100–1000倍及以上。大量在应用
    https://clickhouse.tech/
    ClickHouse(二)学习之OLAP_第27张图片
    重点重点,这是开源方案,不要钱
    PS:

  • 在商业领域,一般会采用成本较低或者无成本的开源方案.
  • 但是在政府、企事业单位如银行等,一般会采用商业化方案来保证数据的安全和稳定性。但也带来了很大的安全隐患,相当于国家的关键部门使用的软硬件都是国外的,有极大的信息泄露隐患,特别是美国的棱镜门事件曝光之后。
  • 去IOE就是去掉IBM的小型机、Oracle数据库、EMC存储设备。

你可能感兴趣的:(OLAP,Clickhouse,大数据,olap,大数据)