1161 字
6 分鐘
ClickHouse 系列:ClickHouse 是什麼?與傳統 OLAP/OLTP 資料庫的差異

ClickHouse 是由 Yandex 開發的 開源分布式列式資料庫管理系統(Column-oriented DBMS)。

主要針對 即時數據分析 (Real-Time Analytics) 場景設計,能夠在秒級內處理 PB 級數據。

ClickHouse
/
ClickHouse
Waiting for api.github.com...
00K
0K
0K
Waiting...

架構#

ClickHouse Architecture

ClickHouse 的整體設計邏輯非常清晰:以高效能讀取為核心,透過分散式架構與儲存最佳化,讓秒級查詢在 PB 級數據中成為可能。 從資料寫入、儲存、索引到查詢回傳,ClickHouse 有著一套完全為 OLAP 場景最佳化的底層架構。

我們可以將流程稍微簡化成以下步驟:

資料寫入 → 拆分成 Data Parts → Partition 劃分 → Primary Key 排序 → 壓縮 → Merge → 索引裁剪 → 向量化查詢 → 回傳結果

看不懂?沒關係,追完系列文章就全都懂了 😎

圖片取自 Architecture Overview

特色 & 特性#

ClickHouse 技術特性說明
Columnar Storage只讀取需要的欄位,避免不必要的 I/O。
Vectorized Execution將資料轉成 SIMD 批次處理,加速 CPU 運算效率。
Compression各種編碼方式 (LZ4, ZSTD, Delta Encoding) 提供高壓縮比,降低儲存成本。
Data Skipping Indexes不需掃描全部資料,可根據索引直接跳過不相關的數據區塊,查詢更快。
MergeTree 儲存引擎強大靈活的底層結構,支援分區、排序鍵、TTL 清理機制,適合大量數據分析。
Materialized Views可將複雜查詢結果預先計算並實時更新,大幅加快查詢速度。
分布式架構支援 Sharding 與 Replica ,易於擴展到 PB 級數據處理規模。
Near-Real-Time Ingestion支援高吞吐量寫入 (如 Kafka Stream),數據可秒級查詢分析。

OLAP v.s. OLTP 基本概念#

分類OLTP (Online Transaction Processing)OLAP (Online Analytical Processing)
主要用途交易處理 (CRUD 操作)數據分析、統計報表
操作特性少量資料的頻繁寫入大量資料的批次查詢
查詢型態單筆/少量記錄查詢大範圍聚合查詢 (Aggregation)
儲存結構行式存儲 (Row-based)列式存儲 (Column-based)
代表產品MySQL, PostgreSQL, OracleClickHouse, Druid, Redshift

ClickHouse 與傳統 OLAP 資料庫的差異#

項目ClickHouse傳統 Data Warehouse (如 Oracle DW, Teradata)
架構分布式列式存儲多數為行式存儲或需額外配置列式引擎
查詢速度毫秒級到秒級回應通常需數秒到數分鐘
硬體需求可用商用硬體多數需昂貴專用伺服器
成本開源免費/雲端計價模式軟硬體成本高昂
延展性支援線性水平擴展 (Sharding/Replication)擴展成本高

ClickHouse 與 OLTP 資料庫(如 MySQL, PostgreSQL)的差異#

  1. OLTP 資料庫在於 ACID 交易完整性、寫入頻繁的即時處理。
  2. ClickHouse 更適合「大量讀取查詢」且「不需要頻繁即時修改」的場景(如報表查詢、BI 分析)。
  3. OLTP 常見的 UPDATE/DELETE 操作在 ClickHouse 中屬於非即時(Mutation 機制)。

ClickHouse 系列持續更新中:#

  1. ClickHouse 系列:ClickHouse 是什麼?與傳統 OLAP/OLTP 資料庫的差異
  2. ClickHouse 系列:ClickHouse 為什麼選擇 Column-based 儲存?講解 Row-based 與 Column-based 的核心差異
  3. ClickHouse 系列:ClickHouse 儲存引擎 - MergeTree
  4. ClickHouse 系列:壓縮技術與 Data Skipping Indexes 如何大幅加速查詢
  5. ClickHouse 系列:ReplacingMergeTree 與資料去重機制
  6. ClickHouse 系列:SummingMergeTree 進行資料彙總的應用場景
  7. ClickHouse 系列:Materialized Views 即時聚合查詢
  8. ClickHouse 系列:分區策略與 Partition Pruning 原理解析
  9. ClickHouse 系列:Primary Key、Sorting Key 與 Granule 索引運作原理
  10. ClickHouse 系列:CollapsingMergeTree 與邏輯刪除的最佳實踐
  11. ClickHouse 系列:VersionedCollapsingMergeTree 版本控制與資料衝突解決
  12. ClickHouse 系列:AggregatingMergeTree 實時指標統計的進階應用
  13. ClickHouse 系列:Distributed Table 與分布式查詢架構
  14. ClickHouse 系列:Replicated Tables 高可用性與零停機升級實作
  15. ClickHouse 系列:與 Kafka 整合打造即時 Data Streaming Pipeline
  16. ClickHouse 系列:批次匯入最佳實踐 (CSV、Parquet、Native Format)
  17. ClickHouse 系列:ClickHouse 與外部資料源整合(PostgreSQL)
  18. ClickHouse 系列:如何提升查詢優化?system.query_log 與 EXPLAIN 用法
  19. ClickHouse 系列:Projections 進階查詢加速技術
  20. ClickHouse 系列:Sampling 抽樣查詢與統計技術原理
  21. ClickHouse 系列:TTL 資料清理與儲存成本優化
  22. ClickHouse 系列:儲存政策(Storage Policies)與磁碟資源分層策略
  23. ClickHouse 系列:表格設計與儲存優化細節
  24. ClickHouse 系列:ClickHouse 系列:整合 Grafana 打造可視化監控
  25. ClickHouse 系列:APM 日誌分析平台架構實作 (Vector + ClickHouse)
  26. ClickHouse 系列:IoT 巨量感測數據平台設計實戰
  27. ClickHouse 系列:與 BI 工具整合(Power BI)
  28. ClickHouse 系列:ClickHouse Cloud 與自建部署的優劣比較
  29. ClickHouse 系列:資料庫安全性與權限管理(RBAC)實作
ClickHouse 系列:ClickHouse 是什麼?與傳統 OLAP/OLTP 資料庫的差異
https://vicwen.app/posts/what-is-clickhouse/
作者
Vic Wen
發佈於
2025-08-04
許可協議
CC BY-NC-SA 4.0