3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricksダッシュボードでパラメータを使ったフィルターを作成する方法

3
Last updated at Posted at 2025-12-20

1. はじめに

Databricks でダッシュボードを作成する中で、異なるデータセットに対して、1つのフィルターで絞り込みを行う方法として「パラメータ」を使う場面がありました。
調べながら実装した内容が備忘録として役立ちそうだったため、この記事にまとめています。

2. パラメータとは

Databricks のパラメータは、以下のような特徴を持つ便利な仕組みです。

  • ダッシュボード利用者が値を入力できる変数
  • SQLクエリ内で利用可能
  • 同じクエリを複数ビジュアルで共有できるため、複数データセットの連動フィルタリングに使える

3.今回のゴール

今回は「糖質制限時の毎食メニュー」をテーマに、パラメータを利用した動的フィルターを実装します。
ゴールは次の2点です。

  1. カテゴリ(大)の選択内容に応じて、カテゴリ(小)の候補を動的に絞り込むフィルターを作る

    • カテゴリ大 =【食事カテゴリ】(例:主食、野菜、魚料理など)
    • カテゴリ小 =【メニュー】(例:ライス、パン、キャベツなど)
      →例えば、ユーザが「主食」を選択したら「パン」「ライス」など該当メニューのみを候補に表示する
  2. フィルターで選択した値に応じて、異なるデータセットを参照する複数ビジュアルを同時に絞り込む

    • 今回の対象ビジュアル
      ①日毎の合計糖質量、②食事ごとの糖質量、③カテゴリごとの糖質量
      スクリーンショット 2025-12-11 17.29.36.png

4. 前提条件

可視化に使用するデータテーブルはすでに作成ずみとして説明からは省略させていただきます。
今回は次のようなテーブルを利用しています。
スクリーンショット 2025-12-09 16.48.10.png

5. 作成手順

今回は下記の手順で作成します。

  1. 食品カテゴリ(カテゴリ大)のフィルター
  2. メニュー(カテゴリ小)のフィルター
  3. 異なるデータセットを使うビジュアル側の設定
  4. パラメータとフィルターの紐付け

5-1. 食品カテゴリフィルターの作成

  • まずfood_menuテーブルからカテゴリ一覧を取得するクエリを作成します。
    スクリーンショット 2025-12-09 14.26.15.png

  • フィルターの配置
    ダッシュボード画面の「フィルタ(フィールド・パラメータ)の追加」からフィルタービジュアルを追加し、フィールドには先ほど作成した「食品カテゴリ」のデータセットのcategoryを指定します。
    スクリーンショット 2025-12-09 18.08.56.png

5-2. メニューフィルターの作成

  • パラメータを利用したデータセットの作成
    メニューは、ユーザが選択した食品カテゴリに応じて動的に変わる必要があるため、SQL内でパラメータを利用します。
    「パラメータを追加」を押し、歯車アイコンで下記を設定します。

    • 任意のパラメータの名称
    • 型(String、Date、Date and Time、Numeric がサポートされています。)
      今回はすべてstring型を指定します

    歯車アイコンを閉じ、パラメータ名の下にあるテキストフィールドに下記の規定値を入力します。

    • デフォルト値:すべて(食品カテゴリが未選択の場合はフィルターをかけないため)

スクリーンショット 2025-12-10 17.57.40.png

  • フィルターの配置
    先ほどと同様にフィルタービジュアルを追加し、フィールドに「メニュー」データセットのitemを指定します。
    メニューフィルターでは、複数選択ができるようにするため、フィルタの設定は「複数の値」にセットします。
    スクリーンショット 2025-12-11 9.52.07.png

カテゴリフィルターで選択された値を、このメニューフィルターへ反映するために、パラメータを紐づけます。
→先ほど作成した「食事カテゴリ」のフィルターにパラメータを設定します。
bbb.png

結果例:食事カテゴリを「主食」にした場合、メニューは「ライス」と「低糖質パン」のみに絞り込まれるようになりました。
スクリーンショット 2025-12-11 9.50.43.png

現状は、食事カテゴリーで選択した値がメニューフィルターに適用されるのみで、他のビジュアルのデータは絞り込まれていない状態です。
各ビジュアルに使用するデータセットでのパラメータの設定とフィルターの紐付けを同様に行なっていきます。

5-3. 異なるデータセットのデータビジュアルを作成

(a)日付ごとの糖質合計量のデータセット(①テーブル)
食品カテゴリ・メニューの両方で絞り込みたいため、今回はcategoryとitemの2種類のパラメータを設定します。

  • categoryのパラメータはメニューフィルターで作成したものと同様に記述します。
  • メニューは複数選択ができるようにするため、itemのパラメータ設定時に歯車アイコンにある「複数選択可能です」にチェックを入れます。
    クエリ内では、ARRAY_CONTAINS関数を含める必要があります。
    array_contains(:item, 'すべて')とすることで、メニューフィルターでメニューの選択をしていないときは「すべて」という選択を行なっている状態にしてデータをフィルターしない設定になります。
    スクリーンショット 2025-12-11 14.32.59.png

(b)日々の食事のデータセット(②ドーナツグラフ・③棒グラフ)
(a) と同様、category と item のパラメータを設定したデータセットを用意します。
スクリーンショット 2025-12-11 14.40.47.png

(c)ダッシュボード上にビジュアルを作成
作成したデータセットを利用して、必要なビジュアルを配置します。
スクリーンショット 2025-12-11 14.46.03.png

5-4. フィルターとパラメータの紐付け

  • 食事カテゴリフィルター → 各ビジュアルのcategoryパラメータへ紐づけ
    結果例:食事カテゴリで「野菜」を選択すると「野菜」関連のデータにビジュアルが絞り込まれる
    スクリーンショット 2025-12-11 16.15.47.png

  • メニューフィルター → 各ビジュアルのitemパラメータへ紐づけ
    結果例:メニューで「キャベツ・トマト・ハッシュドポテト」を選択するとさらにビジュアルが絞り込まれる
    スクリーンショット 2025-12-11 16.17.33.png

これで、実装完了です!

6. まとめ

Databricksのダッシュボードは機能がシンプルで、前段のSQlで柔軟にデータ加工ができる点が非常に使いやすいと感じました。
パラメータを使えば、異なるデータセットに対して1つのフィルターで連動した絞り込みができ、実用的なダッシュボードが構築できます。
同じような実装を検討されている方の参考になれば幸いです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?