DatabricksでAI Forecastを利用したダッシュボードを作成してみた

DatabricksでAI Forecastを利用したダッシュボードを作成してみた

2026.05.29

データ事業本部のueharaです。

今回は、DatabricksでAI Forecastを利用したダッシュボードを作成してみたいと思います。

事前準備

対象のデータとして、 FRED が公開している米国小売売上データ(RSAFS: Advance Retail and Food Services Sales)を利用したいと思います。(参考

RSAFSは 日付, 数値 のシンプルなCSVファイルになっており、簡単に扱うことができます。

このRAWデータ( fred_retail_sales_raw テーブル)を元に、今回は以下のような形でダッシュボードに利用するテーブル us_retail_sales_monthly を作成しています。

CREATE OR REPLACE TABLE workspace.forecast_demo.us_retail_sales_monthly AS
WITH clean AS (
  SELECT
    TO_DATE(`date`) AS sales_month,
    CAST(RSAFS AS DOUBLE) AS retail_sales_million_usd
  FROM workspace.forecast_demo.fred_retail_sales_raw
)
SELECT
  sales_month,
  retail_sales_million_usd,
  retail_sales_million_usd / 1000.0 AS retail_sales_billion_usd,
  YEAR(sales_month) AS sales_year,
  MONTH(sales_month) AS sales_month_num,
  DATE_FORMAT(sales_month, 'MMM') AS sales_month_name,
  ROUND(
    (
      retail_sales_million_usd
      / LAG(retail_sales_million_usd) OVER (ORDER BY sales_month)
      - 1
    ) * 100,
    2
  ) AS mom_pct,
  ROUND(
    (
      retail_sales_million_usd
      / LAG(retail_sales_million_usd, 12) OVER (ORDER BY sales_month)
      - 1
    ) * 100,
    2
  ) AS yoy_pct
FROM clean
WHERE retail_sales_million_usd IS NOT NULL;

作成されるテーブルのカラムは以下の通りです。

カラム名 説明
sales_month DATE 小売売上の対象月。CSVの date を日付型に変換した値。月次データのため、各月の1日が入る。
retail_sales_million_usd DOUBLE FREDの RSAFS を数値型に変換した値。米国小売・外食サービス売上、単位は百万米ドル。
retail_sales_billion_usd DOUBLE retail_sales_million_usd を1,000で割った値。ダッシュボードで見やすいよう、単位を十億米ドルに変換した列。
sales_year INT sales_month から抽出した年。年別平均売上などの集計に使う。
sales_month_num INT sales_month から抽出した月番号、1から12。グラフの並び順制御に使う。
sales_month_name STRING sales_month から作成した月名。グラフの表示名に使う。
mom_pct DOUBLE 前月比、Month over Month。前月の retail_sales_million_usd と比較した増減率、単位は%。先頭月はNULLになる。
yoy_pct DOUBLE 前年同月比、Year over Year。12か月前の retail_sales_million_usd と比較した増減率、単位は%。最初の12か月はNULLになる。

実際のデータのイメージは以下の通りです。

20260529_databricks_00

ダッシュボードの作成

データセットの準備

メニューから『Dashboards』を選択し、『Create dashboard』を選択します。

20260529_databricks_01

ダッシュボード名とページ名は任意に設定します。

20260529_databricks_02

次に『Data』のタブに移動し、『Add dataset』を選択します。

20260529_databricks_03

事前準備の章で準備したテーブルを選択し、『Add』ボタンを押下します。

20260529_databricks_04

テーブルが追加できたら、今度は『Add SQL dataset』から、 AI_FORECAST 関数を適用したデータセットを作成します。

具体的には以下のクエリを設定します。

WITH observed AS (
  SELECT
    sales_month,
    retail_sales_billion_usd
  FROM main.forecast_demo.us_retail_sales_monthly
),
forecast AS (
  SELECT
    sales_month,
    retail_sales_billion_usd_forecast,
    retail_sales_billion_usd_upper,
    retail_sales_billion_usd_lower
  FROM AI_FORECAST(
    TABLE(observed),
    horizon => (
      SELECT ADD_MONTHS(MAX(sales_month), 13)
      FROM observed
    ),
    time_col => 'sales_month',
    value_col => 'retail_sales_billion_usd',
    frequency => 'MS',
    prediction_interval_width => 0.9,
    parameters => '{"global_floor": 0}'
  )
)
SELECT
  sales_month,
  retail_sales_billion_usd AS original,
  CAST(NULL AS DOUBLE) AS prediction,
  CAST(NULL AS DOUBLE) AS prediction_upper,
  CAST(NULL AS DOUBLE) AS prediction_lower
FROM observed

UNION ALL

SELECT
  sales_month,
  CAST(NULL AS DOUBLE) AS original,
  retail_sales_billion_usd_forecast AS prediction,
  retail_sales_billion_usd_upper AS prediction_upper,
  retail_sales_billion_usd_lower AS prediction_lower
FROM forecast;

これは、元のテーブルの日付の最大値( 2026-04-01 )から1年後( 2027-04-01 )まで予測した値を元のデータに連結したデータになっています。

prediction カラムが予測値であり、 prediction_upper, prediction_lower カラムがそれぞれ予測幅の上限。下限となります。

作成できたらこのデータセットを us_retail_sales_monthly_forecast という名前に変更します。

20260529_databricks_05

これでデータセットの準備は完了です。

AI Forecastを利用したグラフの作成

ダッシュボードのページに移動し、横長のグラフを作成します。

20260529_databricks_06

グラフの設定から『Dataset』に『us_retail_sales_monthly_forcasted』を選択し、『Visualization』は『Line (forecast)』とし、X軸・Y軸についてはそれぞれ以下のように設定します。

20260529_databricks_07

Y軸に設定する予測値については、先のデータ準備で AI_FORECAST 関数を用いて作成したカラムを設定しています。

この設定でグラフを作成すると、以下の通り 予測された期間の値を含むグラフ が作成されます(区間推定の形で表示)。

20260529_databricks_08

また、カーソルを当てると各年月の値を確認することもできます。

20260529_databricks_09

参考までに、元のデータをグラフ化したものと比較すると次の通りです。

20260529_databricks_10

その他グラフの追加

元のデータセット( us_retail_sales_monthly )も活用して、その他グラフも追加し、最終的にダッシュボードを完成させます。

20260529_databricks_11

これで、最新月の小売売上や、前月比、年別平均売上等も一目で確認することができるダッシュボードとなりました。

最後に

今回は、DatabricksでAI Forecastを利用したダッシュボードを作成してみました。

参考になりましたら幸いです。

参考文献


データ活用のご相談はクラスメソッドへ

本ブログ記事に関することはもちろん、社内に蓄積したデータの活用方法など、データ活用に関する様々なご相談を承ります。

BIツールを使ったデータ利活用

この記事をシェアする

関連記事