![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Clickhouse
文章平均质量分 77
Ahxing1985
这个作者很懒,什么都没留下…
展开
-
OLAP与数据仓库和数据湖
本文阐述了OLAP、数据仓库和数据湖方面的基础知识以及相关论文。同时记录了我如何通过ChatGPT以及类似产品(通义千问、文心一言)来学习知识的。通过这个过程让我对于用AI科技提升学习和工作效率有了实践经验和切身感受。原创 2024-03-17 22:43:50 · 1006 阅读 · 0 评论 -
关于ClickHouse的一些小技巧
ClickHouse的一些有用的功能和小技巧。原创 2024-03-17 22:38:45 · 352 阅读 · 0 评论 -
ClickHouse中“大列”造成的JOIN的内存超限问题
大列”是指单行数据量非常大的列,通常是100KiB以上。这样的列会导致JOIN(通常LEFT JOIN 和 INNER JOIN)出现内存超限的异常。本文讨论如何解决这个问题。原创 2024-01-21 18:55:10 · 1425 阅读 · 0 评论 -
ClickHouse中JOIN算法选择逻辑以及auto选项
Setting配置`join_algorithm`用于指定JOIN算法,它可以设置为多个值,例如join_algorithm='direct,hash,partial_merge'。在选择最终JOIN算法的时候是根据setting配置`join_algorithm`, 以及JOIN操作的Strictness、Kind和参与JOIN的右表表引擎类型共同决定。原创 2024-01-08 17:56:07 · 1035 阅读 · 0 评论 -
ClickHouse的Join算法
即使在ClickHouse中对超大的数据表做JOIN连接运算,我们也可以通过精心选择连接算法和调优相关设置,从而得到非常良好的性能。虽然可以让ClickHouse更加聪明地帮用户做选择,但是目前效果毕竟有限,而且真正高级的性能调优是离不开人的,因为人能掌握更全面的情况,以及实际业务特点和需求。本文可以帮助你理解ClickHouse内部连接的工作方式,从而帮助你做相关的优化。原创 2023-09-10 21:57:57 · 1085 阅读 · 0 评论 -
ClickHouse的WITH-ALIAS是如何实现的
表达式别名比子查询别名在处理上要复杂的多,因为表达式本身的处理就很复杂。别名机制可以减少SQL查询的大小,但是展开后的AST树的大小不会缩小。虽然如此,却可以在访问者模式的某些Visitor的处理过程中减少Visitor访问的工作量。原创 2023-09-10 21:39:15 · 555 阅读 · 0 评论 -
常用ClickHouse问题诊断查询
Clickhouse是一个性能强大的OLAP数据库,在实际使用中会遇到各种各样的问题,同时也有很多可以调优的地方。本文阐述如何对ClickHouse做问题诊断和性能分析。原创 2023-09-10 21:19:40 · 750 阅读 · 0 评论 -
MergeTree表的三种格式
MergeTree表引擎有三种格式:Compact、Wide和In-memory,前两个为主要格式。具体区别是:- Compact - 所有的列的数据放在一个文件;- Wide - 每个列的数据放在一个文件;- In-memory - 数据存在内存中,不在磁盘上原创 2023-09-10 21:06:38 · 202 阅读 · 0 评论 -
Clickhouse上用Order By保证绝对正确结果但代价是性能
在Clickhouse中会尽量发挥多核的优势,一个查询会分拆成多个工作任务分发给多个线程。这也会导致数据的处理顺序是不确定的,因此像any()这样的聚合函数就不能保证绝对正确的结果。本文就是探讨这个问题的解决办法以及代价。原创 2022-03-25 16:49:20 · 2179 阅读 · 2 评论 -
Clickhouse执行处理查询语句(包括DDL,DML)的过程
Clickhouse 处理查询的过程,从解析,到构建Query Plan,到生成Query Pipeline,最终由Executor执行Query Pipeline中每一个processor。原创 2022-02-27 21:08:19 · 1364 阅读 · 0 评论 -
Window函数
大数据分析中的窗口函数(Window function),在主流的数据库中都已经或多或少支持了。原创 2022-02-21 18:11:02 · 1453 阅读 · 0 评论 -
实现特定场景下高性能的HashMap
C++标准库的某些场景下的效率问题在下面的场景中,C++标准库的unordered_map、map、multiset、unordered_multiset效率并不高。分组重复次数计数有一亿条记录,记录有两列:group_id,attribute,并且记录已经按照group_id排了序。要求计数每个group_id对应的行的attribute值的重复次数,生成一个新的结果列。例如:group_idattribute结果G001A1G001A2G001B1原创 2022-01-25 16:26:59 · 338 阅读 · 0 评论 -
设置max_block_size对CH函数执行的影响
# 设置max_block_size对CH函数执行的影响max_block_size设置对某些CH函数的执行结果是有影响的。## 函数接收参数的形式是columnCH处理数据的基本单位是block,block顾名思义是数据表中的“一块”,即行的子集+列的子集。而函数接收参数的形式是column,column可以看作是仅有“一列”的block,而column里面的数据是数据表中该列的一部分数据。## 不同的参数对应不同的column一般CH函数中的参数有几种:1. 常数 例如 `se..原创 2022-01-11 21:49:56 · 445 阅读 · 0 评论 -
Clickhouse的MergeTree表引擎存储结构
MergeTree存储的文件结构一张数据表被分成几个data part,每个data part对应文件系统中的一个目录。通过以下SQL可以查询data parts的信息。select table, name, path, active, * from `system`.parts where table = '<table name>' <data part> 是一个目录,里面的文件结构如下:-<data part 1>○ checksums.txt.原创 2021-12-29 11:26:19 · 534 阅读 · 0 评论 -
Windows系统上搭建Clickhouse开发环境
总体思路微软的开发IDE是很棒的,有两种:Visual Studio 和 VS Code,一个重量级,一个轻量级。近年来VS Code越来越受欢迎,因为她的轻量级和丰富的插件,更重要的是VS Code消耗资源更少,打开大项目的时候不会崩溃。因此选用VS Code。Clickhouse只能在Linux和MacOS上编译和运行,而开发机器是Windows 10系统,因此需要虚拟机或者WSL。WSL是Windows subsystem Linux,Windows 10原生支持,因此采用WSL。调试用l原创 2021-12-20 00:02:24 · 3237 阅读 · 0 评论