登 录
注 册
< 数 据 库
MySQL
ClickHouse
ES
Doris
MongoDB
Redis
其他DB
ClickHouse介绍
单机部署
客户端访问
数据定义
MergeTree引擎
表引擎-外部存储
表引擎-内存类型
表引擎-其他类型
热门推荐>>>
中台架构
中台建设与架构
Hadoop
源码分析-NN启动(三)
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
安全常识
一文读懂SSO
当前位置:
首页
>>
ClickHouse
>>
ClickHouse介绍
ClickHouse介绍
2020-10-07 14:53:53 星期三 阅读:5802
参考书籍:[ClickHouse原理解析与应用实践](https://book.douban.com/subject/35091211/ "ClickHouse原理解析与应用实践") #### 如何解决海量下分析查询的性能问题 人们在数据仓库的基础上衍生出众多概念,例如:对数据进行分层,通过层层递进形成数据集市,从而减少最终查询的数据体量;提出数据立方体的概念,通过对数据进行预先处理,以空间换时间,提升查询性能。然而无论如何努力,设计的局限始终是无法突破的瓶颈。OLTP技术由诞生的那一刻起就注定不是为数据分析而生的,于是很多人将目光投向了新的方向。 在大规模查询分析的应用场景,基于维度组合的预计算是比较可行的方案,但是也带来了如下几个问题 - 时效性低 维度组合爆炸会导致维度膨胀 所以,ClickHouse为了解决这个痛点,在`设计上并不是预计算,而是是实时聚合的`。 #### ClickHouse名称的含义 在采集数据的过程中,一次页面click(点击),会产生一个event(事件)。基于页面的点击事件流,面向数据仓库进行OLAP分析。所以ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse。 #### ClickHouse的适用场景 ClickHouse非常适用于商业智能领域(也就是我们所说的BI领域),除此之外,它也能够被广泛应用于广告流量、Web、App流量、电信、金融、电子商务、信息安全、网络游戏、物联网等众多其他领域。 #### ClickHouse不适用场景 ClickHouse是一款OLAP的高性能数据库,但不适用于OLTP事务型操作的场景,所有有以下几点不足 - 不支持事务。 不擅长根据主键按行粒度进行查询(虽然支持),故不应该把ClickHouse当作Key-Value数据库使用。 不擅长按行删除数据(虽然支持) #### ClickHouse的核心特性 ClickHouse的精髓是最大限度榨干CPU和内存,在内存里面计算,所想即所得,快得冒泡 `1、完备的DBMS(数据库管理系统)的功能` >DDL DML 权限控制 数据备份与恢复 分布式管理 `2、列式存储与数据压缩(减少数据扫描范围和数据传输大小)`:列式存储相比行式存储的压缩率更高,因为同一列数据的重复率和数据语义更相似。(属于同一列的数据会被保存在一起,与列之间也会由不同的文件分别保存) `3、向量化执行引擎`(利用CPU的SIMD指令实现单条指令操作多条数据,即一个人利用8个榨汁机同时榨8杯果汁) `4、关系模型与SQL查询`(完全使用SQL作为查询语言) `5、多样化的表引擎`(总共20多种表引擎支持多样的场景,而不像MySQL只有两种存储引擎) `6、多线程与分布式`(与向量化执行引擎互补,移动计算而不是移动数据,将计算下推到数据所在节点) `7、多主架构`(集群中每个节点的角色对等,所有节点功能相同,天然避免单点故障问题) `8、在线查询` `9、数据分片与分布式查询`(类似数据库的分库分表)