Clickhouse 高性能列式数据库
目录
警告
本文最后更新于 2020-09-21,文中内容可能已过时。
OLAP方案与其他常见方案(如OLTP或Key-Value访问)有很大不同。所以,如果你想获得不错的表现,尝试使用OLTP或Key-ValueDB来处理分析查询是没有意义的。例如,如果您尝试使用MongoDB或Elliptics进行分析,与OLAP数据库相比,您的性能会很差。
面向列的数据库更适合于OLAP方案(对于大多数查询,处理速度至少提高了100倍),原因如下:
- 对于I/O, 进行碎片化存储
- 对于CPU由于执行查询需要处理大量的行,因此它有助于为整个向量调度所有操作,而不是单独的行,或者实现查询引擎,这样就几乎没有调度成本。如果你不这样做,任何半象限的磁盘子系统(half-decent disk subsystem),查询解释器不可避免地中断(阻塞)CPU。将数据存储在列中并在可能的情况下按列处理是有意义的。
- 对于分析查询,只需要读取少量的列。在面向列的数据库中,您只能读取所需的数据。例如,如果您需要100列中的5列,则I/O可能会减少20倍。
- 由于数据是以数据包的形式读取的,因此压缩比较容易。列中的数据也更容易压缩。这进一步减少了I/O量。
- 由于减少的I/O,更多的数据适合在系统缓存中。
安装
使用
高性能技巧
参考链接
- 什么是ClickHouse
- ClickHouse到底是什么?凭啥这么牛逼!
- 行式和列式存储说明以及OLAP特点介绍
- clickhouse的安装和使用(单机+集群)
- ClickHouse深度解析
- ClickHouse - LowCardinality 数据类型的神秘之旅
- 深入理解ClickHouse-本地表和分布式表
- ClickHouse - 多卷存储扩大存储容量(生产环境必备)
- 深入理解ClickHouse-本地表和分布式表
- ClickHouse 新特性 Live View 体验
- ClickHouse - 创建漂亮的 Grafana 仪表盘
- clickhouse的索引结构和查询优化
- A MAGICAL MYSTERY TOUR OF THE LOWCARDINALITY DATA TYPE
- Use of LowCardinality and/or INDEX to speed up query performance #4796
- Building Infrastructure for ClickHouse Performance
- Should You Use ClickHouse as a Main Operational Database?
- https://www.slideshare.net/Altinity/clickhouse-query-performance-tips-and-tricks-by-robert-hodges-altinity-ceo
- https://blog.csdn.net/zhangpeterx/article/details/96494877
- CLICKHOUSE-COPIER IN PRACTICE
相关内容
支付宝
微信