Squadbase
Jul 8

ショーケース: Streamlit BI ダッシュボード(Google Analytics & EC)– ビジネスインテリジェンスの民主化

三橋 啓多
Co-founder, COO

データ主導の意思決定が当たり前になった今、誰でも扱える強力でスマートな分析ツールが求められています。ここでは Streamlit の手軽さと BigQuery のスケール、そして最新 AI を組み合わせたオープンソースの BI ダッシュボードをご紹介します。

showcase-streamlit-bi-1

showcase-streamlit-bi-2

showcase-streamlit-bi-3

showcase-streamlit-bi-4

つくってみたい方へ このリポジトリはスターターパックです。社内向けに専用ダッシュボードを用意したい、AI 分析を試したい、最新のデータエンジニアリングを学びたい――そんな方に最適なコードベースになっています。


ダッシュボードの全体像

  1. GA4 分析

    • トラフィック状況、ユーザー行動、CV パターンを詳細に可視化
  2. Eコマース分析

    • 売上・在庫・顧客指標まで、オンライン小売の BI を網羅

さらに、自然言語で質問できる AI データエージェント を搭載。Google の Gemini モデルと LangGraph が裏側で動き、SQL を自動生成してインサイトを返します。


技術スタック

# フレームワーク
streamlit = "^1.45.1"
uv        = "超高速パッケージマネージャ"

# データレイヤー
google-cloud-bigquery = "^3.34.0"
pandas  = "^2.2.3"
polars  = "^1.30.0"   # 大規模データに強い

# AI / LLM
langgraph             = "^0.4.8"
langchain-google-genai= "^2.1.5"
google-genai          = "^1.19.0"

# 可視化
plotly     = "^6.1.2"
pygwalker  = "^0.4.9.15"   # ドラッグ&ドロップで EDA

モジュラー構成

components/
├─ ga4/   … GA4 専用の分析パーツ
└─ ec/    … Eコマース専用パーツ
    └─ data_agent/  … AI エージェント実装

各パーツは独立モジュール なので、

  • 保守がラク(壊れにくい)
  • 再利用しやすい(別ダッシュボードにも転用可)
  • テストしやすい(単体検証OK)
  • 拡張もしやすい(新モジュールを追加するだけ)

スマートキャッシュ

@st.cache_data(show_spinner="日次売上を集計中…")
def q_daily_sales(start: date, end: date) -> pd.DataFrame:
    ...

重いクエリもキャッシュで高速レスポンス。 重複アクセスを抑え、BigQuery のコストも節約できます。


AI データエージェント ― 自然言語 → SQL → インサイト

「今月の売上トップ5商品は?」
Gemini が意図を解析
BigQuery SQL を自動生成・実行
グラフと解説を表示

エージェントは対話履歴を保持するので、 「じゃあ先月は?」などのフォローアップも自然に続けられます。


ユースケース

GA4 ダッシュボード

  • トラフィック:セッション/PV/直帰率
  • ユーザー行動:新規 vs リピーター、導線分析
  • 異常検知:移動平均で急増減をアラート
  • アトリビューション:チャネル別 CV
  • 地域分析:国・都市別パフォーマンス

Eコマースダッシュボード

  • 経営サマリ:売上推移・主要 KPI
  • 商品パフォーマンス:売れ筋・死に筋
  • 顧客分析:RFM、LTV、属性
  • オペレーション:在庫・配送・地域別需要
  • 利益分析:粗利率・カテゴリ別貢献度

はじめ方

git clone https://github.com/squadbase/streamlit-business-intelligence
cd streamlit-business-intelligence
uv sync            # 依存関係を一撃インストール

cp .env.example .env   # API キーを設定
streamlit run Home.py  # 起動!

必要な環境変数

SERVICE_ACCOUNT_JSON_BASE64=(BigQuery サービスアカウント)
GOOGLE_API_KEY=(Gemini)
E2B_API_KEY=(コード実行用)

カスタマイズ/拡張

新しい分析モジュールを追加する

# components/your_domain/new_analysis.py
...
def new_analysis_component():
    st.subheader("新しい分析")
    ...

AI エージェントに独自ツールを追加

@tool
def your_custom_tool(query: str) -> str:
    ...
all_tools = [execute_bigquery_sql, execute_python_code, your_custom_tool]

デプロイ ― Squadbase でワンクリック

git push origin main   # プッシュするだけで自動デプロイ
  • メンバー限定アクセス:権限も数分で設定
  • 自動 SSL & セキュアホスティング
  • 利用分析 & フィードバック機構
  • Git ベース CI/CD でバージョン管理も安心

リンク

ショーケース: Streamlit BI ダッシュボード(Google Analytics & EC)– ビジネスインテリジェンスの民主化 | Squadbase Blog