OLAP之ClickHouse讲解

前言首先Clickhouse在大方向上属于OLAP,列式存储,MPP。也就是指这三者的基础概念,属于前置知识,如果未曾了解,那么关于接下来对ClickHouse的认知与学习则事倍功半。固穿插一部分前置知识,如果已经有所了解则跳过。OLAPOLAP与OLTP提到OLAP,总是会与OLTP做比较。OLTP联机事务分析联机事务分析,强调事务性,并发。微量查询,每秒钟的查询次数较多,数百个甚至过千。SQL语句提交频繁,强调ACID。大多应用于传统的银行证券交易行为,针对某行数据的增删改查
摘要由CSDN通过智能技术生成

前言

  • 首先Clickhouse在大方向上属于OLAP,列式存储,MPP。也就是指这三者的基础概念,属于前置知识,如果未曾了解,那么关于接下来对ClickHouse的认知与学习则事倍功半。
  • 固穿插一部分前置知识,如果已经有所了解则跳过。

在这里插入图片描述

OLAP

OLAP与OLTP

提到OLAP,总是会与OLTP做比较。
在这里插入图片描述

OLTP联机事务分析

联机事务分析,强调事务性,并发。微量查询,每秒钟的查询次数较多,数百个甚至过千。SQL语句提交频繁,强调ACID。大多应用于传统的银行证券交易行为,针对某行数据的增删改查。

数据块变化频繁,随着数据量的增长以及计算型的函数参与SQL,消耗大量的CPU时间。

强调三范式。

一定程度上OLAP分析的数据都是由OLTP所产生的。

OLAP联机分析处理

OLAP又分为ROLAP与MOLAP与HOLAP

ROLAP关系型联机分析

关系型联机分析,以关系数据库为核心,以关系型结构进行多维数据的表示和存储。R即表示关系型(Relational)。

比较经典的有Doris,百度开源的产品,已经捐献至apache

将分析用的多维数据存储在关系数据库中,将常用的,频繁需求的直接封装入视图。减少了数据冗余,同时提高了应用的灵活性,模型轻量化。
######Doris在这里插入图片描述

MOLAP多维联机分析

多维联机分析,所用到的多维数据物理上存储为多维数组的形式,形成"立方体"的结构。

kylin,Druid就是最经典MOLTP,核心理念空间换取时间。

主要通过一些软件工具或中间软件实现,维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。

缺点是配置过程繁琐(需要专业程度较高),需要配置模型设计,并配合适当的“剪枝”策略(kylin中的强制维度等),以实现计算成本与查询效率的平衡。
在这里插入图片描述

HOLAP混合数据模型

对于查询频繁而稳定但又耗时的那些SQL,通过预计算来提速;对于较快的查询、发生次数较少或新的查询需求,像ROLAP一样直接通过SQL操作事实表和维度表。
目前似乎没有开源的OLAP系统属于这个类型
在这里插入图片描述

列式存储

列式存储与行式存储
在这里插入图片描述

行式存储

所谓行式存储,顾名思义,数据在磁盘上的存储以行为最小单位。适应场景,也就是数据按行读写。

Mysql,Oracle为其中典例

行式存储,列数是固定的,字段没有数据,也就是空行,依旧会占用空间。每行数据的类型也不一致,所以压缩的效率不会太高。

适用于随即查询,通常行式存储也就是关系型数据库,都提供二级索引,在整行的读取上,效率较优。

缺点是,范围读取性能不佳,如果只取某几个字段则需要全表扫描。应用于BI的场景,如果不设计视图,效率注定不佳。

列式存储

所谓列式存储,也就是在磁盘上的数据按列存储,按列读写。更像一个Map,K,V。

国内知名度较高的有HBase,国外知名度较高的有Cassandra。

字段中没有数据,不会占用空间。每列的数据类型基本是一致的,所以压缩的效率极高。

适用于范围查询,批量查询,大规模数据的聚合操作。

例如HBase,弱化了列的概念,但并非完全不要求结构,列族需要提前定义。

缺点是,顺序读写效率低,表关联关系较为复杂。

Cassandra数据结构

在这里插入图片描述

HBase数据结构

在这里插入图片描述

MPP

大规模并行处理系统

多个SQL数据库节点搭建的数据仓库系统。执行查询的时候,查询可以分散到多个SQL数据库节点上执行,然后汇总返回给用户.

比较经典的有Impala,Clickhouse,GreenPlum

每个节点都有自己独立的CPU,内存和磁盘资源。任务执行能力强,充分发挥本地计算的能力,数据无共享,无IO冲突,无锁资源竞争,计算速度快

缺点是,如果某个节点的计算迟迟无法完成,就出现短板效应。
在这里插入图片描述

Clickhouse

在这里插入图片描述

易观针对目前市面上OLAP所作报告 满分5分

在这里插入图片描述

ClickHouse特性之数据压缩

数据压缩支持标记压缩,列级压缩。也就是指可以针对不同的列,采用不同的压缩,较为灵活。创表时实现。

create table database.db_name(
		security_id String CODEC(LZ4),
		gross_profit float64 CODEC(Gorilla,LZ4),
		rang_pc float32 CODEC(T64,LZ4),
	    trade_date Date CODEC(DoubleDelta,LZ4)
 )
 ENGINE = ReplacingMergeTree
PARTITION BY toYYYYMMDD(trade_date)
ORDER BY (security_id,
 trade_date)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值