CLickhouse核心特性

news/2024/6/18 21:17:24 标签: clickhouse

目录

CLickhouse核心特性

1 完备的DBMS功能

2 列式存储与数据压缩

3 向量化执行引擎

4 关系模型与SQL查询

5 多样化的表引擎

6 多线程与分布式

7 多主架构

8 在线查询

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


http://www.niftyadmin.cn/n/4937363.html

相关文章

SpringBoot复习(39)Servlet容器的自动配置原理

Servlet容器自动配置类为ServletWebServerFactoryAutoConfiguration 可以看到通过Import注解导入了三个配置类: 通过这个这三个配置类可以看出,它们都使用了ConditionalOnClass注解,当类路径存在tomcat相关的类时,会配置一个T…

【LeetCode每日一题】——128.最长连续序列

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 中等 三【题目编号】 128.最长连续序列 四【题目描述】 给定一个未…

TCP的相关性质

文章目录 流量控制拥塞控制拥塞窗口 延迟应答捎带应答面向字节流粘包问题TCP的异常 流量控制 由于接收端处理数据的速度是有限的,如果发送端发的太快,那么接收端的缓冲区就可能会满。此时如果发送端还发数据,就会出现丢包现象,并…

搭建网站并内网穿透实现公网访问本地SQL Server数据库【无公网IP内网穿透】

文章目录 前言1. 安装网站运行和发布必备软件2. 安装PHPStudy3. 安装wordpress4. 进入wordpress安装程序,进行网页编辑和设置5. 安装URL插件6. 安装Cpolar7. 创建自己的数据隧道 前言 在普通电脑用户看来,建立自己的网站总是一件高大上的事情&#xff0…

设计模式之七大原则

👑单一职责原则 单一职责原则告诉我们一个类应该只有一个责任或者只负责一件事情。 想象一下,如果一个类承担了太多的责任,就像一个人同时负责做饭、洗衣服和打扫卫生一样,那么这个类会变得非常复杂,难以理解和维护。而…

【Kubrnetes】存储卷、nfs配置

目录 emptyDir存储卷 hostPath存储卷 在 node01 节点上创建挂载目录 在 node02 节点上创建挂载目录 创建 Pod 资源 访问测试 删除pod,再重建,验证是否依旧可以访问原来的内容 nfs共享存储卷 在192.168.110.60节点上安装nfs,并配置nf…

二刷LeetCode--155. 最小栈(C++版本),思维题

思路:本题需要使用两个栈,一个就是正常栈,执行出入操作,另一个栈只负责将对应的最小值进行保存即可.每次入栈的时候,最小值栈的栈顶也需要入栈元素,不过这个元素是最小值,那么就需要进行比较,因此在getmin()的时候只需要将最小值栈的栈顶元素弹出即可.初始化的时候只需要将最小…

数据服务能为高校、科研院所解决哪些问题?

我国是科研大国,具有规模庞大的科研人才队伍。随着科研实力的逐渐增强,高校需要对接新平台,获得更多研发资源,而科研信息数据量急剧增长,超过了科研人员所能够管理的范围,这就需要借助数据服务,…