[Looker22.0新機能]ダッシュボードで使用されていないExploreのフィールドの値を用いたフィルター設定が可能になりました #looker

2022.01.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

さがらです。

先日、Looker22.0がリリースされました。2022年になってから初めてのアップデートですね!

このリリースノートの「ダッシュボードのアップデート」のうち、下記の記述に関して検証してみたのでまとめてみます。

ダッシュボード作成者は、フィルター作成フローで Advanced オプションを切り替えることにより、ダッシュボードに存在しないエクスプローラのフィールドに対してダッシュボードフィルターを作成できるようになりました。

試してみた

早速試してみたいと思います。

事前準備

フィルタを適用させるダッシュボードの準備

まず、タイル4つのとても簡単なダッシュボードを作成しておきます。

このダッシュボード上のタイルはすべて、ECサイトのデータを分析するためのExplore「(1) オーダー、アイテム、ユーザー関連」を用いて作られています。

フィルター用のExploreの定義

別のExploreの値を元にフィルターをかけるため、とても簡単なViewとExploreを定義しておきます。ここで定義されているBrand Nameの値だけを用いて、先程作成したダッシュボードに対してフィルターをかける、ということを行っていきます。

explore: current_brand_list {}

view: current_brand_list {
  derived_table: {
    sql: SELECT
        "Ray-Ban" as brand_name
        UNION ALL
        SELECT
        "Columbia" as brand_name
        UNION ALL
        SELECT
        "Carhartt" as brand_name
      ;;
  }

  dimension: brand_name {
    description: "現行で取り扱いのあるブランド一覧"
    type: string
    sql: ${TABLE}.brand_name ;;
  }

}

フィルタを設定してみる

ということで早速、このダッシュボードに使用されていないExploreのフィールドを用いたフィルター設定をしてみます。

ダッシュボードの編集画面から、上のFilterを押し、Filterの追加を押します。

表示されたフィルターの設定画面で、右上の高度をクリックします。するとモデルとExploreを選択できるようになり、このダッシュボードで使用されていないモデル・Exploreのフィールドをフィルターとして設定できるようになります。

ここで、先程の事前準備で説明したフィルター用のExploreを選択し、フィルターとして値を利用したいフィールドBrand Nameを選択します。

すると、フィルターの設定画面に移りますので、通常のフィルターと同じ用に設定します。ここでのポイントは、フィルターとして利用できる値が、先程指定したExploreのフィールドの値だけ(Carhartt、Columbia、Ray-Ban)になっていることです

加えて重要なのが、「更新するタイル」の設定です。ダッシュボード上の各タイルで使用されているExploreのどのフィールドに対して、このフィルターを適用させるのか、を設定する必要があります。

他のExploreのフィールドをフィルターとして設定できるとはいえ、全く関係性がないフィールドだと不適切なデータを表示することに繋がりますので気をつけましょう。

除外するフィールドから、各タイルで使用されているExploreのどのフィールドに対して、このフィルターを適用させるのかを設定していきます。この設定をしないと、各タイルでフィルターによる絞り込みが行われないため注意してください。

設定が完了したら、右下の追加を押せばフィルターが追加されます!ひとまず売上TOP10ブランドの棒グラフに適用してみました。

※これは余談ですが、タイルで使用しているフィールドに対しての適用なのに非表示フィールドへマッピングと表示されたり、他のタイルに適用すると別のタイルでのフィールドの設定が取り消されたり、ちょっと動作が不安定なところがありました。ここはぜひ改善していただきたいですね!

本機能の使い所

では、この機能がどういった場面で使い所があるのか少し考えてみます。

例えばBigQueryにおいて、データセットとテーブルの仕様が変わって、ある時点から別のプロジェクトでデータを管理するようになり、Lookerにおいてもプロジェクトが別れたため別のモデル扱いになってしまったとします。

そんな時、最新のテーブルで管理されている製品やブランドだけを元に、過去のデータを分析したいという場合が稀にあると思います。こういったときに、データは過去のテーブルで、フィルターは最新のテーブルで、というように分けることがこの機能により実現可能です。

下手に使用すると値がおかしくなるためトラブルの原因にもなりえますが、痒いところに手が届く機能だと思います。

最後に

実はこの記事で説明したフィルターの設定については、以前の(Legacyの)ダッシュボードでは出来ていた機能なんですよね。ユーザーからの要望が多くて機能追加したのでは…と推測しています。

今回のアップデートにより、Legacyダッシュボードでしか出来なかったことはほぼなくなったのではと感じています。まだLegacyダッシュボードを使用している方は早めに新しいダッシュボードに移行しちゃいましょう!