本内容来自:https://gairuo.com
本内容来自:https://gairuo.com
ClickHouse 是一个用于联机分析处理(OLAP)的开源列式数据库。ClickHouse由俄罗斯第一大搜索引擎Yandex于2016年6月发布,开发语言为C++,ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS。 与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,查询性能非常好,使用之后会被它的性能折服
背景
ClickHouse 是由俄罗斯IT公司 Yandex 为 Yandex.Metrica网络分析服务开发的。ClickHouse允许分析实时更新的数据。该系统以高性能为目标。
项目是在2016年6月发布的Apache许可证下的开源软件。
Yandex.Tank负载测试工具使用ClickHouse。Yandex.Market使用ClickHouse来监控网站的可访问性和KPI。ClickHouse还在CERN的LHCb实验中实现了对100亿个事件的元数据进行存储和处理,每个事件有超过1000个属性,Tinkoff Bank使用ClickHouse作为项目的数据存储。
功能
Clickhouse DBMS 的主要功能是:
- 真正的列式数据库。 没有任何内容与值一起存储。例如,支持常量长度值,以避免将它们的长度“ number”存储在值的旁边。
- 线性可扩展性。 可以通过添加服务器来扩展集群。
- 容错性。 系统是一个分片集群,其中每个分片都是一组副本。ClickHouse使用异步多主复制。数据写入任何可用的副本,然后分发给所有剩余的副本。Zookeeper用于协调进程,但不涉及查询处理和执行。
- 能够存储和处理数PB的数据。
- SQL支持。 Clickhouse支持类似SQL的扩展语言,包括数组和嵌套数据结构、近似函数和URI函数,以及连接外部键值存储的可用性。
- 高性能
- 使用向量计算。数据不仅由列存储,而且由向量处理(一部分列)。这种方法可以实现高CPU性能。
- 支持采样和近似计算。
- 可以进行并行和分布式查询处理(包括JOIN)。
- 数据压缩。
- HDD优化。 该系统可以处理不适合内存的数据。
- 用于数据库(DB)连接的客户端。 数据库连接方式包括控制台客户端、HTTP API,或者各种编程语言的wrapper(可以用的有Python、PHP、NodeJS、Perl、Ruby与R语言)。ClickHouse也可以使用JDBC驱动。
特性
优点:
- 真正的列式数据库
- 数据压缩
- 数据的磁盘存储
- 多核并行处理
- 多服务器分布式处理(数据保存在不同的shard上,每一个shard都由一组用于容错的副本组成,可并行查询所有shard)
- 向量引擎(按列的一部分进行处理,高效实用CPU)
- 实时的数据更新(支持在表中定义主键,数据增量有序存储在mergeTree中)
- 索引(按照主键对数据进行排序,毫秒内完成对数据的查找)
- 适合在线查询
- 支持近似计算(允许牺牲精度的情况下低延迟查询)
- 支持数据复制和数据完整性(异步多主复制技术)
缺陷:
- 没有完整的事务支持
- 缺少高频率低延迟的修改或删除数据的能力
- 不适合通过其检索单行的点查询
- 联机事物处理
- 二进制数据或文件存储
- 键值对数据高效率访问请求
适用场景
常见的适用场景有:
- 日志数据行为分析
- 标签画像的分析
- 数据集市分层
- 广告系统和实时竞价广告
- 电商和金融行业
- 实时监控和遥感测量
- 商业智能
- 在线游戏
- 信息安全
- 所有的互联网场景
参考
- https://clickhouse.com/docs/en/intro/
- https://github.com/ClickHouse/ClickHouse
- https://mp.weixin.qq.com/s/RZak0Sxc6h8lV-AKBmiBhA
更新时间:2022-06-29 09:22:39
标签:大数据
数据库
大数据
clickhouse