Clickhouse优缺点及性能情况_byds520的博客-CSDN博客_clickhouse


本站和网页 https://blog.csdn.net/lovewebeye/article/details/102739939 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Clickhouse优缺点及性能情况_byds520的博客-CSDN博客_clickhouse
Clickhouse优缺点及性能情况
byds520
于 2019-10-25 13:13:52 发布
68435
收藏
163
分类专栏:
Java后端开发
clickhouse
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lovewebeye/article/details/102739939
版权
Java后端开发
同时被 2 个专栏收录
30 篇文章
0 订阅
订阅专栏
clickhouse
1 篇文章
0 订阅
订阅专栏
优点:
1,为了高效的使用CPU,数据不仅仅按列存储,同时还按向量进行处理;
2,数据压缩空间大,减少IO;处理单查询高吞吐量每台服务器每秒最多数十亿行;
3,索引非B树结构,不需要满足最左原则;只要过滤条件在索引列中包含即可;即使在使用的数据不在索引中,由于各种并行处理机制ClickHouse全表扫描的速度也很快;
4,写入速度非常快,50-200M/s,对于大量的数据更新非常适用。
缺点:
1,不支持事务,不支持真正的删除/更新;
2,不支持高并发,官方建议qps为100,可以通过修改配置文件增加连接数,但是在服务器足够好的情况下;
3,SQL满足日常使用80%以上的语法,join写法比较特殊;最新版已支持类似SQL的join,但性能不好;
4,尽量做1000条以上批量的写入,避免逐行insert或小批量的insert,update,delete操作,因为ClickHouse底层会不断的做异步的数据合并,会影响查询性能,这个在做实时数据写入的时候要尽量避开;
5,Clickhouse快是因为采用了并行处理机制,即使一个查询,也会用服务器一半的CPU去执行,所以ClickHouse不能支持高并发的使用场景,默认单查询使用CPU核数为服务器核数的一半,安装时会自动识别服务器核数,可以通过配置文件修改该参数。
全量数据导入:数据导入临时表 -> 导入完成后,将原表改名为tmp1 -> 将临时表改名为正式表 -> 删除原表
增量数据导入: 增量数据导入临时表 -> 将原数据除增量外的也导入临时表 -> 导入完成后,将原表改名为tmp1-> 将临时表改成正式表-> 删除原数据表
相关优化:
1,关闭虚拟内存,物理内存和虚拟内存的数据交换,会导致查询变慢。
2,为每一个账户添加join_use_nulls配置,左表中的一条记录在右表中不存在,右表的相应字段会返回该字段相应数据类型的默认值,而不是标准SQL中的Null值。
3,JOIN操作时一定要把数据量小的表放在右边,ClickHouse中无论是Left Join 、Right Join还是Inner Join永远都是拿着右表中的每一条记录到左表中查找该记录是否存在,所以右表必须是小表。
4,批量写入数据时,必须控制每个批次的数据中涉及到的分区的数量,在写入之前最好对需要导入的数据进行排序。无序的数据或者涉及的分区太多,会导致ClickHouse无法及时对新导入的数据进行合并,从而影响查询性能。
5,尽量减少JOIN时的左右表的数据量,必要时可以提前对某张表进行聚合操作,减少数据条数。有些时候,先GROUP BY再JOIN比先JOIN再GROUP BY查询时间更短。
6,ClickHouse的分布式表性能性价比不如物理表高,建表分区字段值不宜过多,防止数据导入过程磁盘可能会被打满。
7,CPU一般在50%左右会出现查询波动,达到70%会出现大范围的查询超时,CPU是最关键的指标,要非常关注。
性能情况
1,单个查询吞吐量:如果数据被放置在page cache中,则一个不太复杂的查询在单个服务器上大约能够以2-10GB/s(未压缩)的速度进行处理(对于简单的查询,速度可以达到30GB/s)。如果数据没有在page cache中的话,那么速度将取决于你的磁盘系统和数据的压缩率。例如,如果一个磁盘允许以400MB/s的速度读取数据,并且数据压缩率是3,则数据的处理速度为1.2GB/s。这意味着,如果你是在提取一个10字节的列,那么它的处理速度大约是1-2亿行每秒。对于分布式处理,处理速度几乎是线性扩展的,但这受限于聚合或排序的结果不是那么大的情况下。
2,处理短查询的延时时间:数据被page cache缓存的情况下,它的延迟应该小于50毫秒(最佳情况下应该小于10毫秒)。 否则,延迟取决于数据的查找次数。延迟可以通过以下公式计算得知: 查找时间(10 ms) * 查询的列的数量 * 查询的数据块的数量。
3,处理大量短查询:ClickHouse可以在单个服务器上每秒处理数百个查询(在最佳的情况下最多可以处理数千个)。但是由于这不适用于分析型场景。建议每秒最多查询100次。
4,数据写入性能:建议每次写入不少于1000行的批量写入,或每秒不超过一个写入请求。当使用tab-separated格式将一份数据写入到MergeTree表中时,写入速度大约为50到200MB/s。如果您写入的数据每行为1Kb,那么写入的速度为50,000到200,000行每秒。如果您的行更小,那么写入速度将更高。为了提高写入性能,您可以使用多个INSERT进行并行写入,这将带来线性的性能提升。
count: 千万级别,500毫秒,1亿 800毫秒  2亿 900毫秒 3亿 1.1秒 group: 百万级别 200毫米,千万 1秒,1亿 10秒,2亿 20秒,3亿 30秒 join:千万-10万 600 毫秒, 千万 -百万:10秒,千万-千万 150秒
ClickHouse并非无所不能,查询语句需要不断的调优,可能与查询条件有关,不同的查询条件表是左join还是右join也是很有讲究的。
其他补充:
1,MySQL单条SQL是单线程的,只能跑满一个core,ClickHouse相反,有多少CPU,吃多少资源,所以飞快; 2,ClickHouse不支持事务,不存在隔离级别。ClickHouse的定位是分析性数据库,而不是严格的关系型数据库。 3,IO方面,MySQL是行存储,ClickHouse是列存储,后者在count()这类操作天然有优势,同时,在IO方面,MySQL需要大量随机IO,ClickHouse基本是顺序IO。 有人可能觉得上面的数据导入的时候,数据肯定缓存在内存里了,这个的确,但是ClickHouse基本上是顺序IO。对IO基本没有太高要求,当然,磁盘越快,上层处理越快,但是99%的情况是,CPU先跑满了(数据库里太少见了,大多数都是IO不够用)。
byds520
关注
关注
29
点赞
163
收藏
打赏
10
评论
Clickhouse优缺点及性能情况
优点:1,为了高效的使用CPU,数据不仅仅按列存储,同时还按向量进行处理;2,数据压缩空间大,减少IO;处理单查询高吞吐量每台服务器每秒最多数十亿行;3,索引非B树结构,不需要满足最左原则;只要过滤条件在索引列中包含即可;即使在使用的数据不在索引中,由于各种并行处理机制ClickHouse全表扫描的速度也很快;4,写入速度非常快,50-200M/s,对于大量的数据更新非常适用。...
复制链接
扫一扫
专栏目录
大数据ClickHouse进阶(二十四):ClickHouse权限管理
Lansonli(蓝深李)的博客
11-09
312
数据权限是整个权限体系中的第三层防护,决定了一个用户能够看到什么数据。当客户端连入ClickHouse之后,可以进一步限制某个用户数据库和字典的访问权限,可以通过和标签进行设置,如果不进行任何定义则表示不进行限制。以上标签中database_name是数据库名称,table_name是表名称,而filter则是权限过滤的关键,等同于定义了一条where条件,支持组合条件。访问权限是整个权限体系的第一层防护,可以分为两类权限。
【ClickHouse】-01.万字带你快速入门使用CK
最新发布
Pushkin.的博客
09-18
780
【ClickHouse】-01.万字带你快速入门使用CK
ClickHouse安装;ClickHouse引擎;ClickHouse数据类型;
ClickHouse Sql 案例操作
评论 10
您还未登录,请先
登录
后发表或查看评论
ES 不香吗,为啥还要 ClickHouse?
芋艿V
07-11
742
点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 8:55 更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2020 超神之路,很肝~中...
ClickHouse+aggr表原理和使用概述.doc
05-16
引入ClickHouse物化视图 (MATERIALIZED VIEW), 该物化视图在ClickHouse上的表现较为奇特, 具有数据入流后的自动刷新功能。
目前我们用它充当PipelineDB实时流聚合功能, 以此, 达到raw数据入流存储和聚合同步完成的目标。
Hbase、Kudu和ClickHouse横向对比V2.0
热门推荐
super_chenzhou
07-30
1万+
Hbase、Kudu和ClickHouse横向对比
我用一个实验,证实了Clickhouse的凶残性能
wujiandao的专栏
12-20
772
点击蓝色“有关SQL”关注我哟加个“星标”,天天与10000人一起快乐成长今天的主角,Clickhouse.简单介绍下,Clickhouse 是俄罗斯的一款 OLAP 分析引擎。它有两个...
ClickHouse的特征,性能,优点,缺点,应用场景以及什么是OLAP,Clickhouse的相关优化
Fresh_man888的博客
11-06
1756
1.什么是clickhouse:
提供了sql结构化的查询语言;
clickhouse是一款分布式数据库;
clickhouse可以存储海量数据;
因为clickhouse是分布式存储海量数据,所以解决了高并发的问题;
clickhouse中的数据底层是列式存储
clickhouse 不仅可以管理自己的数据,也可以读取别人的数据,比如masql , hdfs 网络和本地文件;
2.选择ClickHouse 的首要原因是它比较快,但其实它的技术没有什么新的地方,为什么会快?
1 C++.
简单说说ClickHouse的概述以及优势
RJ0024的博客
10-26
2214
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。由号称“俄罗斯 Google”的 Yandex 开发而来,在 2016 年开源,在计算引擎里算是一个后起之秀,在内存数据库领域号称是最快的。由于它有几倍于 GreenPlum 等引擎的性能优势,所以不少人都选择将其安装云服务器中使用。
ClickHouse 是一个列导向数据库,是原生的向量化执行引擎。它在大数据领域没有走 Hadoop 生态,而是采用 Local attached storage 作为存储,这样整个 IO 可
ClickHouse性能情况以及相关优化
lck_csdn的博客
04-18
2894
一、ClickHouse性能情况
主要分为4个方面
1、单个查询吞吐量
场景一:
如果数据被放置在page cache中,则一个不太复杂的查询在单个服务器上大约能够以
2-10GB/s(未压缩)的速度进行处理(对于简单的查询,速度可以达到30GB/s)
场景二:
如果数据没有在page cache中的话,那么速度将取决于你的磁盘系统和数据的压缩率
例如:
a、如果一个磁盘允许以400MB/s的速度读取数据,并且数据压缩率是3,则数据的处理速度为1.2GB/s。
b、这意味着,如果你是在提取一个10字节的
clickHouse分区和分片详解
aizhupo1314的博客
09-01
5774
文章目录1. 什么是clickhouse?2. 分区和分片2.1 分区2.2 分片3. 分区相关操作3.1 创建分区表3.2 删除分区3.3 查询分区信息4. 分片原理5. clickhouse连表查询5.1 Join 查询5.2 clickHouse单机JOIN实现5.3 clickHouse分布式JOIN实现5.4 数据预分布实现Colocate JOIN
1. 什么是clickhouse?
ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK, 与Hado
Clickhouse 查询性能分析
templarzq的专栏
02-04
1946
文章目录性能分析
性能分析
SQL如下:
SELECT `type`,event_time,query_duration_ms,read_rows,read_bytes,result_rows,result_bytes,
memory_usage,query,query_id,`exception`,
`ProfileEvents.Names`,toString(`ProfileEvents.Values`),toString(thread_ids)
from remote('ch0{1..9}-o
hive一次加载多个文件_Hive总结
weixin_39685392的博客
11-19
610
Hive总结一、Hive架构 1.架构图 2.Hive架构解析 1)用户接口 CLI:cli即shell命令。CLI最常用CLI启动的时候会同时启动 一个Hive 副本 Client: Client是Hive的客户端,用户连接HiveServer,并指出Hive Server 所在的节点以及在该节点启动它 WUI:WUI是通过浏览器启动Hive 2)元数据Hive将元数据存储在数据库中,...
ClickHouse与ES的优劣对比
damimi00的博客
08-05
6019
优点:凝天小说网 https://www.2792.info
ClickHouse写入吞吐量大,单服务器日志写入量在50MB到200MB/s,每秒写入超过60w记录数,是ES的5倍以上。
查询速度快,官方宣称数据在pagecache中,单服务器查询速率大约在2-30GB/s;没在pagecache的情况下,查询速度取决于磁盘的读取速率和数据的压缩率。。
ClickHouse比ES服务器成本更低。一方面ClickHouse的数据压缩比比ES高,相同数据占用的磁盘空间只有ES的1/3到1/30,节省了磁盘空间.
ClickHouse安装和使用技巧
baymax_007的博客
08-09
1万+
一、简介
ClickHouse是“战斗民族”俄罗斯搜索巨头Yandex公司开源的一个极具"战斗力"的实时数据分析数据库,是面向 OLAP 的分布式列式DBMS。ClickHouse有一个简称"CK",与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,其特点:
列式存储数据库,数据压缩
关系型、支持SQL
分布式并行计算,把单机性能压榨到极限
高可用
数据量级在...
谈谈ClickHouse性能情况以及相关优化
大数据星球-浪尖
07-29
3264
ClickHouse性能情况主要分为4个方面1、单个查询吞吐量场景一:如果数据被放置在page cache中,则一个不太复杂的查询在单个服务器上大约能够以2-10GB/s(未压缩)的速度进...
ClickHouse替换MySQL作为数仓APP层
hzp666的博客
09-22
1970
一、ClickHouse 是什么?
二、业务问题
三、ClickHouse实践
四、遇到的坑
五、总结
一、ClickHouse 是什么?
ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)
我们首先理清一些基础概念
OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统
OLAP:是仓库型数据库,主要是读取数据,做复杂数据分析,侧重技术决策支持,提供直观简单的结果
..
漫谈Clickhouse Join
Aiky哇
06-24
825
随着公司业务的不断发展,不同业务线数据都有了大规模积累。在此基础上为了精细化运营,更好地服务客户,就需要通过积累的数据沉淀出各类实体标签,比如用户标签、帖子标签、基金标签。雪+系统应运而生,包括标签体系、个体画像、标签分群等主要功能模块。标签体系: 通过可视化界面,结合业务场景需求,创建并维护用户标签、内容标签、标的标签,构建完善的标签体系。标签是数据平台的基础,个体画像、用户分群、群体洞察、用户分析都依托于标签,作为标签的统一管理平台,满足各业务线对标签的数据需求。个体画像:以标签体系为基础,打造用户、标
ClickHouse 与 Hbase的对比
weixin_41655296的博客
05-19
6875
目录
1 ClickHouse与Hbase的基础
2 ClickHouse与HBase的架构对比
2.1 Hbase架构
​编辑2.2 ClickHouse的架构​编辑
3 基本操作对比
3.1 HBase
3.2 ClickHouse
4 数据查询操作
5 各维度对比
1 ClickHouse与Hbase的基础
hadoop生态圈技术繁多,HDFS主要用于保存底层数据。
Hbase是一款NoSQL也是Hadoop生态圈的核心组件,其具有海量的存储能力,优秀的随机读写...
clickhouse简介和性能测试
hochoy的博客
02-28
1万+
clickhouse使用文档:相对简洁的介绍了clickhouse的使用,对各种引擎做了简单介绍
clickhouse官网:clickhouse的权威官方网站
准备:在分布式clickhouse集群搭建好之后,进行建库建表,并导入数据并做性能测试。
clickhouse特点:
数据通过小批量Batch存储
支持高强度的写操作(数千行写入/每秒)
读数据量非常小
...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
byds520
CSDN认证博客专家
CSDN认证企业博客
码龄12年
暂无认证
96
原创
4万+
周排名
164万+
总排名
48万+
访问
等级
3638
积分
74
粉丝
179
获赞
68
评论
609
收藏
私信
关注
热门文章
Linux nohup、&、 2>&1是什么?
79065
Clickhouse优缺点及性能情况
68431
JAVA(-Xms,Xmx,Xmn-XX:newSize,-XX:MaxnewSize,-XX:PermSize,-XX:MaxPermSize)区别
37379
vim常用设置---(.vimrc详细配置)
29131
Idea开启Run DashBoard配置
26260
分类专栏
爱好
1篇
vue
4篇
mac
4篇
clickhouse
1篇
navicat
2篇
Java基础知识点
38篇
Java后端开发
30篇
Linux
18篇
算法
2篇
最新评论
锚点双向定位滚动功能-升级版(vue)
sunsets_:
内容滚动的时候,当前内容顶部显示不全;滚动不到最后面的菜单咋整啊
Linux nohup、&、 2>&1是什么?
csdnyky:
就相当于dup2的使用了
锚点双向定位滚动功能(Vue实现)
落花流雨:
无法实现锚点定位功能
Linux nohup、&、 2>&1是什么?
大刚测试开发实战:
正解
Linux nohup、&、 2>&1是什么?
voo00oov:
">file 2>&1" 和 "2>&1 >file" 这两者的作用不能等价的
">file 2>&1" 的作用是: 将命令行程序的错误输出和标准输出都输出到文件file中
"2>&1 >file" 的作用是: 将错误输出输出到控制台, 而正常的输出重定向到文件file中
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
信息备忘录
新的征程
图片<img>、链接<a>等去除referer标记
2021年3篇
2020年22篇
2019年12篇
2018年59篇
目录
目录
分类专栏
爱好
1篇
vue
4篇
mac
4篇
clickhouse
1篇
navicat
2篇
Java基础知识点
38篇
Java后端开发
30篇
Linux
18篇
算法
2篇
目录
评论 10
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
byds520
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值