LookML を使用した派生テーブルの作成

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

GSP858

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

概要

Looker は Google Cloud で利用できる最新のビジネス ユーザー向けデータ プラットフォームで、データをインタラクティブに分析して可視化できます。LookML のデベロッパーは、新しいフィールド、テーブル、ビューを作成してデータをカスタマイズして編成することによって、ビジネス ユーザーが使用するデータをキュレートします。

また、Looker の派生テーブルを使用して、基盤となるデータベースではまだ定義されていない新しいテーブルを作成できます。たとえば、既存のテーブルから、e コマース データセットの各注文の注文詳細などの詳細を要約するための派生テーブルを作成できます。

このラボでは、LookML で、SQL の派生テーブルとネイティブ派生テーブルの両方のタイプの派生テーブルを作成する方法を学びます。

このラボでは、LookML ですでに作成済みの qwiklabs-ecommerce というプロジェクトを使用します。このプロジェクトは、注文、プロダクト、ユーザーに関する情報が含まれる e コマースの疑似データセットを基に作成されています。LookML モデリングの詳細については、Looker のドキュメントをご覧ください。

演習内容

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

  • Looker 管理者が公開した既存の LookML プロジェクト(qwiklabs-ecommerce)を変更する
  • SQL 派生テーブルを作成する
  • ネイティブ派生テーブルを作成する
  • Explore に派生テーブルの新しいビューを結合する
  • 開発モードで LookML の変更をテストする
  • Explore インターフェースを使用して、変更された LookML プロジェクトに加えた変更を参照する

設定と要件

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

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

タスク 1. 各注文の詳細を要約する SQL 派生テーブルを作成する

LookML で派生テーブルを定義するには、SQL クエリを使用して SQL の派生テーブルを定義するか、Explore クエリを使用してネイティブ派生テーブルを定義します。

このタスクでは、各注文の詳細(注文 ID、ユーザー ID、アイテム数、注文されたアイテムの合計金額)を要約した新しい SQL の派生テーブルを定義するために SQL クエリを記述します。その後、その SQL の派生テーブルに対して、qwiklabs-ecommerce プロジェクトに新しいビューファイルを作成します。

SQL クエリを使用して新しい派生テーブルを定義する

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

Development Mode の切り替えボタン

  1. Looker のナビゲーション メニューで、[Develop] > [SQL Runner] をクリックします。

  2. [SQL クエリ] ウィンドウで、次のクエリを追加します。

SELECT order_items.order_id AS order_id ,order_items.user_id AS user_id ,COUNT(*) AS order_item_count ,SUM(order_items.sale_price) AS order_revenue FROM cloud-training-demos.looker_ecomm.order_items GROUP BY order_id, user_id LIMIT 10

この例では、order_iduser_id を選択し、各注文に関連付けられているアイテムの個数をカウントした後、それらのアイテムの価格を合計するクエリが必要です。

具体的には、COUNT 句で個々の注文アイテム ID(order_items テーブルの主キー)の数をカウントし、SUM 句で注文アイテム ID の sale_price を合計します。

GROUP BY 句を使用して結果を order_iduser_id でグループ化します。クエリが適切に機能していることを確かめるには一部のレコードを確認すればよいので、返される結果を LIMIT 句を使用して限定します。

  1. クエリが次のようになっていることを確認します。

[SQL Query] ボックス

  1. [実行] をクリックして、結果を確認します。

order_id、user_id、order_item_count、order_revenue の 4 つの列見出しの下に 10 行のデータがある結果テーブル

この例では、各注文に関連付けられている注文 ID、ユーザー ID、アイテムの個数に加え、各注文の総収益が返されていることがわかります。

このテスト中に返されるデータの量を減らすために、LIMIT 句を使用していることに注目してください。この後のステップで SQL の派生テーブルに対する新しいビューファイルを作成するときには、LIMIT 句を削除します。

SQL の派生テーブルに対する新しいビューファイルを作成する

  1. ページの右上にある [実行] の横にある設定アイコン(設定の歯車アイコン)をクリックし、[Add to Project] を選択します。

  2. [プロジェクト] で、[qwiklabs-ecommerce] を選択します。

  3. [ビュー名] に「order_details」と入力します。

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

SQL の派生テーブルに対して新しく作成されたビューファイルをレビューするために、Looker IDE にリダイレクトされます。

[order_details] ビューの新しいビューファイルは、[views] フォルダの外に作成されています。ビューファイルはプロジェクト内で整理することをおすすめします。

  1. [views] の横にある矢印をクリックして、ビューの一覧を表示します。

  2. [user_order_details.view] をクリックして、[views] フォルダの下にドラッグします。

  3. [order_details.view] をクリックして、SQL の派生テーブルに対するビューファイルを参照します。

Looker によって、SQL クエリの SELECT 句の各列に、1 つのディメンションと 1 つの新しいカウントのメジャーが自動で作成されます。この後のステップでは、ビューファイルを変更して不要になった LIMIT 句を削除し、新しいカウント メジャーを非表示にして、ビューに主キーを追加します。

  1. sql パラメータから LIMIT 10 のコード行を削除します。

前述のとおり、count メジャーが派生テーブルで使用されるディメンションとともに自動で生成されます。同じ数値を提供する count が別のビューにすでにある場合、この自動生成の count メジャーは必要ないことがあります。

この例では、自動生成の count メジャーは注文 ID をカウントしていますが、注文のカウントは order_items ビューにすでに存在します。

hidden: yes パラメータを使用して、count メジャーを削除または非表示にできます。このカウントが別のカウントと同じである場合、検証用にメジャーを残しながらユーザーには公開しないようにする場合は、メジャーを非表示にすることをおすすめします。

  1. measure: count 定義で、type: count の前に新しい行を追加し、「hidden: yes」と入力します。

最後のベスト プラクティスは、新しいビューに必ず主キーを指定することです。

この例では、primary_key: yes パラメータを order_id ディメンションに追加できます。order_id は、個々の注文の詳細情報を提供するこのビューを整理するための中心となる ID です。

  1. dimension: user_id 定義で、type: number の前に新しい行を追加し、「primary_key: yes」と入力します。

これで、新しいビューである order_details が完成したので、ディメンションとメジャーの新規作成とモデルファイル内の Explore への結合、Git ワークフローの完了と本番環境への変更内容の送信を行う準備ができました。

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

[order_details.view] タブページとファイル ブラウザ パネル。

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

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

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

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

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 SQL の派生テーブルに対するビューファイルを作成する

タスク 2. 各注文の詳細を要約するネイティブ派生テーブルを作成する

SQL 派生テーブルとは対照的に、ネイティブ派生テーブル(NDT)は全体を LookML で記述します。ネイティブ派生テーブルは、LookML の基本原則である再利用性を具現化するため、便利です。既存のディメンション、メジャー、さらには Explore や結合ロジックを継承できます。

「ハードコード」されるデータベース参照の数が最小限で済むため、長期的にコードのメンテナンスがはるかに容易になります。

たとえば、前のセクションの order_details SQL 派生テーブルについて考えてみましょう。SQL には、order_items の COUNT と sale_price の SUM が含まれていました。しかし、order_items ビューには、order_item_counttotal_revenue のメジャーがすでに存在します。SQL 派生テーブルを新たに作成する代わりに、既存のディメンションとメジャーを使用して新しい NDT を簡単に定義できます。

このセクションでは、前の例の SQL 派生テーブルを、今度はネイティブ派生テーブルとして再度作成します。ネイティブ派生テーブルを最も簡単に作成する方法は、Explore を使用することです。Order Items Explore を使用して、各注文の詳細情報(注文 ID、ユーザー ID、アイテム数、注文されたアイテムの合計金額)を含むネイティブ派生テーブルを作成します。

Explore クエリから新しいネイティブ派生テーブルを定義する

  1. Looker のナビゲーション メニューで、[Explore] をクリックします。

  2. [E-Commerce Training] で、[Order Items] をクリックします。

  3. [Order Items] の横にある矢印をクリックします。

Order Items のデータパネルに、利用可能なディメンションとメジャーのリストが表示されます。Explore によって、パフォーマンスに優れた有効な SQL クエリが自動で生成されます。

  1. [Order Items] > [Dimensions] で、[Order ID] と [User ID] をクリックします。

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

  3. [実行] をクリックして、結果を確認します。

クエリ結果テーブル。注文アイテムの ID、ユーザー ID、数、総収益の行が含まれています。

クエリの結果を確認して、想定どおりの結果が返されていることを確認します。この例では、各注文に関連付けられている注文 ID、ユーザー ID、アイテムの個数に加え、各注文の総収益がリクエストの結果として適切に返されています。

  1. ページの右上にある [実行] の横にある設定アイコン(設定の歯車アイコン)をクリックし、[LookML を取得] を選択します。

  2. [派生テーブル] をクリックし、LookML コードをパソコンのクリップボードにコピーします。この LookML コードをネイティブ派生テーブルの新しいビューファイルに貼り付けます。

LookML 派生テーブル コードを取得

ネイティブ派生テーブルに対する新しいビューファイルを作成する

  1. 新しいタブで新しい Looker ウィンドウを開きます。

  2. Looker のナビゲーション メニューで、[Develop] タブをクリックし、qwiklabs-ecommerce という LookML プロジェクトを選択します。

  3. [ファイル ブラウザ] の横で、[ファイルまたはフォルダを追加](ファイルまたはフォルダを追加アイコン)をクリックします。

  4. [ビューを作成] を選択します。

  5. [file name] として、「order_details_summary」と入力します。

  6. [作成] をクリックします。

order_details_summary ビューの新しいビューファイルが、先ほどと同様に views フォルダの外に作成されています。

  1. [views] の横にある矢印をクリックして、ビューの一覧を表示します。

  2. order_details_summary.view をクリックして、views フォルダの下にドラッグします。

  3. order_details_summary.view をクリックして、ネイティブ派生テーブルに対するビューファイルを表示します。

  4. ビューファイル内の自動作成されたすべての LookML を削除します。

  5. コピーした、ネイティブ派生テーブル用の LookML コードを貼り付けます。

  6. 自動生成されたビュー名(add_a_unique_name_1623275538 など)を order_details_summary に置き換えます。ファイルは次のようになります。

order_details_summary.view ページ

必要に応じてモデルファイルをインクルードするよう促すコメントが含まれていますが、該当する行はコメントアウトされた状態です。このモデルファイルの行はコメントアウトされたままにしてください。モデルファイルはほぼ常に他のファイルを含んでいるため、相互にインクルードするファイルが多数あると、モデル内で循環的な依存関係が生じるおそれがあります。これにより、構文検証エラーが発生する可能性があります。

これで、新しいビューである order_details_summary が完成したので、ディメンションとメジャーの新規作成とモデルファイル内の Explore への結合、Git ワークフローの完了と本番環境への変更内容の送信を行う準備ができました。

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

ここでは、このビューを Explore に結合しません。SQL 派生テーブルに対して行います。

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

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

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

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

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ネイティブ派生テーブルに対するビューファイルを作成する

タスク 3. 新しいビューファイルを Explore に結合する

このセクションでは、新しい派生テーブルを確認してテストします。まず、モデルファイル内の order_items Explore の定義に結合した後、Order Items Explore を使用して、変更内容を本番環境に push した場合にビジネス ユーザーに表示される内容を確認します。

ネイティブ派生テーブルでは最後のステップは完了しませんが、ビューを Explore に結合するプロセスは、ビューが SQL 派生テーブルに対して作成されたものであっても、ネイティブ派生テーブルに対して作成されたものであっても同じです。

SQL 派生テーブルのビューを結合する

  1. 同じページで、model フォルダ内の training_ecommerce.model ファイルをクリックして、その内容を変更します。

  2. explore: order_items の定義を見つけます。たとえば users ビューの結合など、いくつかの結合がすでに定義されています。

training_ecommerce.model ページ

  1. explore: order_items 定義の、users 用の既存の結合の上に、order_details 用の新しい結合を次の内容を指定して追加します。
join: order_details { type: left_outer sql_on: ${order_items.order_id} = ${order_details.order_id};; relationship: many_to_one }

sql_on パラメータによって、order_id が結合フィールドとして特定されています。relationship パラメータによって、order_items には order_id の複数のインスタンスが存在する場合がありますが、order_details は各注文に対して要約行が 1 つになるように編成されているため、各 order_id のインスタンスが 1 つのみになることが示されています。

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

training_ecommerce.model ページ

Explore で、データと SQL 派生テーブルから生成された SQL をレビューする

  1. Looker のナビゲーション メニューで、[Explore] をクリックします。

  2. [E-Commerce Training] で、[Order Items] をクリックします。

  3. [Order Details] の横にある矢印をクリックします。

  4. [Order Details] > [Dimensions] で、[Order ID]、[Order Item Count]、[Order Revenue]、[User ID] をクリックします。

  5. [実行] をクリックして、結果を確認します。

  6. [SQL] タブをクリックして、Looker によって生成された SQL クエリを表示します。

生成された SQL クエリを表示する [SQL] タブページ

WITH 句で指定される共通テーブル式(CTE)がある点に注意してください。このネイティブ派生テーブルは、基盤となるデータベースに保存されるのではなく、実行時に CTE として生成されるためエフェメラルとみなされます。

派生テーブルは永続化することもでき、その場合は、基盤となるデータベースに格納されます。永続的な派生テーブルについて詳しくは、永続的な派生テーブル(PDT)の作成に関するドキュメントをご覧ください。

次のセクションでは、派生テーブルを永続化して、データベースに書き戻せるようにする方法を学びます。

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

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

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

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

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

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 SQL 派生テーブルのビューを結合する

タスク 4. 派生テーブルを永続化する

これまでの例で確認した派生テーブルは一時的なものでした。つまり、Looker は Explore クエリでこれらの派生テーブルの CTE(または一時テーブル)を生成します。

ここでは、派生テーブルのもう 1 つのタイプである永続性について説明します。永続的な派生テーブル(PDT)は、接続されたデータベースに書き込まれて保存されます。派生テーブルを永続化するステップは、SQL 派生のテーブルでもネイティブ派生のテーブルでも同様です。

前述のように、永続的な派生テーブルのメリットは、ビジネス ユーザーが必要とした時点ですぐに使用できることです。したがってクエリの実行時間も短くできます。デメリットは、データベースの保存容量が消費される(費用に影響する可能性がある)ことと、より柔軟性が低いことです。

派生テーブルを永続化するには、定義の中で次のパラメータを 1 つ以上使用します。

  • まず、datagroup_trigger では、モデル内で構成されたデータグループ(またはキャッシング ポリシー)を使用します。モデルでデータグループが定義されている場合は、これが派生テーブルを永続化するベスト プラクティスです。
  • sql_trigger_value では、1 つの値を返す作成済みの SELECT ステートメントを使用します。Looker はその SELECT ステートメントを繰り返しデータベースに送信し、結果が変わったことを検出すると、PDT を再ビルドするための合図であると認識します。
  • persist_for を使用して、「1 hour」や「4 hours」など、指定した期間にわたって PDT を使用できるようにします。

ただし、persist_for には再ビルドのロジックがないため、その間 PDT は更新されません。また、期間が終了すると PDT は破棄され、次のビジネス ユーザーがクエリで必要とするまで再作成されません。

PDT の主な利点は、すぐに利用できるデータでクエリの実行時間を最小化できることです。そのため、persist_forsql_trigger_value と同時に使用して、PDT でデータ更新が確実にキャプチャされるようにする、または、datagroup_trigger または sql_trigger_value のみを使用することをおすすめします。

ネイティブ派生テーブルを永続化する

このタスクでは、datagroup_trigger パラメータを使用してネイティブ派生テーブルを永続化します。これにより、モデルファイルの事前定義のデータグループ(キャッシュ ポリシー)に基づいて永続的な派生テーブルが再ビルドされます。

order_details_summary という名前のネイティブ派生テーブルに対して、training_ecommerce_default_datagroupdatagroup_trigger として追加することにより、training_ecommerce.model 内の training_ecommerce_default_datagroup で提供されるルールを使用して永続的な派生テーブルを再ビルドし、モデルで定義されるすべてのオブジェクトを 1 時間ごとに再ビルドします。

  1. Looker のナビゲーション メニューで、[Develop] タブをクリックし、qwiklabs-ecommerce という LookML プロジェクトを選択します。

  2. [views] の横にある矢印をクリックして、ビューの一覧を表示します。

  3. order_details_summary.view をクリックして、ネイティブ派生テーブルに対するビューファイルを表示します。

  4. derived_table 定義で、explore_source: order_items の閉じかっこ(})の後に新しい行を追加して、以下を貼り付けます。

datagroup_trigger: training_ecommerce_default_datagroup
  1. [変更を保存] をクリックします。ファイルは次のようになります。

order_details_summary.view ページ

Explore で、永続的な派生テーブルに対して生成された SQL を確認する

  1. Looker のナビゲーション メニューで、[Explore] をクリックします。

  2. [E-Commerce Training] で、[Order Items] をクリックします。

  3. [Order Details] の横にある矢印をクリックします。

  4. [Order Details] > [Dimensions] で、[Order ID]、[Order Item Count]、[Order Revenue]、[User ID] をクリックします。

  5. [実行] をクリックして、結果を確認します。

  6. [SQL] タブをクリックして、Looker によって生成された SQL クエリを表示します。

生成された SQL クエリが表示されている、ハイライト表示された [SQL] タブページ

派生テーブルが永続化されたため、WITH 句で識別された以前の CTE は存在しなくなり、order_details_summary 永続的派生テーブルからフィールドをクエリする SELECT ステートメントに置き換えられました。

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

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

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

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

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

お疲れさまでした

このラボでは、SQL 派生テーブルとネイティブ派生テーブルを LookML で作成し、基盤となるデータベースにまだ存在しない新しいテーブルを定義する方法を学びました。

次のステップと詳細情報

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

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

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

ラボの最終テスト日: 2021 年 10 月 11 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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