Files
bi-metabase-vs-superset/index.html

1032 lines
38 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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 系统全方位对比 &mdash; 帮你做出最合适的选择</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.42026-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.02025-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 &mdash; 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 &mdash; 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">&mdash; 非技术人员 15 分钟上手</td>
<td>中高 &mdash; 需要 SQL 知识才能发挥全部能力</td>
</tr>
<tr>
<td>UI 设计哲学</td>
<td class="win">消费级打磨,被称为"BI 界的 Apple"</td>
<td>功能优先,配置项多,界面专业但不够美观</td>
</tr>
<tr>
<td>零代码能力</td>
<td class="win">&mdash; 可视化构建器处理 JOIN、筛选、聚合</td>
<td>有限 &mdash; 复杂查询必须进 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/Webhookcron 调度</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);">
不确定怎么选?先都试试 &mdash; 两个都支持 Docker 一行命令启动。
</p>
</div>
</section>
</div>
<footer>
<p>BI 系统对比研究 &mdash; Metabase vs Apache Superset &mdash; 2026.03.26</p>
<p style="margin-top:0.3rem;">数据来源GitHub、官方文档、Gartner、社区评测</p>
</footer>
</body>
</html>