ClickHouse是一个开源的面向列的联机分析处理(OLAP)数据库管理系统。
ClickHouse允许使用实时更新的SQL查询生成数据分析报告。该系统以高性能著称。它很简单,而且是开箱即用的。该项目于2016年6月在Apache2许可下作为开源软件发布。
ClickHouse是第一个与Sybase IQ、Vertica和Snowflake等专有数据库的性能和可伸缩性相匹配的开源SQL数据仓库。它包括以下功能,例如:
- 处理具有数万亿行和数千列的表的列存储。
- 由于内置了复制功能,因此具有容错能力和读取扩展能力。
- 通过物化视图进行出色的聚合。
- 解决实际问题的功能,如漏斗分析和最后一点查询。
ClickHouse的开发是由一个由数百名贡献者组成的社区推动的,这些贡献者专注于解决实际问题,而不是实施公司路线图。
ClickHouse每秒在每台服务器上处理1亿到10亿行以及数千万字节的数据,并在数百个节点集群上运行。该系统可以很容易地安装在单个服务器或虚拟机上。
ClickHouse充分利用所有可用的硬件,以最快的速度处理每个查询。单个查询的峰值处理性能超过每秒2 TB。
ClickHouse允许公司将服务器添加到集群中,而无需花费时间或金钱进行任何额外的DBMS修改。它是CPU高效的,因为它的矢量化查询执行涉及相关的处理器指令和运行时代码生成。
ClickHouse历史
1. ClickHouse是由俄罗斯IT公司Yandex为Yandex.Metrica开发的。
2. 当原始数据以聚合形式存储时,Metrica以前使用了一种经典方法,这种方法有助于减少存储的数据量。
3. 另一种方法是存储未聚合的数据。处理原始数据需要一个高性能的系统,因为所有的计算都是实时进行的。为了解决这个问题,需要一个面向列的数据库管理系统来处理整个internet范围内的分析数据。
4. 第一个ClickHouse原型出现在2009年。
5. 2014年底,Yandex.Metrica 2.0版发布。新版本有一个用于创建自定义报表的界面,并使用ClickHouse存储和处理数据。
ClickHouse的特点
以下是ClickHouse的以下主要功能,例如:
1. 真正的面向列的DBMS:没有额外的数据与值一起存储。这意味着必须支持常量长度值,以避免将其长度“number
”存储在值旁边。
2. 线性scalability:可以通过添加服务器来扩展集群。
3. 断层tolerance:是一个碎片集群,其中每个碎片都是一组副本。ClickHouse使用异步多主机复制,可以跨多个数据中心部署。数据将写入任何可用的复制副本,并分发到所有剩余的复制副本。ZooKeeper用于协调进程,但不涉及查询处理和执行。
4. SQL支持:ClickHouse支持扩展SQL语言,包括数组和嵌套数据结构、近似函数和URI函数,以及连接外部键值存储的可用性。
5. 高性能:向量计算方法用于高CPU性能。在这种方法中,数据按列存储,按向量(列的一部分)处理。它支持采样和近似计算。此外,还提供了并行和分布式查询处理,包括连接。
6. HDD选项imization:系统可以处理不适合随机存取存储器的数据。
7. 极快:ClickHouse使用所有可用的硬件,最大限度地提高处理每个查询的速度。
8. 易于使用:ClickHouse非常简单,可立即用于生成报告。SQL语言允许表达所需的结果,而不涉及在某些替代系统中发现的任何自定义非标准API。
9. 高可靠性:ClickHouse DBMS可以配置为一个位于独立节点上的分布式系统,没有任何单一的故障点。它还包括许多企业级的安全特性和防止人为错误的故障保护机制。
10. 数据库客户端nectivity:Database connection 选项包括控制台客户端、httpapi或其中一个包装器。ClickHouse还提供了JDBC驱动程序。
ClickHouse的缺点
以下几点可以视为缺点,例如:
1. 不支持事务。
2. 无法以高速率和低延迟修改或删除已插入的数据。
3. 稀疏索引使得ClickHouse对于按键检索单行的点查询效率不高。
4. 默认情况下,在执行聚合时,中间查询状态必须适合单个服务器上的RAM。在这种情况下,可以将ClickHouse配置为溢出到磁盘上。
除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/1883.html
暂无评论