今天和大家聊一个近几年大火的数据库 —— ClickHouse。它被称为「开源界的实时分析神器」,能在秒级处理 TB/PB 级数据。
本文我会带你:
- Windows 环境安装 ClickHouse
- 跑通 SQL 增删改查
- 用 Python 操作数据库
- 分享 ClickHouse 的典型应用场景
- 对比 MySQL、PostgreSQL、Elasticsearch
无论你是数据库小白还是想扩展技能的程序员,看完一定能快速上手。
🖥️ 一、Windows 下安装 ClickHouse
官方没有 Windows 安装包,推荐两种方式:
方法一:Docker(最简单,推荐)
-
安装 Docker Desktop。
-
在 PowerShell 运行:
docker run -d --name clickhouse-server ` -p 8123:8123 ` -p 9000:9000 ` clickhouse/clickhouse-server8123:HTTP 接口(浏览器 / API 用)9000:客户端 TCP 端口
-
进入客户端:
docker exec -it clickhouse-server clickhouse-client -
测试:
SELECT version();
方法二:WSL2(适合熟悉 Linux 的同学)
如果你用的是 Ubuntu 子系统,直接:
sudo apt-get install clickhouse-server clickhouse-client
sudo service clickhouse-server start
clickhouse-client
👉 建议初学者选 Docker,最快上手。
📊 二、建表 & SQL 基础操作
新建一个 users 表:
CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;
CREATE TABLE users
(
id UInt32,
name String,
age UInt8,
created_at DateTime DEFAULT now()
)
ENGINE = MergeTree
ORDER BY id;
插入数据
INSERT INTO users (id, name, age) VALUES
(1, 'Alice', 25),
(2, 'Bob', 30),
(3, 'Charlie', 28);
查询数据
-- 查询所有
SELECT * FROM users;
-- 条件查询
SELECT * FROM users WHERE age > 25;
-- 排序 + 限制条数
SELECT * FROM users ORDER BY age DESC LIMIT 2;
修改 & 删除
⚠️ 注意:ClickHouse 不擅长频繁更新/删除,但提供了 ALTER:
ALTER TABLE users UPDATE age = 26 WHERE id = 1;
ALTER TABLE users DELETE WHERE id = 2;
🐍 三、用 Python 操作 ClickHouse
安装驱动:
pip install clickhouse-connect
代码示例(crud_demo.py):
import clickhouse_connect
# 连接数据库
client = clickhouse_connect.get_client(
host='localhost', port=8123, username='default', password=''
)
# 插入
client.command("INSERT INTO test_db.users (id, name, age) VALUES (4, 'David', 35)")
# 查询
rows = client.query("SELECT * FROM test_db.users ORDER BY id").result_rows
print("当前数据:", rows)
# 更新
client.command("ALTER TABLE test_db.users UPDATE age = 29 WHERE id = 3")
# 删除
client.command("ALTER TABLE test_db.users DELETE WHERE id = 4")
运行:
python crud_demo.py
🔧 四、ClickHouse 的应用场景
ClickHouse 是 列式存储数据库,擅长 海量数据分析。典型场景有:
-
日志分析
- 网站访问日志、APP 埋点数据
- 一天 TB 级数据,依旧能秒级查询
-
实时数据分析
- 实时大屏(订单数、销售额、PV/UV)
- 金融风控(秒级检测异常交易)
-
BI 报表
- 用户画像、运营报表、市场分析
- 和 PowerBI、Tableau 对接
-
时序数据
- IoT 传感器、监控指标(Prometheus、Zabbix)
⚖️ 五、ClickHouse vs 其它数据库
| 对比点 | ClickHouse | MySQL | PostgreSQL | Elasticsearch |
|---|---|---|---|---|
| 存储模型 | 列式存储 | 行存储 | 行存储 | 倒排索引 |
| 适合场景 | 大规模分析 | 事务型业务 | 事务 + 分析 | 文本搜索 |
| 查询性能 | TB/PB 秒级 | 百万级 | 亿级 | 检索快,聚合一般 |
| 更新/删除 | 弱项 | 强 | 强 | 中等 |
| 可扩展性 | 原生分布式 | 分库分表复杂 | 插件扩展 | 原生分布式 |
👉 一句话总结:
- ClickHouse = 大数据分析神器
- MySQL/PG = 业务系统首选
- ES = 搜索引擎专家
✅ 总结
- 安装 ClickHouse,推荐 Docker,最快捷。
- 基础 SQL 和 MySQL 类似,但 更新/删除性能一般,适合读多写多的分析场景。
- Python 等编程语言都能方便地调用。
- 典型应用就是 日志分析、实时报表、大屏监控。
如果你公司有 大数据分析需求,或者想做一个 实时监控平台,强烈建议试试 ClickHouse 🚀