こんにちは、エクスチュアの石原です。
前回に引き続き、Streamlit in Snowflakeを使用したシンプルでインタラクティブなダッシュボード作成についてご紹介します。
前回の記事をご覧になってない方はぜひ併せてお読みください。
前回の記事では、SISによるアプリケーションのデプロイ方法を紹介しました。今回は実際にStreamlitを使用したダッシュボード構築の方法についてご紹介します。
Snowsightでのダッシュボード作成
今回はStreamlit in SnowflakeとSnowflake Notebookを使用してダッシュボードを作成したいと思います。
今回使用したデータはhttps://www.kaggle.com/datasets/shivamb/netflix-showsです。
データはCSVでダウンロードして、Snowflake上でテーブル化しました。
今回コード開発にはNotebookを使用します。streamlitの結果をすぐに確認できるので非常に便利です。
データの確認
|


まず、df.info()やdf.head()でデータセットの中身を確認するとカンマ区切りのデータやnull値があることがわかったのでその辺りの処理も踏まえていきます。
データ加工
日付のカラムをdatetime型に変換し、次ごとのカラムを新規追加しました。
|
ダッシュボードの内容
ダッシュボードとして可視化する内容は以下のものにします。
- KPI
- リリース月ごとのコンテンツ数の推移
- コンテンツのタイプ別分布
- ジャンル別コンテンツ数の分布
- コンテンツ追加日の傾向
- Rating分布
ダッシュボードの見た目を整えるために、st.cloumnsを使用していきます。
KPI
KPIの作成にはst.metricが使用できます。delta値に前回期間からの差分の数値を入れるとダッシュボードらしい表示が出来ます。
|

作成したい項目をdfから取得する方法を生成AIに投げてその結果を張り付けていい感じに調整していきましょう。(Snowflake Copilotが使用できる環境であれば、そちらでのコード生成をぜひお試しください)
個人的にデータの作成と描画処理は分離することでstreamlitでの可視化の際に各コンテンツを動かしやすい構造になるのでおすすめです。
|
|
ノートブックだと結果の確認が簡単なので、ひとつづつ結果を追加していきましょう。

コンテンツのタイプ別分布
グラフには今回plotlyを使用します。
基本的に集計⇒可視化の流れで一つずつグラフを作成していきます。
|

コンテンツのタイプ別分布
|

ジャンルごとのコンテンツ分布
|

コンテンツ追加日の傾向
|

Rating分布
Kaggleのデータセットページに記載されている内容もありますが、Ratingの内容がわからなかったので確認してみます。
|
|
時刻が誤って入っているものがありますね。今回は該当のレコードはdurationに修正しておきます。
|
この評価は視聴者層の絞りこみに使用されており、大人向けのものから順に以下のようになっています
|
大人向け、子供向け、一般向けに分けてカテゴリを定義してみます。
|

スライダーを追加
|
期間が狭い場合にKPIのlast_month_top_countryでエラーになるので修正
|
また、冒頭に画面全体の幅を変更するコード、タイトル、メッセージを追加することでダッシュボードとしての体裁を整えます。
|
完成
こちらが完成したダッシュボードです。
いかがでしょうか? なかなか見栄えの良い仕上がりになっていると思います。

まとめ
今回の記事では、Streamlit in Snowflakeを使ったダッシュボード作成の方法についてご紹介しました。BIツールを使用しないでも、このぐらいの可視化であれば簡単に実施することが出来ます。
皆さんもぜひ、SISを使ってダッシュボード作成に挑戦してみてください!
エクスチュアはマーケティングテクノロジーを実践的に利用することで企業のマーケティング活動を支援しています。
ツールの活用にお困りの方はお気軽にお問い合わせください。






