最近的工作中接触到CK,一开始还不知道CK是什么,通过查询才知道CK是ClickHouse,ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库,是一款开源的面向列的分布式数据库管理系统,以其卓越的性能和强大的数据分析能力在大数据领域备受瞩目。
列式存储
列式存储是一种数据存储结构,也称为列存储或列式数据库。它将数据按列存储而非传统的按行存储。每一列的数据类型相同或者相似。
例如表结果如下:
姓名 | 成绩 | 排名 |
李磊 | 146 | 1 |
赵刚 | 130 | 2 |
王淼 | 90 | 3 |
采用行式存储时,数据在磁盘上的组织结构为:
采用列式存储时,数据在磁盘上的组织结构为:
列存储在写入效率、保证数据完整性上都不如行存储,它的优势是在读取过程,不会产生冗余数据,这对数据完整性要求不高的大数据处理领域,比如互联网,犹为重要。
ClickHouse 的主要特点
高性能
- 快速的查询响应:能够在秒级甚至亚秒级时间内处理大规模数据的查询请求。
- 高效的数据压缩:采用了多种数据压缩算法,大大减少了数据存储占用的空间,同时提高了数据读取的速度。
- 向量化执行引擎:可以并行处理大量数据,充分利用现代硬件的优势,提高执行效率。
可扩展性
- 分布式架构:支持水平扩展,可以轻松地添加更多的服务器节点来处理不断增长的数据量和查询负载。
- 数据分片:将数据分散存储在不同的节点上,提高数据的可用性和可靠性。
丰富的数据分析功能
- 支持多种数据类型:包括数值、字符串、日期时间等常见数据类型,以及数组、嵌套结构等复杂数据类型。
- 强大的聚合函数:提供了丰富的聚合函数,如求和、平均值、最大值、最小值等,方便进行数据分析和统计。
- 支持 SQL 语言:用户可以使用熟悉的 SQL 语句进行数据查询和分析,降低了学习成本。
场景支持
ClickHouse的数据处理速度非常快,尤其适合于包含复杂分析查询的场景
适合场景
- 日志和事件数据:由于ClickHouse的处理速度,它可以作为实时数据分析的工具。
- 监控和报警系统:ClickHouse可以用于快速查询和显示监控数据。
- 交互式查询:由于其快速的查询速度,ClickHouse可以作为数据科学家进行交互式探索的工具。
- 数据仓库:ClickHouse可以作为数据仓库的一种替代方法,用于快速查询和分析。
不适合场景
- 事务处理:ClickHouse不支持事务处理。
- 强一致性:ClickHouse不保证数据的强一致性。
- 低延迟的更新:ClickHouse不适合于需要实时或近实时更新数据的场景。
- 高度模式化的数据:ClickHouse对模式的灵活性不如关系型数据库。
小结
总之,ClickHouse 是一款功能强大的数据库管理系统,适用于大规模数据分析和处理场景。通过了解其特点和基础知识,用户可以更好地利用 ClickHouse 来满足自己的数据分析需求