はじめに
GDAI事業部Lakehouse部の坂下です。
Databricksのダッシュボード機能を使えば、SQLだけでデータの可視化からダッシュボード作成までを完結できます。 本記事では、カーセールスデータを使って、誰もがDatabricksで簡単にデータ分析を始めるためのステップとベストプラクティスをご紹介します。
データセットの概要
今回の分析で使用するcar_salesテーブルは、クリーンなゴールドテーブルです。データがこの時点で既に整理されています。スキーマとデータ例は以下の通りです。
Car_id: 車のID
Company: メーカー名
Date: 販売日
Price ($): 販売価格
Gender: 購入者の性別

データの先頭5行の例です。

ステップ1: SQLクエリでグラフ作成
まず、分析したいデータをDatabricksのノートブックまたはSQLエディタでクエリを使って抽出します。今回はcar_salesテーブルから、メーカー別の販売台数と販売のトレンドを分析するクエリを作成します。
クエリ1: メーカー別販売台数
メーカーごとの販売台数を比較するためのクエリです。
SELECT Company, COUNT(Car_id) AS total_sales FROM car_sales GROUP BY Company ORDER BY total_sales DESC;
結果ウィンドウの下にある「+」ボタンをクリックし、「可視化の追加」を選択します。
可視化タイプで「棒」を選択します。
X軸にCompanyを、Y軸にtotal_salesを設定します。

クエリ2: 月別販売台数の推移
時系列での販売トレンドを把握するためのクエリです。Date列から月を抽出し、販売台数を集計します。
SELECT DATE_TRUNC('month', Date) AS sales_month, COUNT(Car_id) AS total_sales FROM car_sales GROUP BY sales_month ORDER BY sales_month ASC;
可視化タイプで「折れ線」を選択します。
X軸にsales_monthを、Y軸にtotal_salesを設定します。

クエリ3:価格帯別の販売台数分析
このクエリでは、Price ($)列を使って、「低価格」「中価格」「高価格」の3つの価格帯に車を分類しています。
SELECT CASE WHEN `Price ($)` <= 20000 THEN 'Low Price' WHEN `Price ($)` > 20000 AND `Price ($)` <= 50000 THEN 'Medium Price' ELSE 'High Price' END AS price_segment, COUNT(Car_id) AS total_sales FROM car_sales GROUP BY price_segment ORDER BY total_sales DESC;
この結果を円グラフや棒グラフで可視化すると、どの価格帯の車が最も売れているかが一目でわかります。

クエリ4: 性別ごとの合計売上
Gender列を使って、性別ごとの合計売上(Price ($))を集計するクエリを作成します。
SELECT `Gender`, SUM(`Price ($)`) AS total_revenue FROM abac.tableau_sales.car_sales GROUP BY `Gender` ORDER BY total_revenue DESC;
X軸にGender、Y軸にtotal_revenueを設定することで、性別による売上の違いを比較できます。

クエリ5:月別販売台数と売り上げ推移グラフ
月別の販売台数と合計売上を、異なるスケールのY軸を使って一つのグラフに表示するケースです。
SELECT DATE_TRUNC('month', Date) AS sales_month, COUNT(Car_id) AS total_sales, SUM(`Price ($)`) AS total_revenue FROM abac.tableau_sales.car_sales GROUP BY sales_month ORDER BY sales_month ASC;
「可視化タイプ」で「折れ線」を選択します。
「X軸」にsales_monthを、「Y軸」にtotal_salesを設定します。
「Y軸の追加」ボタンをクリックし、もう一つのY軸としてtotal_revenueを追加します。
total_revenueの「軸の設定」で「別軸に表示」を選択します。
これにより、販売台数と合計売上のトレンドを一つのグラフで確認でき、相関関係を分析しやすくなります。

ステップ2: ダッシュボードを構築
作成したグラフのタイトルの右側の「∨」ボタンをクリックします。
[ ダッシュボードに追加 ] を選択します。

- [ ダッシュボードに追加 ] ダイアログで、[ 新しいダッシュボードの作成 ] または [ 既存のダッシュボードに追加] を選択します。
*[ 作成 ]または [ インポート]を選択すると自動的にダッシュボードのページに移動されます。
完成したダッシュボードの右上の[ 共有 ]ボタンでチームメンバーと共有することができます。

フィルターとパラメーターを作成してインタラクティブにする
ダッシュボードにフィルターやパラメーターを追加することで、ユーザーが動的にデータを絞り込んで分析できるようになります。
フィルターの追加
ダッシュボードの編集画面で、「フィルターの追加」ボタンをクリックします。
フィルターを適用したいクエリと列を選択します。例えば、Company列でフィルターを作成すれば、特定のメーカーのデータに絞って表示できます。

パラメーターの追加
クエリの本文中に、:paramaterという形式でパラメーターを定義します。歯車アイコンをクリックして名前とデフォルト値を設定します。
ここでは年収(Annual Income) >'3000000' で、ジェンダー( Gender) ='女性'という設定をしています。
SELECT * FROM abac.tableau_sales.car_sales WHERE `Annual Income` > :salary_parameter and `Gender`= :Gender_paramater

ダッシュボードの編集画面でパラメーターを選択すると、設定した値だけが表示されます。
パラメータの値の変更をするとデータも更新されます。

完成したダッシュボードの右上の[ 共有 ]ボタンでチームメンバーと共有することができます。
おわりに
本記事では、DatabricksダッシュボードとSQLを組み合わせて、カーセールスデータを分析し、可視化する一連の手順をご紹介しました。
SQLだけで手軽にデータの探索からダッシュボードの構築、さらにはチームへの共有までを行うことができます。
今回ご紹介した分析例はほんの一部です。ぜひ、ご自身のビジネス課題に合わせて、さまざまなクエリやグラフを試してみてください。DatabricksのLakehouseプラットフォームを活用することで、データに基づいた意思決定が、より身近で、より速く実現できるようになるはずです。
もし、さらに高度な分析手法やダッシュボードのカスタマイズについて知りたいことがあれば、お気軽にご質問ください。
お知らせ
私たちはDatabricksを用いたデータ分析基盤の導入から内製化支援まで幅広く支援をしております。 もしご興味がある方は、お問い合わせ頂ければ幸いです。
また、一緒に働いていただける仲間も募集中です! APCにご興味がある方の連絡をお待ちしております。 www.ap-com.co.jp