ClickHouse概述

ClickHouse概述


文章目录

  • ClickHouse概述
    • ClickHouse是什么
    • ClickHouse快的理由
    • 什么是OLAP
    • ClickHouse的特点
      • 列式存储
      • DBMS 的功能
      • 多样化引擎
      • 高吞吐写入能力
      • 数据分区与线程级并行
    • ClickHouse的应用
      • 合适场景
      • 不适合场景


ClickHouse是什么

ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++ 语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。

ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jAevZhR5-1676970533485)(1.png)]

  • ClickHouse是一个完全的列式数据库管理系统,允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展简单方便高可靠性,容错

  • ClickHouse在大数据领域没有走 Hadoop 生态,而是采用 Local attached storage 作为存储,这样整个 IO 可能就没有 Hadoop 那一套的局限。

  • ClickHouse的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持 shard + replication 这种解决方案。它还提供了一些 SQL 直接接口,有比较丰富的原生 client。

  • 还有就是ClickHouse比较快。

一些发展历程的了解:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fxhdDit6-1676970533486)(2.png)]

同时,ClickHouse的社区是开源的,增长速度很快,社区也很活跃。

ClickHouse快的理由

上面收到了一点就是ClickHouse比较快,下方是官方的压测

下面是100M数据集的跑分结果:ClickHouse比Vertia快约5倍,比Hive快279倍,比My SQL 快801倍;虽然对不同的SQL查询,结果不完全一样,但是基本趋势是一致的。ClickHouse跑分有多块?举个例子:ClickHouse 1秒,Vertica 5.42秒,Hive 279秒;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oD1s7tU0-1676970533487)(3.png)]

下面的一些图表(来源某数据库对比网站),也可以证明ClickHouse在性能上的强大优势

  • 单表查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L1n2oY7D-1676970533488)(4.png)]

  • 关联查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-begj1RLX-1676970533489)(5.png)]

该网站的对比结论:ClickHouse 和很多 OLAP 数据库一样,单表查询速度优于关联查询,而且 ClickHouse的两者差距更为明显。

什么是OLAP

  • 百度百科

联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。其中F是快速性(Fast),指系统能在数秒内对用户的多数分析要求做出反应;A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部 分,并以用户所希望的方式给出报告;M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;I是信息性(Information),指能及时获得信息,并且管理大容量信息

ClickHouse的特点

列式存储

采用列式储存的好处:

  • 对于列的聚合,计数,求和等统计操作原因优于行式存储。

  • 由于某一列的数据类型都是相同的,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重。

  • 由于数据压缩比更好,一方面节省了磁盘空间,另一方面对于 cache 也有了更大的发挥空间

DBMS 的功能

几乎覆盖了标准SQL 的大部分语法,包括 DDL 和 DML,以及配套的各种函数,用户管理及权限管理,数据的备份与恢复。

多样化引擎

ClickHouse 和 MySQL 类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同的存储引擎。目前包括合并树、日志、接口和其他四大类 20 多种引擎。

高吞吐写入能力

  • ClickHouse 采用类LSM Tree 的结构,数据写入后定期在后台Compaction。

  • 通过类LSM tree 的结构,ClickHouse 在数据导入时全部是顺序 append 写,写入后数据段不可更改,在后台compaction 时也是多个段merge sort 后顺序写回磁盘。

  • 顺序写的特性,充分利用了磁盘的吞吐能力,即便在 HDD 上也有着优异的写入性能。

官方公开 benchmark 测试显示能够达到 50MB-200MB/s 的写入吞吐能力,按照每行100Byte 估算,大约相当于 50W-200W 条/s 的写入速度。

数据分区与线程级并行

ClickHouse 将数据划分为多个 partition,每个 partition 再进一步划分为多个 index granularity(索引粒度),然后通过多个CPU 核心分别处理其中的一部分来实现并行数据处理。在这种设计下,单条 Query 就能利用整机所有CPU。极致的并行处理能力,极大的降低了查询延时。

所以,ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端就是对于单条查询使用多 cpu,就不利于同时并发多条查询。所以对于高 qps 的查询业务, ClickHouse 并不是强项。

ClickHouse的应用

合适场景

ClickHouse属于OLAP,同时兼具SQL大部分语法,速度快,所以ClickHouse非常适用于BI领域,除此之外,还可以广泛应用于广告流量、Web、App流量、电信、金融、电子商务、信息安全、网络游戏、物联网等众多其他领域

不适合场景

ClickHouse作为一款高性能OLAP数据库,虽然足够优秀,但也不是万能的。我们不应该把它用于任何OLTP事务性操作的场景,因为它有以下几点不足。

  • 不支持事务。

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

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

这些不足之处并不能视为ClickHouse的缺点,事实上其他同类高性能的OLAP数据库同样也不擅长上述的这些方面。因为对于一款OLAP数据库而言,上述这些能力并不是重点,只能说这是为了极致查询性能所做的权衡。

全文结束!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/771419.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Appium自动化测试框架3

滑动与拖拽 swipe 滑动时间的长短会影响最后的结果的 是有一定误差的 from appium import webdriver import time # 启动一个字典 包装相应的启动参数 desired_caps dict() # 平台的名字,安卓还是IOS 大小写无所谓 desired_caps[platformName] Android # 平台的…

【电源专题】DC-DC电路设计为什么一般只考虑电感DCR而不考虑Q值呢?

什么是电感器(线圈)的Q值? Q值是表示电感器质量的参数。Q是Quality Factor(质量系数)的简称。线圈会顺利流过直流电流,但会对交流电流产生电阻。这称为感抗,交流频率越高则越大。 此外,绕组虽是导体…

JAVA每日作业day7.4

ok了家人们今天学习了Date类和simpleDateformat类,话不多说我们一起看看吧 一.Date类 类 java.util.Date 表示特定的瞬间 ( 日期和时间 ) ,精确到毫秒。 1.2 Date类的构造方法 public Date(): 用来创建当前系统时间对应的日期对象。 public Date(long …

关于MCU-Cortex M7的存储结构(flash与SRAM)

关于flash的存储结构 中断向量表放置在flash的起始地址,privileged functions 特权模式下执行的指令 .isr_vector section的目的是把中断向量表放在 0x08000000 这个特定的内存位置,确保中断向量表占用的内存空间大小是 0x298 字节,将所有包…

深入理解计算机系统 CSAPP 家庭作业8.22

书本知识够你写出答案,但是如果你想验证你写的答案,就要一些额外的东西.这本书很多题目都是如此 /** mysystem.c*/ #include <stdio.h> #include "csapp.h"int mysystem(char* command) {pid_t pid;int status;if ((pid Fork()) 0) {/*这里是关键用子程序去…

ansible执行任务时,报错/usr/bin/env node没有文件或目录。

报错如图&#xff1a; 解决&#xff1a;添加软链即可 sudo ln -s /home/app/node-v18.20.3/bin/node /usr/bin/node

C语言入门-结构体6

结构体入门 编写程序&#xff0c;用struct分别表示平面上的点和平面上的矩形。 #include <stdio.h> int main() { struct point {int x; int y;}; struct point p1 {1, 2}; printf(“(%d, %d)\n”, p1.x, p1.y); struct rectangle {struct point p1;struct point p2;…

电脑回收站删除的文件怎么恢复?5个恢复方法详解汇总!

电脑回收站删除的文件怎么恢复&#xff1f;在我们日常使用电脑的过程中&#xff0c;难免会遇到误删文件的情况。一旦发现自己误删文件了&#xff0c;先不要着急&#xff0c;还是有很多方法可以找回的。市面上还是有很多好用的文件恢复软件可以使用&#xff0c;具体介绍如下。 本…

使用 pyecharts 渲染成图片程序报错: echarts is not defined问题处理

背景 之前写的使用 snapshot_selenium 来保存pyeacharts渲染成的网页截图&#xff0c;可以正常运行。程序搁置了半年&#xff0c;不知道动了电脑哪里&#xff0c;再次运行程序时&#xff0c;程序开始报错&#xff1a;JavascriptException: javascript error: echarts is not d…

土壤养分化验仪:农业生态与可持续发展

随着现代农业技术的不断进步&#xff0c;土壤养分化验仪在农业生产中扮演着越来越重要的角色。这款高科技设备以其高精度、高效率的特点&#xff0c;为农业生态与可持续发展提供了强有力的支撑。 一、农田土壤监测与管理 农田是土壤养分化验仪最主要的应用场所。通过对农田土壤…

软件测试面试200问(含答案+文档)

Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自…

三菱plc gxwork3 0X121201F 报错;三菱标签区域的保留容量不足;

如果占用过多把r文件寄存器的地址范围改小&#xff0c;一般文件寄存器的地址r0-8000足够了

CLAM用于弱监督WSI分析

计算病理学&#xff08;computational pathology&#xff09;下的深度学习方法需要手动注释大型 WSI 数据集&#xff0c;并且通常存在领域适应性和可解释性较差的问题。作者报告了一种可解释的弱监督深度学习方法&#xff0c;只需要WSI级标签。将该方法命名为聚类约束注意力多实…

uniapp自定义富文本现实组件(支持查看和收起)

废话不多说上代码 CollapseText.vue <template><view v-if"descr"><scroll-view class"collapse-text" :style"{maxHeight: computedMaxHeight}"><!-- <slot></slot> --><rich-text :nodes"descr&q…

【双出版加持!录用率高!见刊、检索更稳定!】第六届结构抗震与土木工程研究国际学术会议 (ICSSCER 2024,8月16-18)

随着社会的发展&#xff0c;城市规模的不断扩大&#xff0c;建筑形态也趋于多样化和复杂化&#xff0c;建筑结构形式逐渐由规则简单向高层、大跨甚至特殊复杂的方向发展。而房屋建筑是人们正常生活和生产活动的基本场所&#xff0c;房屋建筑结构的安全必须得到充分保障。但是&a…

揭秘品牌成功秘诀:品牌营销策略的核心要素大公开

品牌营销作为企业战略中至关重要的一环&#xff0c;其核心是建立和传播品牌的独特魅力&#xff0c;使其在消费者心目中占据重要位置。 一个成功的品牌营销策略能够提升品牌的知名度和影响力&#xff0c;带来持续的销售和忠诚客户群体。 在当今竞争激烈的市场环境中&#xff0…

初阶数据结构之二叉树

那么本篇文是初阶数据结构这个系列的最后一篇文章&#xff0c;那么闲话少叙&#xff0c;我们直接进入正题 在讲二叉树的一些之前知识点之前&#xff0c;我先给大家送个小礼物哈 手搓二叉树 typedef int BTDataType ; typedef struct BinaryTreeNode { BTDataType _data …

Mybatis-Plus eq ne gt lt ge le分别代表含义 条件构造器

一、条件构造器函数列表 函数名说明说明/例子allEq入参都满足条件例&#xff1a;allEq({"id": 1, "name": "张三", "age": null})--->id 1 and name 张三 and age is nulleq等于例&#xff1a;eq("name", "张三…

dc-3靶机渗透

环境准备 dc-3靶机下载链接&#xff1a; https://download.vulnhub.com/dc/DC-3-2.zip 启动靶机遇到的问题解决文章在下面 http://t.csdnimg.cn/zLQAI kali最新版 dc-3靶机 两台机器都在vmware上运行 网络设置NAT模式 渗透过程 信息收集 首先使用ifconfig获取kali的IP地址 可…

day04-组织架构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.组织架构-树组件应用树形组件-用层级结构展示信息&#xff0c;可展开或折叠。 2.组织架构-树组件自定义结构3.组织架构-获取组织架构数据4.组织架构-递归转化树形…