🚀 ClickHouse 入门:5 分钟跑通增删改查

137 阅读3分钟

今天和大家聊一个近几年大火的数据库 —— ClickHouse。它被称为「开源界的实时分析神器」,能在秒级处理 TB/PB 级数据。

本文我会带你:

  1. Windows 环境安装 ClickHouse
  2. 跑通 SQL 增删改查
  3. 用 Python 操作数据库
  4. 分享 ClickHouse 的典型应用场景
  5. 对比 MySQL、PostgreSQL、Elasticsearch

无论你是数据库小白还是想扩展技能的程序员,看完一定能快速上手。


🖥️ 一、Windows 下安装 ClickHouse

官方没有 Windows 安装包,推荐两种方式:

方法一:Docker(最简单,推荐)

  1. 安装 Docker Desktop

  2. 在 PowerShell 运行:

    docker run -d --name clickhouse-server `
      -p 8123:8123 `
      -p 9000:9000 `
      clickhouse/clickhouse-server
    
    • 8123:HTTP 接口(浏览器 / API 用)
    • 9000:客户端 TCP 端口
  3. 进入客户端:

    docker exec -it clickhouse-server clickhouse-client
    
  4. 测试:

    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 是 列式存储数据库,擅长 海量数据分析。典型场景有:

  1. 日志分析

    • 网站访问日志、APP 埋点数据
    • 一天 TB 级数据,依旧能秒级查询
  2. 实时数据分析

    • 实时大屏(订单数、销售额、PV/UV)
    • 金融风控(秒级检测异常交易)
  3. BI 报表

    • 用户画像、运营报表、市场分析
    • 和 PowerBI、Tableau 对接
  4. 时序数据

    • IoT 传感器、监控指标(Prometheus、Zabbix)

⚖️ 五、ClickHouse vs 其它数据库

对比点ClickHouseMySQLPostgreSQLElasticsearch
存储模型列式存储行存储行存储倒排索引
适合场景大规模分析事务型业务事务 + 分析文本搜索
查询性能TB/PB 秒级百万级亿级检索快,聚合一般
更新/删除弱项中等
可扩展性原生分布式分库分表复杂插件扩展原生分布式

👉 一句话总结:

  • ClickHouse = 大数据分析神器
  • MySQL/PG = 业务系统首选
  • ES = 搜索引擎专家

✅ 总结

  • 安装 ClickHouse,推荐 Docker,最快捷。
  • 基础 SQL 和 MySQL 类似,但 更新/删除性能一般,适合读多写多的分析场景。
  • Python 等编程语言都能方便地调用。
  • 典型应用就是 日志分析、实时报表、大屏监控

如果你公司有 大数据分析需求,或者想做一个 实时监控平台,强烈建议试试 ClickHouse 🚀