LookML での Explore のフィルタリング

ラボ 1時間 universal_currency_alt 無料 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP892

Google Cloud セルフペース ラボのロゴ

概要

Looker は Google Cloud で利用できる最新のデータ プラットフォームで、インタラクティブにデータを分析して可視化できます。Looker を使用すると、詳細なデータ分析、さまざまなデータソース間での分析情報の統合、実用的なデータドリブン ワークフローの構築、独自のデータ アプリケーションの作成を行うことができます。

Explore は、Looker のビジネス ユーザーが自らデータ探索を行う際の基盤として利用できるデータビューです。このラボでは、フィルタを適用して、Explore をさらに活用する方法を学びます。

演習内容

このラボでは、次の方法について学びます。

  • sql_always_where フィルタと sql_always_having フィルタを使用する
  • always_filter を使用する
  • conditionally_filter を使用する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボの時間は制限されており、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントに追加料金が発生する可能性があります。

ラボを開始して Looker にログインする方法

  1. 準備ができたら、[ラボを開始] をクリックします。

    [ラボの詳細] ペインに、このラボで使用する一時的な認証情報が表示されます。

    ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。

    [ラボの詳細] ペインに表示されているラボの認証情報を確認してください(このラボの Looker インスタンスにログインする際に使用します)。

    注: 他の認証情報を使用すると、エラーが表示されたり料金が発生したりします
  2. [Open Looker] をクリックします。

  3. 提供されたユーザー名とパスワードを、[Email] フィールドと [Password] フィールドに入力します。

    ユーザー名:

    {{{looker.developer_username | Username}}}

    パスワード:

    {{{looker.developer_password | Password}}} 重要: このページの [ラボの詳細] ペインに表示されている認証情報を使用する必要があります。Google Cloud Skills Boost の認証情報は使用しないでください。ご自身の Looker アカウントをお持ちの場合でも、このラボでは使用しないでください。
  4. [Log In] をクリックします。

    正常にログインすると、このラボで使用する Looker インスタンスが表示されます。

Explore フィルタの種類

Explore をフィルタするには、その Explore で生成されるすべての SQL クエリにデフォルトの WHERE 句または HAVING 句を適用する必要があります。Explore をフィルタリングする方法には主に 3 つあります。

  • sql_always_wheresql_always_having(この 2 つは動作とユースケースが似ています)
  • always_filter
  • conditionally_filter

以下のセクションでは、それぞれの一般的なユースケースについて説明します。

sql_always_where フィルタと sql_always_having フィルタ

sql_always_wheresql_always_having では両方とも「変更できない」フィルタを Explore に追加することができます。この方法は、特定のデータ行を常に Explore の結果から除外する場合に役立ちます。

sql_always_where フィルタは、SQL クエリのディメンションに適用される WHERE 句を追加するために使用され、一方 sql_always_having は、SQL クエリのメジャーに適用される HAVING 句を追加するために使用されます。ビジネス ユーザーが明示的に実行するクエリに加えて、制限事項はダッシュボード、スケジュールに入れられた Look、その Explore に依存する、埋め込みの情報に適用されます。

フィルタはユーザー インターフェースには表示されませんので、ビジネス ユーザーは生成された SQL を見る権限がない限り、データがフィルタされていることがわかりません。これは、テストデータや社内データなど、Explore の特定の値を除外する場合に便利です。

always_filter

always_filter を使用すると、ユーザーが定義した特定のフィルタセットを含めるように要求できます。また、フィルタのデフォルト値も定義します。ユーザーはクエリのデフォルト値を変更できますが、フィルタを完全に削除することはできません。これは、ユーザーが常に特定のディメンション(注文のステータスやユーザーの国など)でフィルタすることになるため、取得可能なデータがすべて一度にリクエストされることがないようにする場合に便利です。

always_filter には、ディメンションとメジャーのフィルタリングに使用される Looker フィルタ式と同じものを使用して、特定のフィルタを定義するサブパラメータがあります。filters サブパラメータで指定されたディメンションは、ユーザーが値を指定する必要があるディメンション(注文のステータスやユーザーの国など)を特定します。

フィルタのサブパラメータで指定された特定の値はデフォルト値であり、これはビジネス ユーザーが変更できます。たとえば、デフォルトの注文のステータスが「Complete」である場合に、ビジネス ユーザーはこの値を「Returned」のような別のステータスに変更できます。詳しくは、Looker のフィルタ式に関するドキュメントをご覧ください。

conditionally_filter

always_filter と同様に、conditionally_filter も、ビジネス ユーザーがアクセスできるフィルタを Explore のフロントエンドに追加できます。conditionally_filter パラメータを使用すると、ユーザーが定義した 2 番目のリストから少なくとも 1 つのフィルタを適用した場合にオーバーライドできるデフォルトのフィルタセットを定義できます。

ユーザーはフィルタの演算子と値を変更できますが、特定の代替フィールドにフィルタを適用しない限り、フィルタそのものを削除することはできません。このフィルタは、ビジネス ユーザーがリクエストするデータ量を制限しつつ、データのフィルタに使える複数の代替ディメンションをユーザーに提供したい場合に便利です。

conditionally_filter にはフィルタを定義するサブパラメータ以外に、データのフィルタに使用できる代替ディメンションを定義するサブパラメータもあります。たとえば、conditionally_filter を使用することで、「フィルタがユーザー ID または状態のディメンションに適用されていなければ、過去 1 か月間のデータのみを返す」というフィルタを作成できます。これは、負荷が大きすぎてデータベースで実行できないほど大規模なクエリを、ユーザーが意図せず作成するのを防止するために使用されるのが一般的です。

タスク 1. always_filter を追加する

このセクションでは、always_filter をOrder Items Explore に追加して、注文ステータスとユーザーの国でフィルタされるようにします。これらは、e コマース データセットにおいて重要な 2 つのディメンションです。

  1. まず、Looker のユーザー インターフェースの左下にある切り替えボタンをクリックして Development Mode に切り替えます。

Development Mode の切り替えボタンがオンに切り替わった。

  1. [Develop] タブをクリックし、qwiklabs-ecommerce という LookML プロジェクトを選択します。

  2. qwiklab_ecommerce プロジェクト内の training_ecommerce.model ファイルに移動します。Order Items Explore には現在、フィルタは 1 つも定義されていません。

training_ecommerce モデルが開き、データの複数の行が表示されます。

  1. Order Items Explore の定義の最初の文の下に新しい行を追加し、「always_filter」と入力してコロン(:)と中括弧({})を付けます。
always_filter: {}

この中括弧内にフィルタを定義するコードを追加します。

training_ecommerce.model データに「always_filter: {}」という行を追加したもの。

  1. フィルタのサブ パラメータを使用して、order_items テーブルから status を使用し、デフォルト値の「Complete」と users テーブルの country にデフォルト値の「USA」を使用して、フィルタを定義します。次を使用します。
filters: [order_items.status: "Complete", users.country: "USA"] 注: このフィルタにはなんらかの値を必ず指定する必要がありますが、ビジネス ユーザーはこれらのディメンションの値を変更できることは先に述べたとおりです。

training_ecommerce.model データに「filters: [order_items.status:"complete", users.country: "USA"]」という行を追加

  1. [Save Changes] をクリックします。

  2. IDE の上部でファイル タイトルの横のカーソルをクリックし、[Explore Order Items] を選択します。

training_ecommerce.model ファイルのプルダウン メニューで [Explore Order Items] オプションがハイライト表示されている。

  1. Filters の横の矢印をクリックしてウィンドウを開くと、次の 2 つの新しいフィルタとそのデフォルト値とともに表示されます。
  • Order Items Status と、デフォルト値の Complete
  • Users Country と、デフォルト値の USA

Order Items Status が Complete に等しく、Users Country が USA に等しい 2 つのフィルターがリストされている。

  1. [Order Items] > [Measures] で、[Order Count] をクリックします。

  2. [Run] をクリックします。これで、米国で注文を完了した商品アイテムの数が表示されます。 フィルタは削除できませんが、変更は可能であることに注意してください。

フィルタ結果: Order Items Order Count は 151, 200 に等しい。

  1. フィルタを変更してみましょう。[Status] フィルタを [Processing] に変更します。[Country] フィルタを UKに変更します。

フィルタの結果: Order Items Order Count: 134。

  1. [Run] をクリックします。 これで、注文された商品アイテム数が、フィルタと同時に更新されるはずです。

  2. training_ecommerce.model ファイルに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

タスク 2. sql_always_where フィルタを追加する

このセクションでは、2021 年以降のデータのみを含めるように、sql_always_where フィルタを Order Items Explore に追加します。これは、長年にわたる大規模なデータベースがあり、今年と来年以降のデータに対してのみクエリを実行したい場合に便利です。

  1. qwiklab_ecommerce プロジェクトの training_ecommerce.model ファイルに戻ります。

  2. 前のセクションで作成したフィルタを削除します。

  3. 最初の行の下で Order Items Explore を定義し、新しい行を追加して sql_always_where とタイプし、続いてコロン(:)をタイプします。

sql_always_where:

次に、created_date テーブルを使用して、「2021 年以降のデータのみを含める」フィルタを定義します。

  1. フィルタに以下を追加します。
sql_always_where: ${created_date} >= '2021-01-01' ;;

フィルタ sql_always_where: ${created_date} >= '2021-01-01' ;; (training_ecommerce モデル内)。

  1. [Save Changes] をクリックします。

  2. IDE の上部でファイル タイトルの横のカーソルをクリックし、[Explore Order Items] を選択します。

注: フィルタは表示されません。sql_always_where 条件は、ユーザーが作成するクエリの基盤となる SQL を確認しない限り、ユーザーには表示されません。
  1. [Order Items] > [Created Date] で、[Date] をクリックします。

  2. [Order Items] > [Measures] で、[Order Count] をクリックします。

  3. [Run] をクリックします。注文アイテムは 2021-01-01 以降の日付のもののみであることに注意してください。

注文アイテムが作成日と注文数の 2 つのカテゴリにリストされている。

  1. [データ] バーで [SQL] タブをクリックします。 すべてのデータに対して WHERE 句でフィルタが定義されていることに注目してください。

[SQL] タブ。WHERE フィルタは「(CAST(order_items.created_at AS DATE)) >= '2021-01-01'」に設定されている

  1. training_ecommerce.model ファイルに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

タスク 3. sql_always_having フィルタを追加する

このセクションでは、sql_always_having フィルタを Order Items Explore に追加して、ユーザーが複数のアイテムを含む注文を見ることができないようにします。これは、複数のアイテムを含む注文を Explore から除外するために使用します。

  1. qwiklab_ecommerce プロジェクトの training_ecommerce.model ファイルに戻ります。

  2. 前のセクションで作成したフィルタを削除します。

  3. Order Items Explore を定義する最初の行の下に新しい行を追加して、sql_always_having とタイプし、次いでコロン(:)をタイプします。

sql_always_having:
  1. 次に、order_item_count メジャーを使用して、注文アイテムが 1 つのデータのみを含めるようにフィルタを定義します。
sql_always_having: ${order_item_count} = 1 ;;

training_ecommerce モデルのフィルタ: 'sql_always_having: ${order_item_count} = 1 ;;'。

  1. [Save Changes] をクリックします。

  2. IDE の上部でファイル タイトルの横のカーソルをクリックし、[Explore Order Items] を選択します。

注: ここでも、フィルタは表示されません。sql_always_having 条件は、ユーザーが作成するクエリの基盤となる SQL を確認しない限り、ユーザーには表示されません。
  1. [Order Items] で、[Order ID] をクリックします。

  2. [Order Items] > [Measures] で、[Average Sale Price] と [Order Item Count] をクリックします。

  3. [Run] をクリックします。さまざまな注文とそれぞれの平均販売価格が表示されます。ご覧のとおり、アイテム数は常に 1 になっています。

注文された商品アイテムのリストが 3 つのカテゴリ(注文 ID、注文アイテム数、平均販売価格)に分かれています。

  1. training_ecommerce.model ファイルに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

タスク 4. conditionality_filter を追加する

このセクションでは、conditionality_filter フィルタを Order Items Explore に追加して、ユーザー ID または状態のディメンションにフィルタが適用されていない限り、過去 3 年間のデータのみを返すようにします。

  1. qwiklab_ecommerce プロジェクトの training_ecommerce.model ファイルに戻ります。

  2. 前のセクションで作成したフィルタを削除します。

  3. Order Items Explore を定義する最初の行の下に新しい行を追加し、「conditionally_filter」とタイプし、次いでコロン(:)と中括弧({})とタイプします。

conditionally_filter: {}

この中括弧内にフィルタを定義するコードを追加します。

  1. このフィルタを定義するには、filters サブパラメータを追加します。

ここでは、注文作成日が過去 3 年以内である必要があります。また、フィルタとして使用できる代替ディメンションとして unless サブパラメータを定義します。これには、ユーザー ID ディメンションと状態ディメンションを使用します。

filters: [created_date: "3 years"] unless: [users.id, users.state]

training_ecommerce モデルで使用されるフィルタ: 'filters: [created_date: "3 years"]' と 'unless: [users.id, users.state]'

  1. [Save Changes] をクリックします。

  2. IDE の上部でファイル タイトルの横のカーソルをクリックし、[Explore Order Items] を選択します。

  3. [Filters] の横にある矢印をクリックしてウィンドウを展開し、作成した条件フィルタを確認します。成功しました。

条件フィルタが「is in the past 3 years」に設定されている。

  1. 次に、[Order Items] で [Order ID] をクリックします。

  2. [Order Items] > [Created Date] で、[Year] をクリックします。

  3. [Order Items] > [Measures] で、[Average Sale Price] をクリックします。

  4. [Run] をクリックします。

Explore で、作成日が過去 1 年間にフィルタされていることを確認できます。

フィルタの結果。過去 1 年間に作成された注文が一覧表示されます。

  1. 次に、フィルタの条件をテストします。[Users] で、[State] にカーソルを合わせ、フィルタボタンをクリックします。

[State] カテゴリ内でハイライト表示されているフィルタボタン。

  1. フィルタ ウィンドウで [State] フィルタを「California」のように設定します。

  2. もう一方のフィルタの横にある [X] をクリックして削除します。

フィルタ「Created date = is in the past 3 years」内でハイライト表示された [Delete] ボタン。

  1. 再度 Run をクリックします。

注文は、注文 ID、作成年、平均販売価格の 3 つのカテゴリに分類されています。

  1. 最後に、[State] フィルタの横にある [X] をクリックして削除し、フィルタを削除します。作成日フィルタが自動的に再度表示されます。

[Create Date] フィルタは現在、[is in the past 3 years] に設定されています。

これで、条件付きフィルタの仕組みがわかりました。設定したデフォルト値は変更できますが、unless サブパラメータで指定したフィルタを 1 つ以上適用しない限り、フィルタを完全に削除することはできません

  1. training_ecommerce.model ファイルに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

[Check my progress] をクリックして、目標に沿って進んでいることを確認します。 Order Items Explore に conditionally_filter フィルタを追加する

お疲れさまでした

このラボでは、LookML を使用して Explore をフィルタリングする方法を学びました。最初の例では、always_filter を使用して、注文ステータスとユーザーの国でフィルタされるようにしました。次に、sql_always_where フィルタと sql_always_having フィルタを使用して、注文作成日と注文アイテム数をフィルタリングしました。最後に、conditionally_filter を使用して、ユーザー ID または状態のディメンションにフィルタが適用されていない限り、過去 3 年間のデータのみを返すように Order Items Explore をフィルタしました。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 4 月 22 日

ラボの最終テスト日: 2023 年 7 月 14 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。