CLickhouse核心特性

目录

CLickhouse核心特性

[1 完备的DBMS功能](#1 完备的DBMS功能)

[2 列式存储与数据压缩](#2 列式存储与数据压缩)

[3 向量化执行引擎](#3 向量化执行引擎)

[4 关系模型与SQL查询](#4 关系模型与SQL查询)

[5 多样化的表引擎](#5 多样化的表引擎)

[6 多线程与分布式](#6 多线程与分布式)

[7 多主架构](#7 多主架构)

[8 在线查询](#8 在线查询)

[9 数据分片与分布式查询](#9 数据分片与分布式查询)

Clickhouse适用场景

Clickhouse不适用场景

Clickhouse名称含义


CLickhouse核心特性

1 完备的DBMS功能

具备dbms(数据库管理系统)的一些基本功能:DDL,DML,权限控制,数据备份与恢复,分布式管理等

2 列式存储与数据压缩

按列存储可以有效减少查询时扫描的数据量

数据默认使用LZ4算法压缩,Yandex.Metrica生产环境数据总体压缩比可以达到8:1

3 向量化执行引擎

向量化执行,可以简单地看作一项消除程序中循环的优化。

为了实现向量化执行,需要利用CPU的SIMD指令。SIMD的全称是 Single Instruction Multiple Data,即用单条指令操作多条数据。现代计算 机系统概念中,它是通过数据并行以提高性能的一种实现方式(其他 的还有指令级并行和线程级并行),它的原理是在CPU寄存器层面实现 数据的并行操作

4 关系模型与SQL查询

Clickhouse使用SQL作为查询语句,SQL 拥有极高的"群众基础",更容易被使用者学习接受。

关系模型相比文档和键值对等其他模型,拥有更好的描述能力, 也能够更加清晰地表述实体间的关系。

5 多样化的表引擎

ClickHouse 共拥有合并树、内存、文件、接口和其他6大类20多种表引擎。其中每 一种表引擎都有着各自的特点,用户可以根据实际业务场景的要求, 选择合适的表引擎使用。

6 多线程与分布式

如果说向量化执行是通过数据级并行的方式提升了性能,那么多 线程处理就是通过线程级并行的方式实现了性能的提升。相比基于底 层硬件实现的向量化执行SIMD,线程级并行通常由更高层次的软件层 面控制。现代计算机系统早已普及了多处理器架构,所以现今市面上 的服务器都具备良好的多核心多线程处理能力。由于SIMD不适合用于 带有较多分支判断的场景,ClickHouse也大量使用了多线程技术以实 现提速,以此和向量化执行形成互补。

ClickHouse在数据存取方面,既支持分区(纵向扩 展,利用多线程原理),也支持分片(横向扩展,利用分布式原 理),可以说是将多线程和分布式的技术应用到了极致。

7 多主架构

ClickHouse则采用Multi-Master多主架构,集群中的每个节点角色对 等,客户端访问任意一个节点都能得到相同的效果。这种多主的架构 有许多优势,例如对等的角色使系统架构变得更加简单,不用再区分 主控节点、数据节点和计算节点,集群中的所有节点功能相同。所以 它天然规避了单点故障的问题,非常适合用于多数据中心、异地多活 的场景。

8 在线查询

正如ClickHouse的"广告词"所言,其他的开源系统太慢,商用的 系统太贵,只有Clickouse在成本与性能之间做到了良好平衡,即又快 又开源。ClickHouse当之无愧地阐释了"在线"二字的含义,即便是在 复杂查询的场景下,它也能够做到极快响应,且无须对数据进行任何 预处理加工。

9 数据分片与分布式查询

数据分片是将数据进行横向切分,这是一种在面对海量数据的场 景下,解决存储和查询瓶颈的有效手段,是一种分治思想的体现。 ClickHouse支持分片,而分片则依赖集群。每个集群由1到多个分片组 成,而每个分片则对应了ClickHouse的1个服务节点。分片的数量上限 取决于节点数量(1个分片只能对应1个服务节点)。

ClickHouse并不像其他分布式系统那样,拥有高度自动化的分片 功能。ClickHouse提供了本地表(Local Table)与分布式表 (Distributed Table)的概念。一张本地表等同于一份数据的分片。而 分布式表本身不存储任何数据,它是本地表的访问代理,其作用类似 分库中间件。借助分布式表,能够代理访问多个数据分片,从而实现 分布式查询。

Clickhouse适用场景

ClickHouse非常适用于商业智能领域(也就是我们所说的BI领域),除此之外,它也能够被广泛应用于广告流量、Web、App流量、 电信、金融、电子商务、信息安全、网络游戏、物联网等众多其他领 域。

Clickhouse不适用场景

·不支持事务。

·不擅长根据主键按行粒度进行查询(虽然支持),故不应该把ClickHouse当作Key-Value数据库使用。

·不擅长按行删除数据(虽然支持)。

Clickhouse名称含义

Click Stream,Data WareHouse

整个系统的逻辑就十分清晰了,那就是基于页 面的点击事件流,面向数据仓库进行OLAP分析

相关推荐
unhurried人生——冕临2 天前
Ubuntu安装ClickHouse
clickhouse
爱吃萝卜的猪13 天前
Clickhouse源码分析-Replicated Database创建流程
clickhouse
编程的大耳朵13 天前
ClickHouse 概述
clickhouse
Ethan301414 天前
Clickhouse官方文档学习笔记
笔记·学习·clickhouse
weixin_3077791315 天前
Python实现MySQL建表语句转换成Clickhouse SQL
数据库·python·sql·mysql·clickhouse
大千AI助手24 天前
硬核实战 | 3分钟Docker部署ClickHouse列存数据库
大数据·clickhouse·docker·database
Sayai25 天前
dbeaver 查询clickhouse,数据库时间差了8小时
数据库·clickhouse·oracle
weixin_307779131 个月前
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
运维·数据仓库·clickhouse
weixin_307779131 个月前
Linux下GCC和C++实现统计Clickhouse数据仓库指定表中各字段的空值、空字符串或零值比例
linux·运维·c++·数据仓库·clickhouse
斯特凡今天也很帅1 个月前
clickhouse常用语句汇总——持续更新中
数据库·sql·clickhouse