CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Specialty 数据库入门/课时/列式 OLAP
RawBlame
课时目录12 节

Specialty 数据库入门

  1. 01数据库选型地图
  2. 02图数据库
  3. 03宽列存储
  4. 04文档库扩展
  5. 05列式 OLAP
  6. 06Solr 与搜索
  7. 07Firebase BaaS
  8. 08Oracle 企业库
  9. 09一致性与 CAP
  10. 10何时选哪种库
  11. 11运维与备份
  12. 12综合练习

列式 OLAP

ClickHouse;分析查询。

35 分钟

列式 OLAP

业务库扛 OLTP(点查、小事务),报表、漏斗、留存、大盘 往往要扫亿级行——ClickHouse 等 列式 OLAP 引擎按列压缩、向量化执行,让 分析查询 与 在线交易 分离。

学习目标

  • 理解列存 vs 行存:压缩、扫描、写入模式差异
  • 知道 ClickHouse 的 MergeTree 与典型 SQL 分析写法
  • 衔接 postgresql-essentials 报表与 elasticsearch-essentials 日志聚合

行存 vs 列存

OLTP 行存(PostgreSQL)OLAP 列存(ClickHouse)
优化目标单行读写、索引点查大范围聚合、GROUP BY
写入频繁小事务批量 append、后台 merge
典型查询SELECT * WHERE id = ?COUNT DISTINCT user_id BY date
JOIN成熟有限,常 ETL 宽表

不要把 ClickHouse 当主库:无完整 OLTP 事务语义,与 orm-essentials 的 JPA 实体生命周期不匹配。

ClickHouse 要点

-- MergeTree 表示例:按日分区、用户排序
CREATE TABLE events (
  event_date Date,
  user_id UInt64,
  event_type String,
  props String
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY (event_date, user_id);

-- 典型分析
SELECT event_date, count(DISTINCT user_id)
FROM events
WHERE event_date >= today() - 7
GROUP BY event_date;

数据常经 CDC、Kafka、定时 ETL 从 MySQL/PostgreSQL 同步;读路径见 scale-read-write 的读写分离思想——分析走专用库。

与 Elasticsearch 分工

场景更常见
全文检索、日志关键词es-intro
结构化指标、多维聚合、BIClickHouse
实时仪表板秒级ES + 或 ClickHouse 物化视图

两者可并存:ES 探查日志,ClickHouse 落盘长期分析。

练习

  • 写一条「近 7 日每日 UV」伪 SQL,标出适合列存的 reason
  • 说明为何 OLTP 库直接跑全表 GROUP BY 会拖垮业务
  • 查 ClickHouse 官方 Quick Start,列出一种表引擎名
  • 小结

    OLTP 行存交易、OLAP 列存分析——ClickHouse 专精后者。 下一课 Solr 与搜索:Elasticsearch 的「老大哥」。

    加载本节练习…
    ← 上一课文档库扩展下一课 →Solr 与搜索