ClickHouse 详解

1. 简介

官方文档:https://clickhouse.yandex/docs
ClickHouse 是一个采用列式存储,用于联机分析(OLAP)的数据库管理系统(DBMS)

2.ClickHouse 的优点

2.1 "真正"的列式存储

一个真正的列式存储的数据库管理系统中,除了数据本身之外不应该存在其他额外的数据。意味着为了避免在只旁边存储它们的长度 'number',必须支持固定长度的数值类型。ClickHouse 的数据类型都是固定长度。

2.2 实时的数据更新

ClcikHouse 数据是以增量的方式有序的存储在 MergeTree 中。因此,数据可以持续不断高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。

2.3 支持近似计算

ClickHouse 提供各种各样在允许牺牲精度的情况下对查询进行加速的方法

  1. 用于近似计算的各类聚合函数,如:distinct values, medians, quantiles
  2. 基于数据的部分样本进行近似查询。这时,仅会从磁盘检索少部分比例的数据。
  3. 不使用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布条件下,在提供相当准确的聚合结果的同时降低了计算资源的使用

2.4 支持数据复制和数据完整性

ClickHouse 使用异步的多住复制技术。当数据被写入到任何一个可用副本后,系统在后台将数据分发给其他副本。

  1. 只有 MergeTree 系列里的表壳支持副本
  2. 副本是表级别的,不是整个服务器级的。
  3. 副本不依赖分片,每个分片有它的独立副本
  4. 对于 InsertAlter 语句操作数据的会在压缩的情况下被复制
  5. CREATE,DROP,DETACH,RENAME 语句只会在单个服务器上执行,不会被复制
    • CREATE TABLE 在运行此语句的服务器上创建一个新的可复制表。如果此表已存在其他服务器上,则给该表添加新副本。
    • DROP TABLE 删除运行此查询的服务器上的副本。
    • RENAME 重命名一个副本。换句话说,可复制表不同的副本可以有不同的名称。

3. ClickHouse 的缺点

  1. 没有完整的事务支持
  2. 缺少高频率、低延迟的修改或删除已存在数据的能力,仅能用于批量删除或修改数据。
posted @   大数据小码农  阅读(8268)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示