posts

ClickHouse 列式数据库

ClickHouse 是一款由 Yandex 开源的面向 OLAP 场景的高性能列式数据库,以向量化执行引擎和极致查询性能著称。本专题系统覆盖列式存储架构原理、SQL 编写与性能优化、MergeTree 家族表引擎详解、数据接入与 ETL 管道、分布式分片+副本集群搭建、监控运维与冷热分层策略,以及实时分析场景(漏斗/留存/A-B 测试)的完整生产实践,并深入 MergeTree 合并原理与数据生命周期、物化视图与实时聚合、查询优化器与执行引擎、备份恢复与容灾、Kafka 实时管道、权限安全加固、复制表与跨机房容灾(ReplicatedMergeTree/ClickHouse Keeper/脑裂防护)、字典与维度 JOIN(Dictionaries/dictGet/星型模型)、列式压缩算法(LZ4/ZSTD/Delta/Gorilla Codec)、查询缓存与预热、时序分析最佳实践(降采样/异常检测)、Mutation 与 TTL(轻量删除/冷热分层)、窗口函数高级实战(排名/聚合/偏移/分布/滑动)、实时数仓架构(ODS/DWD/DWS/ADS 分层与 Lambda/Kappa)、对象存储 S3 集成(冷热分层/TTL 迁移/S3 备份/Data Lake)、生产性能调优(写入/查询/内存/集群)、Schema 建模最佳实践(主键/分区/压缩编码/宽窄表)、JSON 与半结构化数据处理(导入提取/展平/物化列/混合建模)、向量检索与 ANN 索引(HNSW/usearch/相似度查询)、全文检索与倒排索引(tokenbf_v1/text index/模糊匹配)、日志与指标存储(可观测性后端/Grafana/成本治理)、集群扩容与平滑升级(分片重平衡/滚动重启)、内存管理与落盘(spill to disk/OOM 防护)、用户自定义函数(executable UDF/SQL UDF/性能边界),并补齐 Projections 预聚合、trace_log 查询剖析、轻量删除更新、查询并发与资源隔离(workload scheduling)、MySQL/PostgreSQL 方言迁移、容量规划与成本优化等高级主题。

ClickHouse 诞生于 Yandex 的网页分析需求(Metrika),如今在 OLAP 领域与 Druid、Apache Pinot 并列为三大开源实时分析引擎。其向量化执行引擎可将查询性能提升 10-100 倍于传统行式数据库,单次查询可在数秒内处理数十亿行数据——这种单点性能优势使其成为实时日志分析、用户行为追踪、物联网时序数据处理的首选存储方案。


📚 专题导览

本专题系统讲解 ClickHouse 从架构原理到生产部署的完整知识体系:

阶段文章技术要点
原理架构与设计原理列式存储、向量化执行、MergeTree、分布式架构
SQLSQL 编写与性能优化主键设计、物化视图、JOIN 策略、分区与 TTL
引擎表引擎详解MergeTree 家族、复制引擎、集成引擎、Log 引擎
接入数据接入与 ETL批量写入、Kafka 引擎、数据格式、分区策略
集群分布式集群分片策略、副本复制、ZooKeeper、分布式表
运维监控与运维系统表、查询日志、磁盘管理、备份恢复、升级
场景实时分析场景漏斗分析、留存分析、A/B 测试、用户画像、时序
生产生产案例与最佳实践冷热分层、查询缓存、多租户、写入缓冲
深入MergeTree 合并原理与数据生命周期写入路径、Part 合并、稀疏索引、TTL、突变
深入物化视图与实时聚合增量落地、聚合中间状态、异步/刷新式视图、监控
深入查询优化器与执行引擎向量化执行、EXPLAIN、优化器规则、并行与内存
运维备份恢复与容灾FREEZE/clickhouse-backup、增量备份、恢复演练、跨机房容灾
接入Kafka 引擎与实时管道Kafka 表引擎、物化视图落地、offset 管理、调优
生产权限与安全加固RBAC、配额限流、行级安全、TLS、审计、LDAP
容灾复制表与跨机房容灾ReplicatedMergeTree、ClickHouse Keeper、双活架构、脑裂防护
建模字典与维度表 JOINDictionaries、dictGet、Join 引擎、星型模型、ASOF JOIN
存储列式压缩算法深入LZ4/ZSTD、Delta/Gorilla Codec、压缩率调优
性能查询缓存与预热Query Cache、profile events、物化视图预热、热点治理
场景时序分析最佳实践时序建模、窗口聚合、降采样、SQL 异常检测
深入Mutation 与 TTL 深入轻量删除、mutation 机制、TTL 生命周期、冷热分层
SQL窗口函数高级实战排名/聚合/偏移/分布窗口、滑动聚合、TopN
数仓实时数仓架构ODS/DWD/DWS/ADS 分层、实时管道、Lambda/Kappa
存储对象存储 S3 集成冷热分层、TTL 迁移、S3 备份、Data Lake
性能生产性能调优写入/查询/内存/集群优化、慢查询定位流程
建模Schema 建模最佳实践主键、分区、压缩编码、宽窄表权衡
场景JSON 半结构化处理导入提取、性能陷阱、物化列、混合建模
检索向量检索与 ANN 索引HNSW、usearch、相似度查询、向量化检索
检索全文检索与倒排索引tokenbf_v1、text index、模糊匹配、相关性排序
场景日志与指标存储可观测性后端、Grafana、采样、成本治理
运维集群扩容与升级分片重平衡、平滑升级、滚动重启、版本兼容
性能内存管理与落盘查询内存、spill to disk、OOM 防护、内存配额
SQL用户自定义函数executable UDF、SQL UDF、性能边界、部署
SQLJOIN 高级技巧与优化哈希连接、全局表、关联陷阱、分布式 JOIN
SQL数组与高阶函数arrayMap、arrayFilter、Lambda、嵌套数组展开
接入联邦查询与外部数据源MySQL、PostgreSQL、URL 表引擎、联邦查询下推
性能写入链路与吞吐调优单条 INSERT 到批量装载、part 生成、写入放大
深入MergeTree 调优part 生命周期、merge 策略、granularity、索引粒度
性能查询裁剪与数据跳过索引主键索引、分区裁剪、minmax/set/bloom 跳过索引
深入Projections 与预聚合排序/聚合投影、命中判定、与物化视图的取舍
运维查询剖析与 trace_logtrace_log/query_log 诊断、耗时分解、慢查询归因
深入轻量删除与更新Lightweight DELETE/UPDATE、_row_exists、与 mutation 取舍
运维查询并发与资源隔离workload scheduling、查询队列、配额与优先级
SQLSQL 方言迁移MySQL/PostgreSQL 语法差异、类型与函数映射、迁移校验
运维容量规划与成本优化存储与计算容量估算、压缩收益、成本归因

🎯 学习路线

第一阶段:理解架构(1 周)

第二阶段:SQL 与建模(2 周)

第三阶段:集群与生产(1-2 周)


🔗 相关专题


📊 专题统计

维度数据
总文章数44 篇核心教程
难度分布中级 → 高级
总预估阅读时间约 1002 分钟
全部文章 Game Golang Saas Rust 游戏开发 客户端开发 GameDev TypeScript Lua Products
数据库

ClickHouse 实时数仓架构实战:分层设计、实时管道与 Lambda/Kappa

从 T+1 离线数仓到分钟级实时数仓,ClickHouse 是 OLAP 侧的核心引擎。本文系统讲解实时数仓的分层架构(ODS/DWD/DWS/ADS)、Kafka 到 ClickHouse 的实时管道、物化视图秒级预聚合、一致性/迟到数据/重放三大挑战、宽表窄表建模、Lambda 与 Kappa 架构选型,以及实时数仓的运维要点。

11 分钟阅读
ClickHouse 实时数仓 数据管道
数据库

时序分析最佳实践:时间序列建模、降采样与异常检测 SQL

系统讲解 ClickHouse 处理时间序列数据的最佳实践:时序表设计(时间列/排序键/分区)、时间分组聚合(dateBin/toStartOfInterval)、降采样与稀疏化、滑动窗口与同比环比、常见时序指标(最大最小值/变异系数)、SQL 异常检测(Z-score/移动平均)、与 TSDB(InfluxDB/Prometheus)的对比,以及大规模时序写入与保留策略。

5 分钟阅读
ClickHouse 时序 数据分析
数据库

复制表与跨机房容灾:ReplicatedMergeTree、双活架构与脑裂防护

系统讲解 ClickHouse 复制与跨机房容灾:ReplicatedMergeTree 的复制原理(基于 ClickHouse Keeper/ZooKeeper 的日志复制)、多副本读写路径、副本间数据同步延迟、ClickHouse Keeper 与 ZooKeeper 对比、跨机房部署拓扑(同城双活/异地多活)、脑裂(Split Brain)成因与防护(Keeper 仲裁/quorum)、以及故障切换演练与数据一致性校验。

6 分钟阅读
ClickHouse 复制 容灾