LookML を使用したキャッシュ保存とデータグループ

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

GSP893

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

概要

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

Looker は常に SQL クエリを生成し、接続されたデータベースに送信しています。Looker でクエリを実行すると、SQL の結果がキャッシュに保存され、Looker インスタンス上の暗号化されたファイルに保存されます。

キャッシュ保存すると、過去に実行したクエリの保存済みの結果を利用できます。これにより、データベースで同じクエリを繰り返し実行する必要がなくなり、データベースの負荷が軽減されます。キャッシュ保存は、Looker のパフォーマンスの最適化にも役立ちます。このラボでは、Looker でのキャッシュ保存の仕組みと、LookML データグループを使用してキャッシュ保存ポリシーを定義する方法について学習します。

演習内容

  • LookML でキャッシュ保存とさまざまなデータグループ オブジェクトを定義する
  • LookML モデルの個々の Explore にデータグループを適用する

設定と要件

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

こちらの説明をお読みください。ラボの時間は制限されており、一時停止することはできません。タイマーは、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 インスタンスが表示されます。

Looker でのキャッシュ保存の仕組み

Looker は、データベースのドアマンのような役割を果たします。ユーザーがクエリを実行すると、Looker はまったく同じクエリが以前に実行されたかどうかを判断します。実行されていなかった場合は、データベースでのそのクエリの実行を許可します。結果が返されると、Looker はそれをキャッシュに保存して、後で参照できるようにします。

同じクエリが過去に実行されていた場合は、Looker はキャッシュ保存ポリシーを確認して、結果がまだ有効かどうかを判断します。キャッシュに保存された結果がまだ有効な場合、Looker はキャッシュに保存された結果をビジネス ユーザーに返します。この処理は 1 秒以内に完了します。

同じクエリが過去に実行されていたものの、キャッシュ保存ポリシーに照らして結果がその時点で有効ではない場合は、Looker はデータベースにクエリを送信します。その後、新しい結果をキャッシュに保存し、以降に使用できるようにします。

データグループ

データグループは、名前付きのキャッシュ保存ポリシーまたはルールを表す Looker の用語です。LookML のデベロッパーは、データグループを使用して Looker インスタンスのキャッシュを管理します。キャッシュ保存ポリシーごとに、別々のデータグループ定義が必要です。作成する必要があるデータグループの数と種類は、データの ETL(抽出、変換、読み込み)処理およびビジネス要件によって異なります。

たとえば、データの更新頻度に応じて、モデルレベル、個々の Explore、または永続的な派生テーブル(PDT)ごとにデータグループを定義しなければならない場合もあります。

  • データグループをすべての Explore のデフォルトとして適用するには、モデルレベルで persist_with パラメータを使用します。
  • 特定の Explore にデータグループを適用するには、その Explore の定義で persist_with パラメータを使用します。
  • モデルのすべての Explore ではなく、特定の Explore のセットにデータグループを適用するには、各 Explore の定義で persist_with パラメータを使用して、同じデータグループ名を指定します。

データグループを使用可能なオブジェクト

persist_with

データグループをモデルレベルで適用すると、Looker はデフォルトで、このモデル内のすべての Explore に同じキャッシュ保存ルールを適用します。

ただし、個々の Explore にデータグループを適用すると、モデルレベルの設定が上書きされます。Explore はすべてのコンテンツの基盤であるため、Explore 内の Look とダッシュボードに同じキャッシュ保存ロジックが適用されます。

注: 動的なユーザー名を使用するよう Looker でデータベース接続が構成されている場合、その接続を使うモデルではデータグループを使用できません。代わりに、persist_for パラメータを使用して、Explore のクエリを一定期間キャッシュに保存し、永続的な派生テーブルには sql_trigger_value または persist_for を使用します。

datagroup_trigger

PDT の場合、データグループを適用して PDT の再構築方法を指定できます。

スケジュール

データグループを使用して、Look とダッシュボードのスケジュールを実行することもできます。キャッシュ保存ポリシーの期限が切れた際に Look またはダッシュボードを自動的に実行するよう Looker に指示できます。それにより、新しいデータを必要とするビジネス ユーザー向けにデータを取得し、「事前にキャッシュに保存」できます。

データグループの構成

データグループには、max_cache_agesql_trigger の 2 つのパラメータがあります。

  • max_cache_age には、「24 時間」など、キャッシュに保存された結果を保持する時間数を指定します。
  • sql_trigger は、結果が変更されたかどうかを Looker に通知できる SELECT ステートメントを記述するために使用されます。sql_trigger は、値を 1 つだけ返す記述にする必要があります。Looker は接続されたデータベースに定期的にこのステートメントを送信します。結果が変更された場合、Looker はキャッシュを更新します。

必須パラメータは 1 つのみですが、適切なキャッシュ保存の結果を得るには、両方使用することをおすすめします。たとえば、sql_trigger のチェックで変更が検出されない場合、ETL プロセスまたは sql_trigger 自体に問題が発生している可能性があります。max_cache_age パラメータを含めると、sql_trigger チェックの結果にかかわらず、設定された期間が経過するとキャッシュが更新されます。

注: 必須パラメータはこのうちのいずれか一方のみですが、両方使用することをおすすめします。

タスク 1. Explore にデータグループを適用する

LookML モデルの個々の Explore に対してデータグループを定義して適用します。具体的には、Order Items Explore に含まれるすべてのビューのキャッシュ保存設定を更新して、新しい order_item_id が追加されるたびに更新するようにします。これは、order_item_id が Order Items の主キーであるためです。

モデルを開く

  1. 切り替えボタンをクリックして Development Mode に切り替えます。

  2. [開発] タブで、qwiklabs-ecommerce という LookML プロジェクトを選択します。

  3. training_ecommerce.model ファイルを開きます。

training_ecommerce.model ファイルが表示されているファイル ブラウザのページ

このモデルファイルに、max_cache_age が 1 時間であるデフォルトのデータグループがあることを確認します。Looker にデータベース スキーマからモデルを生成させることで新しい LookML プロジェクトを作成すると、Looker は、デフォルトのデータグループを自動で作成します。このデータグループの名前は、そのモデル名(この場合は training_ecommerce)に _default_datagroup が続くものになります。

デフォルトのデータグループを削除して置き換える

このデフォルトのデータグループは現在モデルレベルで定義されているため、このモデルで定義されているすべての Explore に適用されます。データグループを Explore に適用するには、デフォルトのデータグループを削除して、それに応じて更新する必要があります。新しいデータグループの定義を完了するには、sql_triggermax_cache_age の 2 つのパラメータの値を設定する必要があります。

  1. デフォルトのデータグループと persist_with 定義(8~13 行目)を削除します。

  2. Order Items などの特定の Explore の新しいデータグループを作成するには、次のコードを入力します。

datagroup: order_items_datagroup {}
  1. sql_triggerorder_item_id の最大 ID を取得するには、次のコードを入力します。
sql_trigger: SELECT MAX(order_item_id) from order_items ;;
  1. max_cache_age を設定して、データ更新に問題があっても 1 時間ごとにキャッシュの更新が継続されるようにします。次のコードを入力します。
max_cache_age: "1 hour"

更新された最大キャッシュ期間が設定された training_ecommerce.model ファイル

データグループを適用する

データグループを構成するだけでは何も実行されない点に注意してください。これは 2 ステップのプロセスです。データグループを定義した後、persist_with というパラメータを使用して、データグループをオブジェクトに適用する必要があります。

  1. データグループを Order Items Explore の定義に適用するには、explore: order_items 行の直下に次のコードを入力します。
persist_with: order_items_datagroup

order_items Explore に persist_with コードが追加されている training_ecommerce.model ファイル

  1. [変更を保存] をクリックします。

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

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

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

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

これで、新しい注文番号が追加されるたびに更新される独自のキャッシュ保存ポリシー(データグループ)の定義は完了です。また、max_cache_age パラメータを 1 時間に設定して、データの更新に関係なく 1 時間ごとにキャッシュが更新されるようにしました。その後、このデータグループをモデル全体ではなく、個々の Order Items Explore に適用しました。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Explore にデータグループを適用する

お疲れさまでした

このラボでは、Looker でのキャッシュ保存の定義と使用方法を学び、LookML データグループを使用してキャッシュ保存ポリシーを定義する方法を確認しました。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2025 年 4 月 24 日

ラボの最終テスト日: 2025 年 4 月 24 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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