🎯 动手搭建一个 OLAP 环境 —— 使用 ClickHouse + Superset
本教程将带你从零开始,在本地(或云服务器)搭建一个完整的 OLAP 分析环境:
- ClickHouse:高性能列式 OLAP 数据库,用于存储和快速查询海量数据。
- Superset:开源 BI 可视化平台,提供拖拽式仪表盘、图表和 SQL 查询界面。
🧰 一、环境准备
✅ 系统要求
- 操作系统:Linux(推荐 Ubuntu 20.04/22.04)或 macOS,Windows 可用 WSL2
- 内存:建议 ≥ 4GB(Superset + ClickHouse)
- Docker & Docker Compose(推荐方式,避免环境冲突)
💡 若你没有 Docker,也可直接安装 ClickHouse 和 Superset,但 Docker 更简单、可移植。
🐳 二、使用 Docker 快速部署
我们将使用 docker-compose.yml 同时启动 ClickHouse 和 Superset。
1️⃣ 创建项目目录
mkdir olap-demo && cd olap-demo
2️⃣ 创建 docker-compose.yml
# docker-compose.yml
version: '3.8'
services:
clickhouse:
image: clickhouse/clickhouse-server:23.3
container_name: clickhouse-server
ports:
- "8123:8123" # HTTP 接口
- "9000:9000" # Native TCP 接口(可选)
volumes:
- ./clickhouse_data:/var/lib/clickhouse
ulimits:
nofile:
soft: 262144
hard: 262144
environment:
- CLICKHOUSE_USER=default
- CLICKHOUSE_PASSWORD=
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1
restart: unless-stopped
superset:
image: apache/superset:latest
container_name: superset
ports:
- "8088:8088"
volumes:
- ./superset_data:/home/superset
environment:
- SUPERSET_SECRET_KEY=your_secret_key_here
restart: unless-stopped
depends_on:
- clickhouse
💡 默认无密码,生产环境请设置密码和 SECRET_KEY。
3️⃣ 启动服务
docker-compose up -d
等待 1~2 分钟,服务启动完成。
✅ 检查容器状态:
docker ps
你应该看到 clickhouse-server 和 superset 两个容器在运行。
🧪 三、初始化 Superset
首次使用 Superset 需要初始化数据库和创建管理员用户。
1️⃣ 进入 Superset 容器
docker exec -it superset bash
2️⃣ 初始化数据库和创建管理员用户
在容器内依次执行:
# 初始化数据库
superset db upgrade
# 创建管理员用户(按提示输入用户名、邮箱、密码)
superset fab create-admin
# 加载示例数据(可选)
superset load_examples
# 初始化角色和权限
superset init
完成后输入 exit 退出容器。
🌐 四、访问 Superset Web 界面
打开浏览器访问:
👉 http://localhost:8088
使用刚才创建的管理员账号登录。
📥 五、连接 ClickHouse 到 Superset
1️⃣ 安装 ClickHouse SQLAlchemy 驱动
Superset 默认不支持 ClickHouse,需安装驱动。
进入 Superset 容器:
docker exec -it superset bash
安装驱动:
pip install clickhouse-connect
✅
clickhouse-connect是新一代官方推荐驱动,支持 SQLAlchemy。
重启 Superset:
exit
docker restart superset
2️⃣ 在 Superset 中添加 ClickHouse 数据库
登录 Superset → 点击右上角 Settings ⚙️ → Data → Databases → + Database
填写如下信息:
- Database name:
ClickHouse Local - SQLAlchemy URI:
clickhouse+connect://default:@host.docker.internal:8123/default
🔍 说明:
host.docker.internal是 Docker 容器访问宿主机的特殊 DNS(适用于 macOS/Windows)- 如果你在 Linux 上,或容器间通信,请使用
clickhouse(服务名):clickhouse+connect://default:@clickhouse:8123/default
✅ 点击 Test Connection,成功后点击 Save
🧱 六、导入示例数据到 ClickHouse
我们导入一个简单的销售数据表示范分析。
1️⃣ 进入 ClickHouse 命令行
docker exec -it clickhouse-server clickhouse-client
2️⃣ 创建数据库和表
CREATE DATABASE IF NOT EXISTS sales;
USE sales;
CREATE TABLE sales_data (
id UInt32,
region String,
product String,
sales_amount Float64,
sale_date Date
) ENGINE = MergeTree()
ORDER BY (sale_date, id);
3️⃣ 插入模拟数据
INSERT INTO sales_data VALUES
(1, 'North', 'Laptop', 1200.00, '2024-01-10'),
(2, 'South', 'Phone', 800.00, '2024-01-12'),
(3, 'East', 'Tablet', 600.00, '2024-01-15'),
(4, 'West', 'Laptop', 1100.00, '2024-01-18'),
(5, 'North', 'Phone', 750.00, '2024-02-05'),
(6, 'South', 'Laptop', 1300.00, '2024-02-10'),
(7, 'East', 'Phone', 820.00, '2024-02-15'),
(8, 'West', 'Tablet', 550.00, '2024-02-20');
输入 exit 退出客户端。
📊 七、在 Superset 中创建图表和仪表盘
1️⃣ 创建数据集(Dataset)
- 进入 Datasets → + Dataset
- 选择数据库
ClickHouse Local - 选择表
sales.sales_data - 点击 Save
2️⃣ 创建第一个图表(Chart)
- 点击 Charts → + Chart
- 选择刚创建的 Dataset
- 选择可视化类型,如 “Bar Chart”
- 设置:
- X 轴:
region - Y 轴(指标):
SUM(sales_amount)
- X 轴:
- 点击 Run → Save
3️⃣ 创建仪表盘(Dashboard)
- 点击 Dashboards → + Dashboard
- 输入名称,如 “Sales Analysis”
- 点击刚保存的图表,拖拽到画布
- 保存并查看效果!
🎉 你已成功搭建并使用 OLAP 环境进行可视化分析!
🚀 八、进阶建议
✅ 数据持续导入
- 使用
clickhouse-client --query="INSERT INTO ..."脚本批量导入 - 或使用 Kafka + MaterializedMySQL / Kafka Engine 实现实时摄入
✅ 性能优化
- 对大表使用
PARTITION BY toYYYYMM(sale_date) - 添加物化视图预聚合
- 使用
PROJECTION加速特定查询
✅ 安全加固
- 设置 ClickHouse 用户密码和权限
- 配置 Superset 的 LDAP/OAuth 认证
- 使用 Nginx 反向代理 + HTTPS
✅ 接入真实数据源
- 将 MySQL/PostgreSQL 数据通过 ETL(如 Airflow)导入 ClickHouse
- 使用
clickhouse-local或clickhouse-copier迁移数据
🧾 九、常用命令速查
| 功能 | 命令 |
|---|---|
| 启动服务 | docker-compose up -d |
| 查看日志 | docker logs superset 或 clickhouse-server |
| 进入 ClickHouse | docker exec -it clickhouse-server clickhouse-client |
| 进入 Superset 容器 | docker exec -it superset bash |
| 重启 Superset | docker restart superset |
| 停止服务 | docker-compose down |
📌 十、学习资源推荐
- ClickHouse 官方文档:https://clickhouse.com/docs
- Superset 官方文档:https://superset.apache.org/docs
- ClickHouse 中文社区:https://clickhouse.com/cn
- GitHub 示例项目:搜索 “clickhouse superset demo”
✅ 至此,你已完成一个生产可用的 OLAP 环境搭建!
你可以基于此架构:
- 接入企业真实数据
- 构建销售/用户/运营分析看板
- 实现自助式 BI 分析平台
280

被折叠的 条评论
为什么被折叠?



