オープンソースBIツール比較:Metabase vs Apache Superset vs Redash でデータ可視化をセルフホストする
オープンソースラボ編集部 ・ 2026年6月13日
オープンソースBIツール比較:Metabase vs Apache Superset vs Redash でデータ可視化をセルフホストする
TableauやLookerのような高価なBIツールを使わずに、社内のデータを美しいダッシュボードで可視化しましょう。Metabase・Apache Superset・RedashはオープンソースでセルフホストできるBIプラットフォームです。ノーコードでダッシュボードを作成し、SQLでカスタムクエリも書けます。
BIツールが解決する課題
- データの民主化: エンジニア以外もSQLを書かずにデータを探索できる
- ダッシュボード共有: 経営陣・マーケター・営業に数値を自動更新ダッシュボードで届ける
- SQLエディタ: アナリストがBigQuery・Redshiftに接続してアドホック分析
- アラート: KPIが閾値を超えたらSlackに自動通知
- 埋め込み(Embedded BI): 自社サービスにダッシュボードを埋め込む
主要ツールの概要
Metabase
最も使いやすいオープンソースBIツールです。ドラッグ&ドロップのクエリビルダー・自動生成ダッシュボード・自然言語でのデータ質問(AI検索)を提供します。技術者でなくてもすぐに使えるUIが特徴です。
# MetabaseをDockerで起動(H2内蔵DB)
docker run -d -p 3000:3000 --name metabase metabase/metabase
# PostgreSQLを使う本番構成
docker run -d -p 3000:3000 -e MB_DB_TYPE=postgres -e MB_DB_DBNAME=metabase -e MB_DB_PORT=5432 -e MB_DB_USER=metabase -e MB_DB_PASS=metabase_pass -e MB_DB_HOST=postgres --name metabase metabase/metabase
# UIは http://localhost:3000 でアクセス
# docker-compose(Metabase + PostgreSQL)
version: '3.8'
services:
metabase-db:
image: postgres:16
environment:
POSTGRES_DB: metabase
POSTGRES_USER: metabase
POSTGRES_PASSWORD: metabase_pass
volumes:
- metabase_db:/var/lib/postgresql/data
metabase:
image: metabase/metabase:v0.50.0
ports:
- "3000:3000"
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: metabase
MB_DB_PORT: 5432
MB_DB_USER: metabase
MB_DB_PASS: metabase_pass
MB_DB_HOST: metabase-db
MB_SITE_URL: https://metabase.example.com
MB_SEND_EMAIL_ON_FIRST_LOGIN_FROM_NEW_DEVICE: "true"
depends_on:
- metabase-db
# Metabase API でダッシュボードの埋め込みトークンを生成
import httpx
import jwt
import time
METABASE_SITE_URL = "http://localhost:3000"
METABASE_SECRET_KEY = "your-embedding-secret-key"
def get_embed_url(dashboard_id: int, params: dict = None) -> str:
payload = {
"resource": {"dashboard": dashboard_id},
"params": params or {},
"exp": int(time.time()) + 600, # 10分有効
}
token = jwt.encode(payload, METABASE_SECRET_KEY, algorithm="HS256")
return f"{METABASE_SITE_URL}/embed/dashboard/{token}#bordered=true&titled=true"
# Next.jsのページで埋め込み
embed_url = get_embed_url(dashboard_id=1, params={"user_id": "123"})
print(f"<iframe src='{embed_url}' width='100%' height='600'></iframe>")
Apache Superset
AirbnbがPythonで開発した高機能BIプラットフォームです。50以上のビジュアライゼーション・SQLエディタ・カスタムダッシュボード・DBT統合を提供します。Metabaseよりも高機能ですが、学習コストが高めです。
# SupersetをDockerで起動
git clone https://github.com/apache/superset.git
cd superset
docker compose up -d
# UIは http://localhost:8088 でアクセス(admin/admin)
# または Helmでk8sにデプロイ
helm repo add superset https://apache.github.io/superset
helm install superset superset/superset --set supersetNode.replicaCount=1 --set init.adminUser.password=admin123 --namespace superset --create-namespace
# Superset REST APIでチャートを作成
import httpx
base_url = "http://localhost:8088"
# 認証
resp = httpx.post(f"{base_url}/api/v1/security/login",
json={"username": "admin", "password": "admin", "provider": "db", "refresh": True})
access_token = resp.json()["access_token"]
headers = {"Authorization": f"Bearer {access_token}"}
# データソースを登録
database = httpx.post(f"{base_url}/api/v1/database/", headers=headers,
json={
"database_name": "My BigQuery",
"sqlalchemy_uri": "bigquery://my-project",
"expose_in_sqllab": True,
}).json()
# チャートの作成
chart = httpx.post(f"{base_url}/api/v1/chart/", headers=headers,
json={
"chart_title": "月別売上",
"viz_type": "bar",
"datasource_id": database["id"],
"datasource_type": "table",
"params": '{"metrics": ["sum__amount"], "groupby": ["month"]}',
}).json()
print(f"Created chart: {chart['id']}")
Redash
シンプルなSQLベースのダッシュボードツールです。SQLクエリを書いてビジュアライズ→ダッシュボードに並べる、というシンプルなワークフローが特徴です。エンジニア・アナリスト向けで、ノーコード機能はMetabaseほど強くありません。
# Redashをdocker-composeで起動
git clone https://github.com/getredash/setup.git redash-setup
cd redash-setup
./setup.sh
# または
docker compose up -d
# UIは http://localhost:5000 でアクセス
# Redash APIでクエリを実行
import httpx
import time
API_KEY = "your-redash-api-key"
BASE_URL = "http://localhost:5000"
def run_query(query_id: int) -> dict:
headers = {"Authorization": f"Key {API_KEY}"}
# クエリを実行してジョブIDを取得
resp = httpx.post(f"{BASE_URL}/api/queries/{query_id}/results",
headers=headers, json={})
job_id = resp.json()["job"]["id"]
# 結果をポーリング
while True:
status = httpx.get(f"{BASE_URL}/api/jobs/{job_id}", headers=headers).json()
if status["job"]["status"] in (3, 4): # 3=success, 4=error
break
time.sleep(1)
# 結果取得
result = httpx.get(f"{BASE_URL}/api/query_results/{status['job']['query_result_id']}",
headers=headers).json()
return result["query_result"]["data"]["rows"]
rows = run_query(query_id=42)
print(f"Got {len(rows)} rows")
機能比較表
| 比較項目 | Metabase | Apache Superset | Redash |
|---|---|---|---|
| ノーコードクエリビルダー | ✅ 強力 | ✅ | ❌ |
| SQLエディタ | ✅ | ✅ | ✅ 中心機能 |
| ダッシュボード | ✅ | ✅ 高機能 | ✅ |
| ビジュアライゼーション種類 | 40+ | 50+ | 20+ |
| 埋め込み(iframe) | ✅ | ✅ | ✅ |
| AIデータ質問 | ✅ MetaAI | ❌ | ❌ |
| アラート | ✅ | ✅ | ✅ |
| dbt統合 | ✅ | ✅ | ❌ |
| ロールベースアクセス | ✅ | ✅ 詳細 | ✅ |
| 行レベルセキュリティ | ✅ | ✅ | ❌ |
| SSO(SAML/OIDC) | ✅ Enterprise | ✅ | ✅ |
| 日本語UI | ✅ | ⚠️ | ❌ |
| 設定の容易さ | ★★★★★ | ★★★☆☆ | ★★★★☆ |
| ライセンス | BUSL 1.1 | Apache 2.0 | BSD 2-Clause |
| GitHub Stars | 38k+ | 62k+ | 25k+ |
BI・データ可視化ツールはknowledgeカテゴリ(/categories/knowledge)で一覧でき、マーケティング分析ツールはマーケティングカテゴリ(/categories/marketing)でも探せます。
FAQ
Q. MetabaseはTableau・Lookerの代替になりますか?
A. 日常的なダッシュボード閲覧・アドホック分析・非エンジニアのデータ探索はMetabaseで十分カバーできます。TableauやLookerが必要になるケース: 複雑なデータモデリングと再利用可能なメトリクス層(LookML相当)・大規模エンタープライズでの詳細なガバナンス・高度なビジュアライゼーションのカスタマイズ性。年間数百万円のコストが問題になっている場合、MetabaseはOSS版でも強力な代替になります。
Q. Metabaseのライセンス(BUSL)は商用利用できますか?
A. BUSL(Business Source License)は「競合するSaaSとして提供しない限り」商用利用可能です。社内のBIツールとして使う・自社のプロダクトに埋め込む用途は商用でも無料です。MetabaseをSaaSとして第三者に提供するビジネス(「BIツールを貸し出す」サービス)は有料ライセンスが必要です。
Q. Apache Supersetでdbtモデルをそのまま使えますか?
A. Supersetにはdbtとのネイティブ統合があります。dbtのmanifest.jsonを読み込むとdbtモデル(テーブル・ビュー)がSupersetのデータセットとして自動登録されます。dbtのカラム説明・メトリクス定義をSupersetに引き継ぐことでデータの一貫性が保てます。dbtのモデルを変更するとSupersetのデータセットも自動更新されます。
Q. 社内のBigQueryをMetabaseに接続する際のセキュリティ設定は?
A. 推奨設定: BigQueryにMetabase専用のサービスアカウントを作成し「BigQueryデータビューア」ロールのみ付与(書き込み権限を与えない)。Metabaseの管理画面でデータベース接続を設定し「SSLのみ」に設定。Metabase自体もHTTPS必須・管理者アカウントのMFA有効化を推奨。さらにMetabaseの「コレクション」機能でダッシュボードへのアクセスをチームごとに制限します。
まとめ
| ユースケース | 推奨ツール |
|---|---|
| 非エンジニア向け・手軽に始める | Metabase |
| 高機能BI・dbt統合 | Apache Superset |
| エンジニア・アナリスト向けSQLダッシュボード | Redash |
| Tableau/Looker代替 | Metabase または Superset |