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.mzph.cn/news/37401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P8642 [蓝桥杯 2016 国 AC] 路径之谜

[蓝桥杯 2016 国 AC] 路径之谜 题目描述 小明冒充 X X X 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 n n n\times n nn 个方格。如图所示。 按习俗,骑士要从西北角走到东南角。 …

C/C++中const关键字详解

为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:…

音视频 vs2017配置FFmpeg

vs2017 ffmpeg4.2.1 一、首先我把FFmpeg整理了一下&#xff0c;放在C盘 二、新建空项目 三、添加main.cpp&#xff0c;将bin文件夹下dll文件拷贝到cpp目录下 #include<stdio.h> #include<iostream>extern "C" { #include "libavcodec/avcodec.h&…

【Docker】使用 Docker Registry 搭建自己的 Docker 镜像仓库

使用 Docker Registry 搭建自己的 Docker 镜像仓库 在使用 Docker 进行应用程序的开发和部署时&#xff0c;使用 Docker 镜像仓库是一个很好的实践。它允许集中存储和管理 Docker 镜像&#xff0c;方便团队协作和版本控制。在本文中&#xff0c;将介绍如何使用 Docker Registr…

Nginx随笔

Nginx下载链接 安装命令&#xff1a; apt update apt install nginx 一、基础命令&#xff08;Ubuntu&#xff09; 1、在全局 nginx -t //检查Nginx的配置文件是否有错 systemctl start nginx //启动Nginx systemctl stop nginx //停止Nginx systemctl status nginx //查…

【数据结构与算法——TypeScript】图结构(Graph)

【数据结构与算法——TypeScript】 图结构(Graph) 认识图结构以及特性 什么是图? 在计算机程序设计中&#xff0c;图结构 也是一种非常常见的数据结构。 但是&#xff0c;图论其实是一个非常大的话题 认识一下关于图的一些内容 图的抽象数据类型一些算法实现。 什么是图?…

jmeter获取mysql数据

JDBC Connection Configuration Database URL: jdbc:mysql:// 数据库地址 /库名 JDBC Driver class&#xff1a;com.mysql.jdbc.Driver Username&#xff1a;账号 Password&#xff1a;密码 JDBC Request 字段含义 字段含义 Variable Name Bound to Pool 数据库连接池配置…

使用vue3 + ts + vite + v-md-editor 在前端页面预览markdown文件

1.效果预览 2. 依赖包安装 yarn add kangc/v-md-editornext v-md-editor中文官网&#xff1a;https://code-farmer-i.github.io/vue-markdown-editor/zh/ v-md-editor分为4种组件&#xff1a; 轻量版编辑器进阶版编辑器预览组件html预览组件 对UI组件库页面&#xff0c;我只需…

问道管理:缩量小幅上涨说明什么?

股市里面&#xff0c;股票价格上涨或跌落都是常见现象。可是关于那些在商场上寻求收益的出资者来说&#xff0c;他们需要对每一个股市中的价格动摇有深化的了解&#xff0c;以便做出更正确的出资决策。最近&#xff0c;出资者们发现商场缩量小幅上涨的现象时有发生&#xff0c;…

Jmeter压测实战:Jmeter二次开发之自定义函数

目录 1 前言 2 开发准备 3 自定义函数核心实现 3.1 新建项目 3.2 继承实现AbstractFunction类 3.3 最终项目结构 4 Jmeter加载扩展包 4.1 maven构建配置 4.2 项目打包 4.3 Jmeter加载扩展包 5 自定义函数调用调试 5.1 打开Jmeter函数助手&#xff0c;选择自定义函数…

clickhouse 删除操作

OLAP 数据库设计的宗旨在于分析适合一次插入多次查询的业务场景&#xff0c;市面上成熟的 AP 数据库在更新和删除操作上支持的均不是很好&#xff0c;当然 clickhouse 也不例外。但是不友好不代表不支持&#xff0c;本文主要介绍在 clickhouse 中如何实现数据的删除&#xff0c…

单链表相关操作(插入,删除,查找)

通过上一节我们知道顺序表的优点&#xff1a; 可随机存储&#xff08;O(1)&#xff09;&#xff1a;查找速度快 存储密度高&#xff1a;每个结点只存放数据元素&#xff0c;而单链表除了存放数据元素之外&#xff0c;还需存储指向下一个节点的指针 http://t.csdn.cn/p7OQf …

【2023年11月第四版教材】《第4章-信息系统管理(合集篇)》

第4章-信息系统管理之管理方法&#xff08;第四版新增章节&#xff09;&#xff08;第一部分&#xff09; 章节说明1 管理方法1.1 信息系统四个要素1.2 信息系统四大领域1.3 信息系统战略三角1.4 信息系统架构转换1.5 信息系统体系架构1.6 信息系统运行1.7 运行和监控1.8 管理和…

北邮邓中亮:深度融合5G+北斗,实现高精准定位

如今&#xff0c;万物互联时代&#xff0c;物与物、物与人、人与人之间需要实现更多的互联。在如此复杂多变的环境中&#xff0c;定位技术面临着着更多挑战和需求&#xff0c;需要不断的创新和改进。唯有如此&#xff0c;才能满足未来智能交通、无人驾驶和工业互联网等领域的高…

kafka基本概念及操作

kafka介绍 Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区的&#xff08;partition&#xff09;、多副本的 &#xff08;replica&#xff09;&#xff0c;基于zookeeper协调的分布式消息系统&#xff0c;它的最大的特性就是可以实时的处理大量数据以满足各…

【LeetCode】242 . 有效的字母异位词

242 . 有效的字母异位词&#xff08;简单&#xff09; 方法&#xff1a;哈希表 思路 首先判断两个字符串长度是否相等&#xff0c;不相等直接返回 false&#xff1b;接下来设置一个长度为26 的哈希表&#xff0c;分别对应26个小写字母&#xff1b;遍历两个字符串&#xff0c;…

Go语言工程实践之测试与Gin项目实践

Go 语言并发编程 及 进阶与依赖管理_软工菜鸡的博客-CSDN博客 03 测试 回归测试一般是QA(质量保证)同学手动通过终端回归一些固定的主流程场景 集成测试是对系统功能维度做测试验证,通过服务暴露的某个接口,进行自动化测试 而单元测试开发阶段&#xff0c;开发者对单独的函数…

day-21 代码随想录算法训练营(19)二叉树part07

530.二叉搜索树的最小绝对差 思路一&#xff1a;二叉搜索树的中序遍历必为升序数组&#xff0c;加入数组后计算相邻两个数差值&#xff0c;即可求出最小绝对差 思路二&#xff1a;同样的思路&#xff0c;中序遍历&#xff0c;直接使用指针记录上一个节点&#xff0c;同时更新…

KAFKA第二课之生产者(面试重点)

生产者学习 1.1 生产者消息发送流程 在消息发送的过程中&#xff0c;涉及到了两个线程——main线程和Sender线程。在main线程中创建了一个双端队列RecordAccumulator。main线程将消息发送给RecordAccumulator&#xff0c;Sender线程不断从RecordAccumulator中拉取消息发送到K…

03-基础入门-搭建安全拓展

基础入门-搭建安全拓展 1、涉及的知识点2、常见的问题3、web权限的设置4、演示案例-环境搭建&#xff08;1&#xff09;PHPinfo&#xff08;2&#xff09;wordpress&#xff08;3&#xff09;win7虚拟机上使用iis搭建网站&#xff08;4&#xff09;Windows Server 2003配置WEB站…