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分析

相关推荐
积跬步,慕至千里18 小时前
clickhouse数据库表和doris数据库表迁移starrocks数据库时建表注意事项总结
数据库·clickhouse
Edingbrugh.南空1 天前
Flink ClickHouse 连接器数据读取源码深度解析
java·clickhouse·flink
Edingbrugh.南空1 天前
ClickHouse 全生命周期性能优化
clickhouse·性能优化
Edingbrugh.南空2 天前
Flink ClickHouse 连接器维表源码深度解析
java·clickhouse·flink
unhurried人生——冕临4 天前
Ubuntu安装ClickHouse
clickhouse
爱吃萝卜的猪15 天前
Clickhouse源码分析-Replicated Database创建流程
clickhouse
编程的大耳朵15 天前
ClickHouse 概述
clickhouse
Ethan301416 天前
Clickhouse官方文档学习笔记
笔记·学习·clickhouse
weixin_3077791317 天前
Python实现MySQL建表语句转换成Clickhouse SQL
数据库·python·sql·mysql·clickhouse
大千AI助手1 个月前
硬核实战 | 3分钟Docker部署ClickHouse列存数据库
大数据·clickhouse·docker·database