1032 lines
38 KiB
HTML
1032 lines
38 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>BI 系统对比:Metabase vs Apache Superset</title>
|
||
<style>
|
||
:root {
|
||
--bg: #0a0a0f;
|
||
--card: #12121a;
|
||
--border: #1e1e2e;
|
||
--text: #d4d4e0;
|
||
--text-dim: #888;
|
||
--blue: #3b82f6;
|
||
--blue-dim: #1e3a5f;
|
||
--orange: #f97316;
|
||
--orange-dim: #5f2e0a;
|
||
--green: #22c55e;
|
||
--red: #ef4444;
|
||
--purple: #a855f7;
|
||
}
|
||
|
||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
|
||
body {
|
||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans SC", sans-serif;
|
||
background: var(--bg);
|
||
color: var(--text);
|
||
line-height: 1.7;
|
||
}
|
||
|
||
/* ===== Hero ===== */
|
||
.hero {
|
||
position: relative;
|
||
padding: 4rem 2rem 3rem;
|
||
text-align: center;
|
||
overflow: hidden;
|
||
}
|
||
.hero::before {
|
||
content: '';
|
||
position: absolute;
|
||
inset: 0;
|
||
background: radial-gradient(ellipse at 30% 50%, rgba(59,130,246,0.12) 0%, transparent 60%),
|
||
radial-gradient(ellipse at 70% 50%, rgba(249,115,22,0.12) 0%, transparent 60%);
|
||
}
|
||
.hero-content { position: relative; max-width: 900px; margin: 0 auto; }
|
||
.hero h1 {
|
||
font-size: 3rem;
|
||
font-weight: 800;
|
||
letter-spacing: -0.02em;
|
||
margin-bottom: 0.5rem;
|
||
}
|
||
.hero h1 .blue { color: var(--blue); }
|
||
.hero h1 .vs { color: #555; font-weight: 400; margin: 0 0.3em; }
|
||
.hero h1 .orange { color: var(--orange); }
|
||
.hero .subtitle {
|
||
color: var(--text-dim);
|
||
font-size: 1.15rem;
|
||
margin-bottom: 2rem;
|
||
}
|
||
.hero-img {
|
||
width: 100%;
|
||
max-width: 820px;
|
||
border-radius: 16px;
|
||
border: 1px solid var(--border);
|
||
box-shadow: 0 20px 60px rgba(0,0,0,0.5);
|
||
}
|
||
|
||
/* ===== Navigation ===== */
|
||
.nav-bar {
|
||
position: sticky;
|
||
top: 0;
|
||
z-index: 100;
|
||
background: rgba(10,10,15,0.85);
|
||
backdrop-filter: blur(12px);
|
||
border-bottom: 1px solid var(--border);
|
||
padding: 0.8rem 2rem;
|
||
display: flex;
|
||
gap: 1.5rem;
|
||
justify-content: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
.nav-bar a {
|
||
color: var(--text-dim);
|
||
text-decoration: none;
|
||
font-size: 0.9rem;
|
||
transition: color 0.2s;
|
||
}
|
||
.nav-bar a:hover { color: #fff; }
|
||
|
||
/* ===== Container ===== */
|
||
.container {
|
||
max-width: 1200px;
|
||
margin: 0 auto;
|
||
padding: 2rem;
|
||
}
|
||
|
||
/* ===== Section ===== */
|
||
.section { margin-bottom: 3.5rem; }
|
||
.section-title {
|
||
font-size: 1.8rem;
|
||
font-weight: 700;
|
||
margin-bottom: 1.5rem;
|
||
padding-bottom: 0.5rem;
|
||
border-bottom: 2px solid var(--border);
|
||
}
|
||
.section-title .icon { margin-right: 0.5rem; }
|
||
|
||
/* ===== Cards ===== */
|
||
.card {
|
||
background: var(--card);
|
||
border: 1px solid var(--border);
|
||
border-radius: 14px;
|
||
padding: 1.8rem;
|
||
margin-bottom: 1.2rem;
|
||
transition: border-color 0.2s;
|
||
}
|
||
.card:hover { border-color: #333; }
|
||
.card h3 {
|
||
font-size: 1.15rem;
|
||
margin-bottom: 0.8rem;
|
||
color: #fff;
|
||
}
|
||
.card p { color: var(--text-dim); }
|
||
|
||
/* ===== Two Column ===== */
|
||
.two-col {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 1.5rem;
|
||
}
|
||
.col-metabase .card { border-left: 3px solid var(--blue); }
|
||
.col-superset .card { border-left: 3px solid var(--orange); }
|
||
.col-metabase h3 { color: var(--blue); }
|
||
.col-superset h3 { color: var(--orange); }
|
||
|
||
/* ===== Product Card ===== */
|
||
.product-card {
|
||
text-align: center;
|
||
}
|
||
.product-card img {
|
||
width: 100%;
|
||
border-radius: 12px;
|
||
margin-bottom: 1rem;
|
||
border: 1px solid var(--border);
|
||
}
|
||
.product-card .name {
|
||
font-size: 1.5rem;
|
||
font-weight: 700;
|
||
margin-bottom: 0.3rem;
|
||
}
|
||
.product-card .tagline {
|
||
color: var(--text-dim);
|
||
font-size: 0.95rem;
|
||
}
|
||
|
||
/* ===== Comparison Table ===== */
|
||
.comp-table {
|
||
width: 100%;
|
||
border-collapse: collapse;
|
||
font-size: 0.95rem;
|
||
}
|
||
.comp-table thead th {
|
||
padding: 1rem;
|
||
text-align: left;
|
||
border-bottom: 2px solid var(--border);
|
||
font-weight: 700;
|
||
font-size: 1rem;
|
||
}
|
||
.comp-table thead th:first-child { width: 28%; }
|
||
.comp-table thead th:nth-child(2) { color: var(--blue); }
|
||
.comp-table thead th:nth-child(3) { color: var(--orange); }
|
||
.comp-table tbody tr {
|
||
border-bottom: 1px solid var(--border);
|
||
transition: background 0.15s;
|
||
}
|
||
.comp-table tbody tr:hover { background: rgba(255,255,255,0.02); }
|
||
.comp-table td {
|
||
padding: 0.85rem 1rem;
|
||
vertical-align: top;
|
||
}
|
||
.comp-table td:first-child {
|
||
font-weight: 600;
|
||
color: #ccc;
|
||
}
|
||
.comp-table .win { color: var(--green); font-weight: 600; }
|
||
.comp-table .lose { color: var(--text-dim); }
|
||
|
||
/* ===== Tags ===== */
|
||
.tag {
|
||
display: inline-block;
|
||
padding: 0.2em 0.6em;
|
||
border-radius: 6px;
|
||
font-size: 0.82rem;
|
||
font-weight: 600;
|
||
margin: 0.15em;
|
||
}
|
||
.tag-blue { background: var(--blue-dim); color: var(--blue); }
|
||
.tag-orange { background: var(--orange-dim); color: var(--orange); }
|
||
.tag-green { background: rgba(34,197,94,0.15); color: var(--green); }
|
||
.tag-red { background: rgba(239,68,68,0.15); color: var(--red); }
|
||
.tag-purple { background: rgba(168,85,247,0.15); color: var(--purple); }
|
||
|
||
/* ===== Score Bar ===== */
|
||
.score-row {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-bottom: 0.6rem;
|
||
}
|
||
.score-label {
|
||
width: 120px;
|
||
font-size: 0.9rem;
|
||
color: var(--text-dim);
|
||
}
|
||
.score-bar {
|
||
flex: 1;
|
||
display: flex;
|
||
gap: 4px;
|
||
height: 24px;
|
||
}
|
||
.score-bar .bar {
|
||
flex: 1;
|
||
border-radius: 4px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 0.75rem;
|
||
font-weight: 700;
|
||
color: #fff;
|
||
position: relative;
|
||
}
|
||
.bar-blue { background: var(--blue); }
|
||
.bar-orange { background: var(--orange); }
|
||
.bar-empty { background: #1a1a2a; }
|
||
|
||
/* ===== Verdict ===== */
|
||
.verdict-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||
gap: 1.2rem;
|
||
}
|
||
.verdict-card {
|
||
background: var(--card);
|
||
border: 1px solid var(--border);
|
||
border-radius: 14px;
|
||
padding: 1.5rem;
|
||
text-align: center;
|
||
}
|
||
.verdict-card .emoji { font-size: 2rem; margin-bottom: 0.5rem; }
|
||
.verdict-card h4 { margin-bottom: 0.5rem; color: #fff; }
|
||
.verdict-card p { color: var(--text-dim); font-size: 0.9rem; }
|
||
.verdict-card .rec {
|
||
display: inline-block;
|
||
margin-top: 0.8rem;
|
||
padding: 0.4em 1em;
|
||
border-radius: 8px;
|
||
font-weight: 700;
|
||
font-size: 0.9rem;
|
||
}
|
||
.rec-blue { background: var(--blue-dim); color: var(--blue); }
|
||
.rec-orange { background: var(--orange-dim); color: var(--orange); }
|
||
|
||
/* ===== Stats ===== */
|
||
.stats-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
||
gap: 1rem;
|
||
margin-bottom: 1.5rem;
|
||
}
|
||
.stat-card {
|
||
background: var(--card);
|
||
border: 1px solid var(--border);
|
||
border-radius: 10px;
|
||
padding: 1.2rem;
|
||
text-align: center;
|
||
}
|
||
.stat-card .num {
|
||
font-size: 1.6rem;
|
||
font-weight: 800;
|
||
}
|
||
.stat-card .label {
|
||
font-size: 0.82rem;
|
||
color: var(--text-dim);
|
||
margin-top: 0.2rem;
|
||
}
|
||
|
||
/* ===== Price Table ===== */
|
||
.price-grid {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 1.5rem;
|
||
}
|
||
.price-card {
|
||
background: var(--card);
|
||
border: 1px solid var(--border);
|
||
border-radius: 14px;
|
||
padding: 1.8rem;
|
||
}
|
||
.price-card h3 {
|
||
font-size: 1.3rem;
|
||
margin-bottom: 1rem;
|
||
}
|
||
.price-tier {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 0.7rem 0;
|
||
border-bottom: 1px solid var(--border);
|
||
}
|
||
.price-tier:last-child { border-bottom: none; }
|
||
.price-tier .name { font-weight: 600; }
|
||
.price-tier .cost { color: var(--green); font-weight: 700; }
|
||
|
||
/* ===== Footer ===== */
|
||
footer {
|
||
text-align: center;
|
||
padding: 3rem 2rem;
|
||
color: #444;
|
||
font-size: 0.85rem;
|
||
border-top: 1px solid var(--border);
|
||
}
|
||
|
||
/* ===== Responsive ===== */
|
||
@media (max-width: 768px) {
|
||
.hero h1 { font-size: 2rem; }
|
||
.two-col, .price-grid { grid-template-columns: 1fr; }
|
||
.comp-table { font-size: 0.85rem; }
|
||
.comp-table td, .comp-table th { padding: 0.6rem 0.5rem; }
|
||
.nav-bar { gap: 0.8rem; }
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<!-- Hero -->
|
||
<div class="hero">
|
||
<div class="hero-content">
|
||
<h1><span class="blue">Metabase</span><span class="vs">VS</span><span class="orange">Apache Superset</span></h1>
|
||
<p class="subtitle">两大顶级开源 BI 系统全方位对比 — 帮你做出最合适的选择</p>
|
||
<img class="hero-img" src="images/hero-banner.png" alt="Metabase vs Superset">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Nav -->
|
||
<nav class="nav-bar">
|
||
<a href="#overview">概览</a>
|
||
<a href="#github">GitHub 数据</a>
|
||
<a href="#deploy">部署</a>
|
||
<a href="#features">功能对比</a>
|
||
<a href="#charts">图表能力</a>
|
||
<a href="#ux">用户体验</a>
|
||
<a href="#data">数据处理</a>
|
||
<a href="#security">安全</a>
|
||
<a href="#collab">协作</a>
|
||
<a href="#price">价格</a>
|
||
<a href="#scores">综合评分</a>
|
||
<a href="#verdict">选型建议</a>
|
||
</nav>
|
||
|
||
<div class="container">
|
||
|
||
<!-- ===== 1. Overview ===== -->
|
||
<section class="section" id="overview">
|
||
<h2 class="section-title">产品概览</h2>
|
||
<div class="two-col">
|
||
<div class="col-metabase">
|
||
<div class="card product-card">
|
||
<img src="images/metabase-dashboard.png" alt="Metabase Dashboard">
|
||
<div class="name" style="color:var(--blue)">Metabase</div>
|
||
<div class="tagline">"人人能用的 BI"</div>
|
||
<div style="margin-top:1rem; text-align:left;">
|
||
<p><strong>创建:</strong>2015 年,Metabase Inc.(旧金山)</p>
|
||
<p><strong>语言:</strong>Clojure(后端)+ TypeScript(前端)</p>
|
||
<p><strong>协议:</strong>AGPL-3.0(开源)+ 商业版</p>
|
||
<p><strong>最新版:</strong>v0.59.4(2026-03-24)</p>
|
||
<p><strong>定位:</strong>让非技术人员也能做数据分析,极致易用</p>
|
||
<p style="margin-top:0.8rem;">
|
||
<span class="tag tag-blue">零代码</span>
|
||
<span class="tag tag-blue">拖拽建图</span>
|
||
<span class="tag tag-blue">5分钟部署</span>
|
||
<span class="tag tag-blue">中文界面</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col-superset">
|
||
<div class="card product-card">
|
||
<img src="images/superset-dashboard.png" alt="Superset Dashboard">
|
||
<div class="name" style="color:var(--orange)">Apache Superset</div>
|
||
<div class="tagline">"数据工程师的瑞士军刀"</div>
|
||
<div style="margin-top:1rem; text-align:left;">
|
||
<p><strong>创建:</strong>2015 年 Airbnb 内部,2021 年 Apache 顶级项目</p>
|
||
<p><strong>语言:</strong>Python(后端)+ TypeScript/React(前端)</p>
|
||
<p><strong>协议:</strong>Apache 2.0(完全开源,无商业限制)</p>
|
||
<p><strong>最新版:</strong>v6.0.0(2025-12-18)</p>
|
||
<p><strong>定位:</strong>功能强大的企业级 BI,面向数据分析师</p>
|
||
<p style="margin-top:0.8rem;">
|
||
<span class="tag tag-orange">SQL Lab</span>
|
||
<span class="tag tag-orange">50+ 图表</span>
|
||
<span class="tag tag-orange">80+ 数据源</span>
|
||
<span class="tag tag-orange">Apache 顶级</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 2. GitHub Stats ===== -->
|
||
<section class="section" id="github">
|
||
<h2 class="section-title">GitHub 社区数据</h2>
|
||
<div class="two-col">
|
||
<div class="col-metabase">
|
||
<div class="stats-grid">
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--blue)">46.5K</div>
|
||
<div class="label">Stars</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--blue)">6.3K</div>
|
||
<div class="label">Forks</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--blue)">495</div>
|
||
<div class="label">贡献者</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--blue)">4,016</div>
|
||
<div class="label">Open Issues</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col-superset">
|
||
<div class="stats-grid">
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--orange)">71.1K</div>
|
||
<div class="label">Stars</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--orange)">16.8K</div>
|
||
<div class="label">Forks</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--orange)">1,472</div>
|
||
<div class="label">贡献者</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="num" style="color:var(--orange)">1,161</div>
|
||
<div class="label">Open Issues</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="card" style="text-align:center; color:var(--text-dim);">
|
||
Superset 的 GitHub 热度更高(Stars 多 53%),社区贡献者多 3 倍,但 Metabase 的 Issue 数也更多(可能说明用户基数大、反馈活跃)。
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 3. Deployment ===== -->
|
||
<section class="section" id="deploy">
|
||
<h2 class="section-title">部署对比</h2>
|
||
<div class="card" style="overflow-x:auto;">
|
||
<table class="comp-table">
|
||
<thead>
|
||
<tr><th>维度</th><th>Metabase</th><th>Apache Superset</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Docker 启动</td>
|
||
<td class="win">一行命令,5 分钟</td>
|
||
<td>docker-compose 多容器,30-60 分钟</td>
|
||
</tr>
|
||
<tr>
|
||
<td>组件数</td>
|
||
<td class="win">单容器</td>
|
||
<td>Web + Celery Worker + Celery Beat + Redis + 元数据库</td>
|
||
</tr>
|
||
<tr>
|
||
<td>最低内存</td>
|
||
<td class="win">1 GB(开发)/ 2 GB(生产)</td>
|
||
<td>4 GB(开发)/ 8 GB(生产)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>最低 CPU</td>
|
||
<td class="win">1 核</td>
|
||
<td>2 核起步,推荐 4 核</td>
|
||
</tr>
|
||
<tr>
|
||
<td>部署方式</td>
|
||
<td>Docker / JAR 文件 / Metabase Cloud</td>
|
||
<td>Docker Compose / Kubernetes / pip install</td>
|
||
</tr>
|
||
<tr>
|
||
<td>托管云服务</td>
|
||
<td>Metabase Cloud(官方)</td>
|
||
<td>Preset.io(商业托管版)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>运维难度</td>
|
||
<td class="win">低</td>
|
||
<td>中高(Redis、Celery 需要维护)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 4. Features ===== -->
|
||
<section class="section" id="features">
|
||
<h2 class="section-title">核心功能对比</h2>
|
||
<div class="card" style="overflow-x:auto;">
|
||
<table class="comp-table">
|
||
<thead>
|
||
<tr><th>功能</th><th>Metabase</th><th>Apache Superset</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>零代码查询</td>
|
||
<td class="win">可视化 Question 构建器,点击探索,非常直觉</td>
|
||
<td>Explore 界面有,但更复杂,面向数据专业人员</td>
|
||
</tr>
|
||
<tr>
|
||
<td>SQL 编辑器</td>
|
||
<td>内置,有自动补全、变量、代码片段</td>
|
||
<td class="win">SQL Lab:自动补全 + 查询历史 + 预览 + 多标签</td>
|
||
</tr>
|
||
<tr>
|
||
<td>仪表盘</td>
|
||
<td>拖拽布局、自动调整、筛选器、交互行为</td>
|
||
<td class="win">拖拽布局、筛选栏、交叉筛选、Markdown、标签页</td>
|
||
</tr>
|
||
<tr>
|
||
<td>告警通知</td>
|
||
<td class="win">问题级告警:邮件、Slack、Webhook,支持 cron</td>
|
||
<td>SQL 条件告警 + 定时报告,需配置 Celery + SMTP</td>
|
||
</tr>
|
||
<tr>
|
||
<td>嵌入能力</td>
|
||
<td class="win">4 种方式:静态签名、Guest、React SDK、全应用 iframe</td>
|
||
<td>Guest Token + iframe + Embedded SDK</td>
|
||
</tr>
|
||
<tr>
|
||
<td>REST API</td>
|
||
<td>80+ 端点组</td>
|
||
<td class="win">全 CRUD API + Swagger 文档</td>
|
||
</tr>
|
||
<tr>
|
||
<td>数据源数量</td>
|
||
<td>30 个(20 官方 + 10 社区)</td>
|
||
<td class="win">80+ 个(任何有 SQLAlchemy 适配器的数据库)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>AI 能力</td>
|
||
<td>Metabot AI($100/月附加功能,500 次请求)</td>
|
||
<td class="lose">无内置 AI</td>
|
||
</tr>
|
||
<tr>
|
||
<td>异步查询</td>
|
||
<td class="lose">不支持(同步查询)</td>
|
||
<td class="win">Celery 异步查询,适合长时间运行的查询</td>
|
||
</tr>
|
||
<tr>
|
||
<td>自定义图表插件</td>
|
||
<td class="lose">不支持</td>
|
||
<td class="win">npm 包形式的图表插件系统,可自定义</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 5. Chart Types ===== -->
|
||
<section class="section" id="charts">
|
||
<h2 class="section-title">图表类型对比</h2>
|
||
<div class="two-col">
|
||
<div class="col-metabase">
|
||
<div class="card">
|
||
<h3>Metabase — 23 种图表</h3>
|
||
<p>
|
||
<span class="tag tag-blue">折线图</span>
|
||
<span class="tag tag-blue">柱状图</span>
|
||
<span class="tag tag-blue">面积图</span>
|
||
<span class="tag tag-blue">组合图</span>
|
||
<span class="tag tag-blue">条形图</span>
|
||
<span class="tag tag-blue">散点图</span>
|
||
<span class="tag tag-blue">气泡图</span>
|
||
<span class="tag tag-blue">饼图</span>
|
||
<span class="tag tag-blue">甜甜圈图</span>
|
||
<span class="tag tag-blue">旭日图</span>
|
||
<span class="tag tag-blue">漏斗图</span>
|
||
<span class="tag tag-blue">瀑布图</span>
|
||
<span class="tag tag-blue">桑基图</span>
|
||
<span class="tag tag-blue">直方图</span>
|
||
<span class="tag tag-blue">箱线图</span>
|
||
<span class="tag tag-blue">表格</span>
|
||
<span class="tag tag-blue">透视表</span>
|
||
<span class="tag tag-blue">数字卡片</span>
|
||
<span class="tag tag-blue">趋势</span>
|
||
<span class="tag tag-blue">进度条</span>
|
||
<span class="tag tag-blue">仪表盘</span>
|
||
<span class="tag tag-blue">地图</span>
|
||
<span class="tag tag-blue">详情视图</span>
|
||
</p>
|
||
<p style="margin-top:1rem; color:var(--text-dim);">覆盖常用场景,满足日常业务分析需求。</p>
|
||
</div>
|
||
</div>
|
||
<div class="col-superset">
|
||
<div class="card">
|
||
<h3>Apache Superset — 40+ 种图表</h3>
|
||
<p>
|
||
<span class="tag tag-orange">折线图</span>
|
||
<span class="tag tag-orange">柱状图</span>
|
||
<span class="tag tag-orange">面积图</span>
|
||
<span class="tag tag-orange">散点图</span>
|
||
<span class="tag tag-orange">平滑线</span>
|
||
<span class="tag tag-orange">阶梯图</span>
|
||
<span class="tag tag-orange">双Y轴混合</span>
|
||
<span class="tag tag-orange">饼图</span>
|
||
<span class="tag tag-orange">甜甜圈</span>
|
||
<span class="tag tag-orange">旭日图</span>
|
||
<span class="tag tag-orange">矩形树图</span>
|
||
<span class="tag tag-orange">漏斗图</span>
|
||
<span class="tag tag-orange">雷达图</span>
|
||
<span class="tag tag-orange">仪表盘</span>
|
||
<span class="tag tag-orange">网络图</span>
|
||
<span class="tag tag-orange">桑基图</span>
|
||
<span class="tag tag-orange">热力图</span>
|
||
<span class="tag tag-orange">日历热力图</span>
|
||
<span class="tag tag-orange">箱线图</span>
|
||
<span class="tag tag-orange">直方图</span>
|
||
<span class="tag tag-orange">瀑布图</span>
|
||
<span class="tag tag-orange">气泡图</span>
|
||
<span class="tag tag-orange">子弹图</span>
|
||
<span class="tag tag-orange">大数字</span>
|
||
<span class="tag tag-orange">趋势数字</span>
|
||
<span class="tag tag-orange">表格</span>
|
||
<span class="tag tag-orange">透视表</span>
|
||
<span class="tag tag-orange">世界地图</span>
|
||
<span class="tag tag-orange">国家地图</span>
|
||
<span class="tag tag-orange">deck.gl 散点</span>
|
||
<span class="tag tag-orange">deck.gl 弧线</span>
|
||
<span class="tag tag-orange">deck.gl 网格</span>
|
||
<span class="tag tag-orange">deck.gl 六边形</span>
|
||
<span class="tag tag-orange">平行坐标</span>
|
||
<span class="tag tag-orange">玫瑰图</span>
|
||
<span class="tag tag-orange">分区图</span>
|
||
<span class="tag tag-orange">词云</span>
|
||
<span class="tag tag-orange">自定义 HTML</span>
|
||
<span class="tag tag-orange">+ 自定义插件</span>
|
||
</p>
|
||
<p style="margin-top:1rem; color:var(--text-dim);">基于 ECharts 插件架构,还可以自行开发新图表类型。</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 6. UX ===== -->
|
||
<section class="section" id="ux">
|
||
<h2 class="section-title">用户体验</h2>
|
||
<div class="card" style="overflow-x:auto;">
|
||
<table class="comp-table">
|
||
<thead>
|
||
<tr><th>维度</th><th>Metabase</th><th>Apache Superset</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>学习曲线</td>
|
||
<td class="win">低 — 非技术人员 15 分钟上手</td>
|
||
<td>中高 — 需要 SQL 知识才能发挥全部能力</td>
|
||
</tr>
|
||
<tr>
|
||
<td>UI 设计哲学</td>
|
||
<td class="win">消费级打磨,被称为"BI 界的 Apple"</td>
|
||
<td>功能优先,配置项多,界面专业但不够美观</td>
|
||
</tr>
|
||
<tr>
|
||
<td>零代码能力</td>
|
||
<td class="win">强 — 可视化构建器处理 JOIN、筛选、聚合</td>
|
||
<td>有限 — 复杂查询必须进 SQL Lab</td>
|
||
</tr>
|
||
<tr>
|
||
<td>是否必须会 SQL</td>
|
||
<td class="win">可选,大部分功能不需要</td>
|
||
<td>实际上必须,否则只能做基础探索</td>
|
||
</tr>
|
||
<tr>
|
||
<td>移动端</td>
|
||
<td>响应式网页,无原生 App</td>
|
||
<td>响应式网页,无原生 App,布局适配差</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 7. Data ===== -->
|
||
<section class="section" id="data">
|
||
<h2 class="section-title">数据处理能力</h2>
|
||
<div class="card" style="overflow-x:auto;">
|
||
<table class="comp-table">
|
||
<thead>
|
||
<tr><th>维度</th><th>Metabase</th><th>Apache Superset</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>数据量级</td>
|
||
<td>中小规模,大结果集可能卡顿</td>
|
||
<td class="win">为大数据引擎设计(Presto、Trino、Spark)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>查询执行</td>
|
||
<td>同步直查,性能=数据库性能</td>
|
||
<td class="win">支持 Celery 异步查询,长查询不阻塞</td>
|
||
</tr>
|
||
<tr>
|
||
<td>缓存</td>
|
||
<td>内置缓存 + 预热刷新(v53+),<span class="tag tag-red">高级缓存需付费版</span></td>
|
||
<td class="win">Redis 缓存,可按图表/仪表盘配置,<span class="tag tag-green">开源免费</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td>实时刷新</td>
|
||
<td>仪表盘自动刷新(最短 1 分钟)</td>
|
||
<td>仪表盘自动刷新 + 强制刷新按钮</td>
|
||
</tr>
|
||
<tr>
|
||
<td>支持数据源</td>
|
||
<td>30 个</td>
|
||
<td class="win">80+ 个</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 8. Security ===== -->
|
||
<section class="section" id="security">
|
||
<h2 class="section-title">安全与权限</h2>
|
||
<div class="card" style="overflow-x:auto;">
|
||
<table class="comp-table">
|
||
<thead>
|
||
<tr><th>功能</th><th>Metabase</th><th>Apache Superset</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>认证方式</td>
|
||
<td>邮箱/密码、Google SSO、LDAP(免费)<br>SAML、JWT(<span class="tag tag-red">付费版</span>)</td>
|
||
<td class="win">数据库认证、OAuth 2.0、OIDC、LDAP(<span class="tag tag-green">全免费</span>)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>SSO 单点登录</td>
|
||
<td>Google SSO 免费,SAML/JWT <span class="tag tag-red">付费版</span></td>
|
||
<td class="win">OAuth/OIDC <span class="tag tag-green">免费内置</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td>行级权限(RLS)</td>
|
||
<td><span class="tag tag-red">仅付费版</span></td>
|
||
<td class="win">SQL 级 RLS 筛选,<span class="tag tag-green">免费</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td>列级权限</td>
|
||
<td><span class="tag tag-red">仅付费版</span></td>
|
||
<td>需通过虚拟数据集实现</td>
|
||
</tr>
|
||
<tr>
|
||
<td>审计日志</td>
|
||
<td><span class="tag tag-red">仅付费版</span></td>
|
||
<td>基础日志(需自定义配置)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>权限模型</td>
|
||
<td>组 + 数据库/Schema/表级别</td>
|
||
<td>角色(Admin/Alpha/Gamma/自定义)+ 数据源级别</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="card" style="background:rgba(239,68,68,0.05); border-color:rgba(239,68,68,0.2);">
|
||
<p style="color:var(--red); font-weight:600;">注意:Metabase 的很多企业级安全功能(SSO、RLS、审计)锁在付费版后面。Superset 开源版全部免费提供。</p>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 9. Collaboration ===== -->
|
||
<section class="section" id="collab">
|
||
<h2 class="section-title">协作功能</h2>
|
||
<div class="card" style="overflow-x:auto;">
|
||
<table class="comp-table">
|
||
<thead>
|
||
<tr><th>功能</th><th>Metabase</th><th>Apache Superset</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>分享</td>
|
||
<td class="win">公开链接、Guest 嵌入、集合共享、直接 URL</td>
|
||
<td>公开仪表盘(需开启)、URL、嵌入</td>
|
||
</tr>
|
||
<tr>
|
||
<td>定时报告</td>
|
||
<td class="win">仪表盘订阅:邮件/Slack/Webhook,cron 调度</td>
|
||
<td>告警+报告:邮件/Slack,需配 Celery Beat</td>
|
||
</tr>
|
||
<tr>
|
||
<td>内容组织</td>
|
||
<td class="win">集合(文件夹),支持嵌套</td>
|
||
<td>文件夹 + 标签</td>
|
||
</tr>
|
||
<tr>
|
||
<td>注释/标注</td>
|
||
<td>时间线事件(在时间序列上标记)</td>
|
||
<td>图表注释层</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 10. Pricing ===== -->
|
||
<section class="section" id="price">
|
||
<h2 class="section-title">价格对比</h2>
|
||
<div class="price-grid">
|
||
<div class="price-card" style="border-top:3px solid var(--blue);">
|
||
<h3 style="color:var(--blue);">Metabase</h3>
|
||
<div class="price-tier">
|
||
<span class="name">开源版</span>
|
||
<span class="cost">免费</span>
|
||
</div>
|
||
<div class="price-tier">
|
||
<span class="name">Starter(云托管)</span>
|
||
<span>$100/月 + $6/人/月</span>
|
||
</div>
|
||
<div class="price-tier">
|
||
<span class="name">Pro(云/自部署)</span>
|
||
<span>$575/月 + $12/人/月</span>
|
||
</div>
|
||
<div class="price-tier">
|
||
<span class="name">Enterprise</span>
|
||
<span>~$20,000+/年起</span>
|
||
</div>
|
||
<p style="margin-top:1rem; color:var(--text-dim); font-size:0.85rem;">
|
||
附加功能:Metabot AI $100/月、内置存储 $40/月、高级转换 $250/月
|
||
</p>
|
||
</div>
|
||
<div class="price-card" style="border-top:3px solid var(--orange);">
|
||
<h3 style="color:var(--orange);">Apache Superset</h3>
|
||
<div class="price-tier">
|
||
<span class="name">开源版</span>
|
||
<span class="cost">完全免费(所有功能)</span>
|
||
</div>
|
||
<div class="price-tier">
|
||
<span class="name">Preset Starter(托管)</span>
|
||
<span class="cost">免费(5 用户)</span>
|
||
</div>
|
||
<div class="price-tier">
|
||
<span class="name">Preset Professional</span>
|
||
<span>$25/人/月</span>
|
||
</div>
|
||
<div class="price-tier">
|
||
<span class="name">Preset Enterprise</span>
|
||
<span>按需报价</span>
|
||
</div>
|
||
<p style="margin-top:1rem; color:var(--text-dim); font-size:0.85rem;">
|
||
开源版 = 全部功能免费。成本 = 服务器 + 运维人力。第三方商业支持约 $5,000+/年
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="card" style="margin-top:1rem;">
|
||
<h3>13 人团队年费估算</h3>
|
||
<table class="comp-table">
|
||
<thead>
|
||
<tr><th>方案</th><th>Metabase</th><th>Apache Superset</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>自部署开源版</td>
|
||
<td class="cost" style="color:var(--green)">0 元(仅服务器成本)</td>
|
||
<td class="cost" style="color:var(--green)">0 元(仅服务器成本)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>云托管(入门)</td>
|
||
<td>~$1,776/年(≈1.3万元)</td>
|
||
<td class="win">免费(5人)或 $3,900/年</td>
|
||
</tr>
|
||
<tr>
|
||
<td>带企业安全功能</td>
|
||
<td>~$8,076/年(Pro)</td>
|
||
<td class="win">0 元(开源版已包含)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 11. Scores ===== -->
|
||
<section class="section" id="scores">
|
||
<h2 class="section-title">综合评分</h2>
|
||
<div class="card">
|
||
<div class="score-row">
|
||
<span class="score-label">易用性</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:9.5;">Metabase 9.5</div>
|
||
<div class="bar bar-orange" style="flex:6;">Superset 6</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">部署难度</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:9;">Metabase 9</div>
|
||
<div class="bar bar-orange" style="flex:5;">Superset 5</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">功能丰富度</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:7;">Metabase 7</div>
|
||
<div class="bar bar-orange" style="flex:9.5;">Superset 9.5</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">图表种类</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:6.5;">Metabase 6.5</div>
|
||
<div class="bar bar-orange" style="flex:9.5;">Superset 9.5</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">数据源</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:6;">Metabase 6</div>
|
||
<div class="bar bar-orange" style="flex:9.5;">Superset 9.5</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">安全(免费版)</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:5;">Metabase 5</div>
|
||
<div class="bar bar-orange" style="flex:8.5;">Superset 8.5</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">性价比</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:7;">Metabase 7</div>
|
||
<div class="bar bar-orange" style="flex:9.5;">Superset 9.5</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">协作能力</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:8;">Metabase 8</div>
|
||
<div class="bar bar-orange" style="flex:6.5;">Superset 6.5</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">社区活跃度</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:7.5;">Metabase 7.5</div>
|
||
<div class="bar bar-orange" style="flex:9;">Superset 9</div>
|
||
</div>
|
||
</div>
|
||
<div class="score-row">
|
||
<span class="score-label">大数据支持</span>
|
||
<div class="score-bar">
|
||
<div class="bar bar-blue" style="flex:5.5;">Metabase 5.5</div>
|
||
<div class="bar bar-orange" style="flex:9.5;">Superset 9.5</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ===== 12. Verdict ===== -->
|
||
<section class="section" id="verdict">
|
||
<h2 class="section-title">选型建议</h2>
|
||
<div class="verdict-grid">
|
||
<div class="verdict-card">
|
||
<div class="emoji">👨💼</div>
|
||
<h4>业务团队为主,不懂技术</h4>
|
||
<p>非技术人员自助分析,快速出报表,不想写 SQL</p>
|
||
<div class="rec rec-blue">选 Metabase</div>
|
||
</div>
|
||
<div class="verdict-card">
|
||
<div class="emoji">👨💻</div>
|
||
<h4>有技术团队,数据量大</h4>
|
||
<p>数据工程师/分析师主导,对接大数据引擎,需要深度定制</p>
|
||
<div class="rec rec-orange">选 Superset</div>
|
||
</div>
|
||
<div class="verdict-card">
|
||
<div class="emoji">💰</div>
|
||
<h4>预算有限,要企业安全功能</h4>
|
||
<p>需要 SSO、行级权限、审计日志,但不想花钱</p>
|
||
<div class="rec rec-orange">选 Superset</div>
|
||
</div>
|
||
<div class="verdict-card">
|
||
<div class="emoji">⚡</div>
|
||
<h4>一个人运维,快速跑起来</h4>
|
||
<p>不想折腾 Redis/Celery,一行 Docker 搞定</p>
|
||
<div class="rec rec-blue">选 Metabase</div>
|
||
</div>
|
||
<div class="verdict-card">
|
||
<div class="emoji">🏢</div>
|
||
<h4>嵌入到自己产品中</h4>
|
||
<p>SaaS 产品需要嵌入式 BI,白标定制</p>
|
||
<div class="rec rec-blue">选 Metabase</div>
|
||
</div>
|
||
<div class="verdict-card">
|
||
<div class="emoji">🌍</div>
|
||
<h4>完全开源,无商业限制</h4>
|
||
<p>Apache 2.0 协议,可以自由修改、商业使用、不开源</p>
|
||
<div class="rec rec-orange">选 Superset</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card" style="margin-top:2rem; text-align:center; background:linear-gradient(135deg, rgba(59,130,246,0.08), rgba(249,115,22,0.08));">
|
||
<h3 style="font-size:1.4rem; margin-bottom:1rem;">一句话总结</h3>
|
||
<p style="font-size:1.15rem; color:#fff;">
|
||
<strong style="color:var(--blue)">Metabase</strong> = 易用优先,让所有人都能看懂数据<br>
|
||
<strong style="color:var(--orange)">Superset</strong> = 功能优先,让专业人员做深度分析
|
||
</p>
|
||
<p style="margin-top:1rem; color:var(--text-dim);">
|
||
不确定怎么选?先都试试 — 两个都支持 Docker 一行命令启动。
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
</div>
|
||
|
||
<footer>
|
||
<p>BI 系统对比研究 — Metabase vs Apache Superset — 2026.03.26</p>
|
||
<p style="margin-top:0.3rem;">数据来源:GitHub、官方文档、Gartner、社区评测</p>
|
||
</footer>
|
||
|
||
</body>
|
||
</html>
|