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

三橋 啓多
Co-founder, COO
データ主導の意思決定が当たり前になった今、誰でも扱える強力でスマートな分析ツールが求められています。ここでは Streamlit の手軽さと BigQuery のスケール、そして最新 AI を組み合わせたオープンソースの BI ダッシュボードをご紹介します。
つくってみたい方へ このリポジトリはスターターパックです。社内向けに専用ダッシュボードを用意したい、AI 分析を試したい、最新のデータエンジニアリングを学びたい――そんな方に最適なコードベースになっています。
ダッシュボードの全体像
-
GA4 分析
- トラフィック状況、ユーザー行動、CV パターンを詳細に可視化
-
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 でバージョン管理も安心