赞
踩
官方给出的回答是,它是一个高性能、列式存储、基于SQL、供在线分析处理的数据库管理系统
当然这边不得不提到OLAP(Online Analytical Processing)
概念的出现
随着大数据的风吹起,传统数据库在险中求生,新生的大数据分析引擎如雨后春笋般出现。
为了更好地利用数据,发挥数据的价值,让静默的数据会"说话",就需要分析引擎具备能够快速读取、分析、产出统计结果的能力,那么大数据量、快速实时查询此外还需要尽可能低成本使用成为市场需求。
与ClickHouse类似的市场产品有
:
那么ClickHouse有哪些历史,在市场竞争力上又有哪些优劣势呢?
ClickHouse是由俄罗斯搜索引擎巨头Yandex
内部开发的数据存储和分析系统。
该项目始于2008年
,其初始设计目标是为了支持Yandex Metrica产品,这是一个Web流量分析服务,需要处理海量数据并实现快速的在线分析查询(OLAP)。随着技术的发展和完善,ClickHouse逐渐成为一个独立且功能强大的列式数据库管理系统。
在2016年6月15日
,Yandex正式将ClickHouse作为开源项目对外发布
截至2024年,ClickHouse持续保持快速迭代,定期发布新版本,它已成为OLAP领域的重要参与者之一,与Apache Druid、Vertica、Greenplum以及其他现代数据仓库解决方案共同竞争市场,并在许多实际应用案例中展现出卓越的性价比和稳定性。
正如官网简单介绍的突出几点
优势1:高性能查询处理
特别适合大数据分析场景下的实时或近实时 OLAP 查询。它通过列式存储、向量化执行引擎和高度优化的数据压缩算法,能够快速处理大规模数据集。
优势2:列式存储与高效压缩
数据按列存储,使得在进行聚合计算时仅需读取相关列,大大减少了I/O成本,并且同列数据类型相同的情况下可以实现高倍率的压缩,进一步减少存储空间和提升读取速度。
优势3:分布式架构
分布式无主架构,支持灵活的扩缩容,成为企业生产的重要考量之一。
优势4:SQL兼容性
相较于传统大数据引擎,对SQL的兼容性不足上,ClickHouse 提供了丰富的 SQL 支持,积极与SpringBoot大框架靠拢,能够像查询传统数据库那样查询ClickHouse,降低技术门槛,更快地获得市场的认可。此外针对数据分析需求增加了许多高级特性,比如窗口函数、数组和其他复杂数据类型的支持,以及用于数据预处理的内置聚合函数和表引擎。
优势5:开源
ClickHouse 是活跃的开源项目,允许用户根据具体业务需求自由定制,这绝对是中小型企业生产选型的重要考量之一。
对于它的不足也是情理之中
劣势1:不支持事务
它无法做到传统数据库的事务特性,它更适合那些对最终一致性容忍度较高的分析型工作负载。
劣势2:DML的效率不高
正如它的自我介绍,它是适用于OLAP的引擎,数据分析引擎主要面向大数据读进行优化,对于写入、更新、删除的DML操作生效效率都是相对偏低的,不适合于大数据量实时写入的场景。
劣势3:管理、监控与安全性功能不足
总体发展的时间还不长,对于外围的管理、监控与安全性上面稍显不足,但是相信用的人、贡献的人越多,会发展地越来越完善。
OLAP引擎那么多,列式存储的数据库也很多,到底为什么它的受众如此之多?Github star 33.3K
核心的两个原因体现在了官网:查询快 & 占用小
查询快是OLAP技术选型首要考虑的点,不快怎么能做在线实时分析呢?查询快取决于几点:
列式存储:ClickHouse采用了列式存储格式,相比于传统的行式存储,列式存储在进行大数据分析时具有显著优势。当查询仅涉及部分列时,只需要读取相关的列数据,大大减少了磁盘I/O和内存带宽消耗
向量化执行引擎:ClickHouse使用向量化执行模型,在处理查询时一次性操作一整批数据,更充分地利用CPU缓存,提高计算效率。
高度优化的算法与代码库:由C++编写,代码经过深度优化以追求极致性能,包括但不限于高效的压缩算法、索引结构以及函数库等。
稀疏索引与并发处理能力:支持稀疏索引,采用MPP架构
SQL解析,查询优化,预聚合表和物化视图
占用小则是另一个重要的点。对于传统的存储,冷数据尝尝放起来备份不被使用,占用很多存储介质,一旦要用就还需要经历痛苦的恢复,这也是历史数据用不起来,数据分析受限的点。相比市面其他的分析引擎,它可以在有限的存储内放下更多的数据,数据分析范围扩大,分析结果的准确性和全面性一定会有所提升,那就在有限空间带来更大的价值。占用小则取决于:
关于列式和行式DB的写入性能的比对官网有详细的数据,可以移步了解点这里>>
如果喜欢我的文章的话,可以去GitHub上给一个免费的关注吗?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。