栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Clickhouse

Clickhouse

生生不息,“折腾”不止;Java晋升指北,让天下没有难学的技术;视频教程资源共享,学习不难,坚持不难,坚持学习很难; >>>>


ClickHouse汲取了各家技术的精髓,将每一个细节都做到了极致

核心特性 1.1 DBMS功能

ClickHouse拥有完备的管理功能,所以称得上是DBMS;

DDL(数据定义语言):可以动态地创建、修改、删除数据库、表、视图(无需重启服务)DML(数据操作语言):CRUD权限控制:可设置库、表的操作权限,保障数据的安全性数据备份/恢复:恢复机制分布式管理:提供集群模式,能够自动管理多个数据库节点 1.2 列式存储/数据压缩

如果想让数据查询变得更快,最简单且有效的方法就是减少数据扫描范围、数据传输时大小,而列式存储、数据压缩就可以帮助我们实现上述两点;
列式存储 VS 行式存储:Select A1,A2,A3,A4 from 表;

行式存储,数据库首先会逐行扫描,并获取每行数据的所有字段,再返回每一行的所需字段列式存储,直接获取对应列的字段,避免了多余的数据扫描
数据压缩:有两个字符,ABCDEFGHI、BCDEFGHI压缩前:ABCDEFGHI_BCDEFGHI压缩后:ABCDEFGHI_(9,8)

为什么列式存储是数据压缩的前提?


数据中的重复项越多,则压缩率越高;压缩率越高,则数据体量越小;而数据体量越小,则数据在网络中的传输越快,对网络带宽和磁盘IO的压力也就越小;
同一个列字段的数据,因为它们拥有相同的数据类型和现实语义,重复项的可能性自然就更高


ClickHouse默认使用LZE算法压缩
在Yandex的生产环境中,数据总体的压缩比可以达到 8:1

1.3 关系模型/SQL查询

ClickHouse使用关系模型描述数据,并提供了传统数据库的概念

数据库表视图函数

ClickHouse完全使用SQL作为查询语言,支持Group By、Order By、Join、in等大部分标准SQL

为什么采用关系型模型?


在OLAP领域,已有的大量数据建模工作,都是基于关系型模式展开的,ClickHouse使用关系模型,目的就是,减少已经使用关系模型的数据仓库进行数据迁移时的成本;

1.4 多样化表引擎

ClickHouse提供多种多样的表引擎,每一种表引擎都有各自的特点,用户可根据实际业务场景的要求,选择合适的表引擎;

为什么引擎支持多样化?


将表引擎独立设计的好处显而易见,通过特定的表引擎,支持特定的场景,十分灵活;对于简单的场景,可直接使用简单的引擎降低成本,而复杂的场景也有合适的选择;

1.5 多主架构

ClickHouse采用Multi-Master多主架构,集群中的每个节点角色对等,客户端访问任意一个节点都能够有相同的效果;

为什么是采用多主架构,而不是主从架构?


多主的架构有许多优势,对等的角色使系统架构变的更加简单,不用再区分主控节点、数据节点等,集群中的所有节点功能相同,同时,天然规避了单点故障问题;

1.6 数据分片/分布式

ClickHouse提供了本地表(Local Table)与分布式表(Distributed Table)的概念;

一张本地表就等同于一份数据的分片,而分布式表本身不存储数据,它是本地表的访问代理,其作用类似分库中间件,借助分布式表,能够代理访问多个数据分片,从而实现分布式查询;

架构设计 2.1 Cluster/Replication

ClickHouse的集群由分片Shard组成,而每个分片又通过副本Replica组成;

ClickHouse的1个节点只能拥有1个分片(如果要实现1分片、1副本,则至少需要2个服务节点)分片只是一个逻辑概念,其物理承载还是副本承担的; 2.2 向量化执行引擎

CPU的SIMD指令;SIMD Single Instruction Multiple Data,单条指令操作多条数据,对于不同数据可能存在相同操作,可以理解为并行操作;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/758965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号