Snowflake + Streamlit in Snowflakeで売上ダッシュボードを30分で作る

追加のBIツールなし。Snowflake標準機能だけで、スタースキーマのデータモデル設計からダッシュボード構築まで一気通貫で実現する方法を紹介します。

この記事でわかること
  • Snowflake標準機能の Streamlit in Snowflake で、BIツールなしでダッシュボードを構築する方法
  • 分析用途に適したスタースキーマのデータモデル設計
  • KPI表示・月別推移・カテゴリ分析・地域分析・顧客セグメント分析の6つのビューの実装例

こんな企業・チームに読んでほしい

本記事は、以下のような課題を抱える企業を想定しています。

Excelでの集計が限界に達している中小〜中堅企業

売上データが数万件を超え、ピボットテーブルでは重くて回らない。月次レポートの作成に毎回数時間かかっている。そんな状況に心当たりがあれば、まさにSnowflake + Streamlitの出番です。

BIツールのコスト・運用負荷がネックになっている企業

Tableau・Power BIなどのライセンス費用(年間数十万〜数百万円)に二の足を踏んでいる。BIサーバーの構築・保守を担える人材がいない。Streamlit in SnowflakeならSnowflakeの利用料に含まれるため、追加コストが発生しません。

データは溜まっているが活用できていない企業

基幹システムやkintone・SaaSにデータはあるが、横断的に見る手段がない。「まずは可視化したい」がスタートラインになっている企業にとって、最初の一歩として最適です。

社内にPython経験者がいるIT企業・DX推進チーム

BIツール固有の言語(DAX・LODなど)を新たに学ぶより、Pythonで書きたい。エンジニア主導でスピーディにダッシュボードを立ち上げたいチームに向いています。

特にフィットする企業像

年商数億〜数十億円規模の企業で、全国に拠点や取引先を持ち、商品カテゴリごとの売上分析や地域別の傾向把握が求められるケース。

今回作るもの

構成要素内容
データベースSALES_DEMO(Snowflake上に構築)
データモデルスタースキーマ(ファクト1テーブル + ディメンション3テーブル)
ダッシュボードStreamlit in Snowflakeで可視化(KPI・月別推移・カテゴリ別・地域別・商品ランキング・顧客セグメント)

データモデル設計(スタースキーマ)

今回採用したのは、分析用途の定番であるスタースキーマです。中央のファクトテーブル(売上トランザクション)を、商品・顧客・地域の3つのディメンションテーブルが取り囲む構成です。

DIM_PRODUCTS DIM_CUSTOMERS DIM_REGIONS ┌─────────────┐ ┌───────────────┐ ┌────────────┐ │ PRODUCT_ID │ │ CUSTOMER_ID │ │ REGION_ID │ │ PRODUCT_NAME│ │ CUSTOMER_NAME │ │ REGION_NAME│ │ CATEGORY │ │ REGION_ID ────┼────▶│ AREA │ │ UNIT_PRICE │ │ SEGMENT │ └────────────┘ └──────┬──────┘ └───────┬───────┘ │ │ ▼ ▼ ┌──────────────────────────────────────┐ │ FACT_SALES │ │ SALE_ID | SALE_DATE | CUSTOMER_ID │ │ PRODUCT_ID | QUANTITY | AMOUNT │ └──────────────────────────────────────┘

ディメンションテーブル

テーブル件数内容
DIM_PRODUCTS10件商品マスタ。電子機器・周辺機器・消耗品の3カテゴリ
DIM_CUSTOMERS10件顧客マスタ。大企業・中小企業・スタートアップの3セグメント
DIM_REGIONS5件以上地域マスタ。東京・大阪・名古屋・福岡・札幌など全国をカバー

ファクトテーブル

テーブル件数期間内容
FACT_SALES5,000件2024/4〜2025/3(1年間)売上トランザクション
ポイント

ダミーデータですが、日本企業の商品名・顧客名・地域名を使っているので、デモやプレゼンでもリアリティがあります。

ダッシュボードの実装

Streamlit in Snowflakeでは、Pythonスクリプト1ファイルだけでダッシュボードが完成します。Snowflake内で動くため、接続情報の設定は不要。get_active_session() だけでデータにアクセスできます。

KPIカード + 月別売上推移

KPIカードと月別売上推移グラフ

KPI表示と月別売上推移の折れ線グラフ

画面上部には4つのKPIカード(総注文数・総売上・平均注文額・顧客数)を横並びに表示しています。一目で全体の規模感を把握できます。

その下には月別売上推移の折れ線グラフ。2024年4月〜2025年3月の1年間で、売上のトレンドや季節変動が確認できます。

カテゴリ別売上 / 地域別売上

カテゴリ別・地域別売上グラフ

カテゴリ別売上(左)と地域別売上(右)の棒グラフ

画面を2分割し、左にカテゴリ別、右に地域別の棒グラフを配置しています。

  • カテゴリ別 ― 電子機器が圧倒的に多く、周辺機器・消耗品と続きます。単価の違いが売上構成に直結していることがわかります
  • 地域別 ― 東京が最大ですが、大阪・名古屋・福岡なども一定のボリュームがあり、全国に分散した売上構造が見えます

商品別売上ランキング

商品別売上ランキングと顧客セグメント別売上

商品別売上ランキング(テーブル表示)

全商品の売上ランキングをテーブル表示しています。ノートPCが約6.4億円でトップ、次いでモニター・プリンターと高単価の電子機器が上位を占めています。

消耗品(HDMIケーブル・LANケーブル)は数量は多いものの、単価が低いため売上金額では下位に。商品戦略の検討材料として活用できます。

顧客セグメント別売上

顧客セグメント別売上グラフ

顧客セグメント別(大企業・中小企業・スタートアップ)の売上比較

顧客を「大企業」「中小企業」「スタートアップ」の3セグメントに分類し、セグメント別の売上を棒グラフで表示しています。中小企業セグメントが最も売上が大きく、大企業・スタートアップが続く構成です。

Streamlit in Snowflakeのメリット

観点従来のBI構成Streamlit in Snowflake
インフラBIサーバー + DB接続設定Snowflake内で完結
セキュリティDB認証情報の管理が必要SnowflakeのRBACをそのまま利用
開発言語BI固有のDAX/LODなどPython(学習コストが低い)
コストBIライセンス費用Snowflakeの利用料に含まれる
カスタマイズツール依存Pythonで自由に拡張可能
特に大きなメリット

Snowflake内で完結するため、データがSnowflakeの外に出ません。BIサーバーへのDB接続情報の管理が不要になり、セキュリティリスクを大幅に低減できます。

おすすめのユースケース

社内向けKPIダッシュボード

BIツール導入前の「まず可視化」に最適。Snowflakeにデータさえ入っていれば、最短30分でダッシュボードが立ち上がります。

営業・経営向けデモ

Snowflake導入提案時の具体的なアウトプット例として。「導入したらこんなことができます」を実際に動く画面で見せられます。

データ品質モニタリング

ETLパイプラインの結果をリアルタイムにチェック。データの整合性やレコード数の推移を常時監視する用途にも向いています。

プロトタイピング

本格的なBI導入前の要件整理・画面イメージ共有に。「こういう分析がしたい」を具体的な画面で関係者と合意形成できます。

まとめ

Snowflake + Streamlit in Snowflakeの組み合わせは、「データを貯める」と「データを見る」を1つのプラットフォームで実現できる強力なソリューションです。

今回のデモでは、KPI表示・時系列分析・カテゴリ分析・地域分析・ランキング・セグメント分析の6つのビューを持つダッシュボードを構築しました。約100行のPythonコードで、これだけの分析画面が作れます。

Snowflakeをすでにお使いの方も、これから導入を検討される方も、まずはStreamlit in Snowflakeでデータの可視化から始めてみてはいかがでしょうか。

Snowflakeの導入・データ活用を支援します

データ基盤の設計からダッシュボード構築まで、御社のデータ活用をトータルでサポートいたします。
「まずはSnowflakeで何ができるのか知りたい」という段階からお気軽にご相談ください。

無料相談はこちら
Facebook
X
LinkedIn

関連記事