LookML での派生テーブルの作成

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

概要

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

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

このラボでは、LookML で、SQL の派生テーブルとネイティブ派生テーブルの両方のタイプの派生テーブルを作成する方法を学びます。また、基盤となるデータにまだ存在しない新しい列を定義し、それをネイティブ派生テーブルに追加する方法も学びます。最後に、LookML で派生テーブルを永続化して、基盤となるデータベースに書き戻せるようにする方法を学びます。

このラボでは、LookML ですでに作成済みの qwiklabs-ecommerce というプロジェクトを使用します。このプロジェクトは、注文、プロダクト、ユーザーに関する情報が含まれる e コマースの疑似データセットを基に作成されています。

LookML のモデリングの詳細については、Looker のドキュメントの LookML の記述の説明をご覧ください。

目標

このラボでは、LookML で派生テーブルを作成し、永続化します。

  • LookML で、SQL 派生テーブルとネイティブ派生テーブルを作成する。
  • Explore に派生テーブルの新しいビューを結合する。
  • LookML で、ネイティブ派生テーブルに新しい列を追加する。
  • LookML で派生テーブルを永続化する。
  • Explore インターフェースを使用して、変更された LookML プロジェクトに加えた変更を参照する。
  • 開発ブランチから本番環境に LookML の変更を送信する。

設定

ラボごとに、新しいプロジェクトとリソースのセットを一定期間無料で利用できます。

  1. Qwiklabs には、必ずシークレット ウィンドウでログインしてください。

  2. ラボのアクセス時間(例: 2:00:00)に注意し、時間内に完了できるようにしてください。

注: 一時停止機能はありません。必要な場合はラボを再度実施することもできますが、最初からやり直すことになります。
  1. 準備が整ったら [ラボを開始] ボタン をクリックします。

新しいパネルが開き、このラボで使用する一時的な認証情報が表示されます。

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

  1. ラボの認証情報をメモしておきます(このラボの Looker インスタンスにログインする際に使用します)。

[Open Looker] ボタンと Looker ラボの認証情報

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

ヒント: 新しいタブまたは別のウィンドウで Looker を開くことをおすすめします。こうすることで、作業中、ラボの手順と Looker インスタンスの両方を確認できます。

  1. 提供されたユーザー名とパスワードを入力します。

Looker ログイン ダイアログ

重要: このページの [接続の詳細] パネルに表示されている認証情報を使用する必要があります(ご自身の Qwiklabs 認証情報は使用しないでください)。ご自身の Looker アカウントをお持ちの場合でも、このラボでは使用しないでください。

  1. [ログイン] をクリックします。

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

注: ラボを終了する場合と最初からやり直す場合以外は、[ラボを終了] をクリックしないでください。クリックすると、作業内容とプロジェクトが削除されます。 注: このラボでは、「リモート Git サービスに接続できません」という警告は無視してかまいません。変更を Git リポジトリに push せずに、ラボの手順を進めてローカルでタスクを完了してください。

ローカルでタスクを完了するには、次の手順で説明されているように、必ず Development Mode をオンにしてください。
  1. Looker のユーザー インターフェースの左下にある切り替えボタンをクリックして Development Mode に切り替えます。

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

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

このタスクでは、各ユーザーの注文総数や総収益など、各ユーザーの注文の詳細を要約した新しい SQL の派生テーブルを定義するために SQL クエリを記述します。その後、その SQL の派生テーブルに対して、qwiklabs-ecommerce プロジェクトに新しいビューファイルを作成します。

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

  1. まだ有効になっていない場合は、開発モードを有効にします。Looker のユーザー インターフェースの左下にある切り替えボタンをクリックして Development Mode に切り替えます。

  2. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[開発] をクリックします。[SQL Runner] をクリックします。

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

SELECT order_items.user_id AS user_id ,COUNT(order_items.order_id) AS order_count ,SUM(order_items.sale_price) AS order_revenue FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10
  1. [実行] をクリックして、結果を確認します。

結果から、クエリによって、各ユーザーのすべての注文が正常に要約されることがわかります。具体的には、このクエリによって、各ユーザーの注文に基づくユーザー ID、注文のカウント、売上合計が返されます。

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

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

  1. [実行](ページの右上)の横にある設定の歯車アイコン(設定の歯車アイコン)をクリックし、[プロジェクトに追加…] を選択します。

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

  3. [ビュー名] に「user_order_details」と入力し、[追加] をクリックします。

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

[user_order_details] ビューの新しいビューファイルは、[views] フォルダの外に作成されています。

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

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

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

Looker によって、SQL クエリの SELECT 句の各列に、新しい 1 つのディメンションと 1 つのカウントのメジャーが自動で作成されます。

この後のステップでは、ビューファイルを変更して不要になった LIMIT 句を削除し、新しいカウント メジャーを非表示にして、ビューに主キーを追加します。

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

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

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

user_order_details.view ファイルのコード

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

この SQL 派生テーブルは、Explore に結合したり、ディメンションやメジャーなどで変更したりできるようになりました。次のステップでは LookML の変更を本番環境に送信し、他の LookML デベロッパーが SQL の派生テーブルに対して新しく作成されたビューファイルを使用して、必要に応じて完成させることができるようにします。

開発ブランチから本番環境に LookML の変更を送信する

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

  2. [Commit] ウィンドウでメッセージを追加して、行った変更を指定してから [Commit] をクリックします。

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

次のタスクでは、既存の LookML ディメンションとメジャーを使用して、テーブルをネイティブ派生テーブルとして再作成します。次に、ネイティブ派生テーブルを Explore に結合して、Explore で新しいテーブルをテストし、ビジネス ユーザーが使用できるようにします。

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

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

このタスクでは、Explore クエリを使用して、タスク 1 の派生テーブルをネイティブ派生テーブルとして再作成します。その後、そのネイティブ派生テーブルに対して、qwiklabs-ecommerce プロジェクトに新しいビューファイルを作成します。

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

  1. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[Explore] をクリックします。

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

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

Order Items のデータパネルに、利用可能なディメンションとメジャーのリストが表示されます。

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

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

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

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

Explore クエリによって、各ユーザーの注文に基づくユーザー ID、注文のカウント、売上合計が返されます。

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

  2. 派生テーブルのタブを選択します。

  3. 派生テーブル用の LookML コードをコピーします。

この後、この派生テーブル用の LookML コードを新しいビューファイルに貼り付けます。

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

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

  2. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[開発] をクリックします。

  3. [プロジェクト] で、[qwiklabs-ecommerce] をクリックします。

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

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

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

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

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

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

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

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

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

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

  6. 自動生成されたビュー名(add_a_unique_name_1620763463 など)を user_order_summary に置き換えます。

user_order_summary.view ファイルのコード

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

次のタスクでは、この新しいビューを Explore に結合させ、ビジネス ユーザーがそのビューにアクセスできるようにします。

タスク 3. 派生テーブルに対する新しいビューを Explore に結合する

派生テーブルのデータを参照するビジネス ユーザーのために、派生テーブル定義を含むビューを Explore のベースビューとして追加するか、既存の Explore に結合する必要があります。派生テーブルのビューを Explore に結合するステップは、そのビューが SQL に対して作成されたものであっても、ネイティブ派生テーブルに対して作成されたものであっても同じです。

このタスクでは、ネイティブ派生テーブルに対するビューを、qwiklabs-ecommerce プロジェクトのモデルファイル内の order_items Explore 定義に結合します。その後 Order Items Explore で、データと、ネイティブ派生テーブルから生成された SQL をレビューします。

ネイティブ派生テーブルに対するビューを Explore に結合する

  1. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[開発] をクリックします。

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

  3. [models] の横にある矢印をクリックしてモデルファイルを表示します。

  4. training_ecommerce.model をクリックして、qwiklabs-ecommerce プロジェクトのモデルファイルを表示します。

  5. explore: order_items 定義の、join: users の前の新しい行で、次のコードを使用して新しい結合を定義します。

join: user_order_summary { type: left_outer sql_on: ${order_items.user_id} = ${user_order_summary.user_id};; relationship: many_to_one }

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

training_ecommerce.model ファイルのコード

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

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

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

  2. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[Explore] をクリックします。

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

  4. [User Order Summary] の横にある矢印をクリックします。

[User Order Summary] のデータパネルに、利用可能なディメンションが一覧表示されます。[User Order Summary] にはメジャーがなく、[Order Items] から選択された [Order Count] と [Total Revenue] のメジャーが [User Order Summary] のディメンションであることに注目してください。

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

  2. [User Order Summary] > [Dimensions] で、[Order Count] をクリックします。

  3. [User Order Summary] > [Dimensions] で、[Total Revenue] をクリックします。

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

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

SQL に、WITH 句によって識別される共通テーブル式(CTE)が含まれていることに注目してください。このネイティブ派生テーブルは、実行時に CTE として生成されるためエフェメラルとみなされます。

派生テーブルは永続化することもでき、その場合は、基盤となるデータベースに格納されます。後のタスクで、この派生テーブルを永続化して、データベースに書き戻せるようにします。

  1. ステップ 1 で Explore をレビューするために開いたブラウザタブを閉じます。

開発ブランチから本番環境に LookML の変更を送信する

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

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

  3. [Commit] ウィンドウでメッセージを追加して、行った変更を指定してから [Commit] をクリックします。

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

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

タスク 4. ネイティブ派生テーブルに新しい列を追加する

ネイティブ派生テーブルの主要なメリットは、追加のパラメータを活用して、基盤となるデータにまだ存在しないものを含む新しい列を容易に追加できることです。たとえば、derived_column パラメータを使用して、ネイティブ派生テーブルを定義するために使用された Explore にまだ存在しない新しい列を作成できます。

このタスクでは、前のタスクで作成したネイティブ派生テーブルに、派生列を追加します。新しい派生列には、注文による売上額の平均が顧客単位で格納されます。この値は、ネイティブ派生テーブルの既存の列から計算できます(顧客ごとの売上合計を顧客ごとの注文数で除算)。

派生列を作成した後、user_order_summary ビューで派生列の新しいディメンションを定義して、ビジネス ユーザーが Explore でデータをクエリできるようにします。

ネイティブ派生テーブルに対するビューファイルに派生列を追加する

  1. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[開発] をクリックします。

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

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

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

  5. user_order_summary 派生テーブルの定義の、column: total_revenue {} の後の新しい行で、次のコードを使用して新しい派生列を定義します。

derived_column: average_order_revenue { sql: total_revenue / order_count ;; }
  1. total_revenue のディメンションを見つけます。

  2. total_revenue のディメンションの後の新しい行で、次のコードを使用して、average_order_revenue の新しいディメンションを定義します。

dimension: average_order_revenue { value_format: "$#,##0.00" type: number }

user_order_summary.view ファイルのコード

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

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

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

  2. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[Explore] をクリックします。

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

  4. [User Order Summary] の横にある矢印をクリックします。

[User Order Summary] のデータパネルに、利用可能なディメンションが一覧表示されます。

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

  2. [User Order Summary] > [Dimensions] で、[Order Count] をクリックします。

  3. [User Order Summary] > [Dimensions] で、[Total Revenue] をクリックします。

  4. [User Order Summary] > [Dimensions] で、[Average Order Revenue] をクリックします。

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

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

average_order_revenue という新しい列は、ネイティブ派生テーブルを作成するために使用された基盤となる Explore(Order Items Explore)にはもともと含まれていなかったにもかかわらず、この列の計算が CTE に含まれるようになったことに注目してください。

派生列の詳細については、計算された値に対する派生列の作成に関する Looker のドキュメントをご覧ください。

  1. ステップ 1 で Explore をレビューするために開いたブラウザタブを閉じます。

開発ブランチから本番環境に LookML の変更を送信する

  1. user_order_summary.view ファイルに戻ります。[LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. [Commit] ウィンドウでメッセージを追加して、行った変更を指定してから [Commit] をクリックします。

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

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

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

前のタスクでは、一時的な派生テーブルを作成しました。つまり、テーブルは基盤となるデータベースに保存されるのではなく、実行時に生成されます。このタスクでは、派生テーブルを永続化して、基盤となるデータベースに書き戻せるようにします。派生テーブルを永続化するステップは、SQL 派生のテーブルでもネイティブ派生のテーブルでも同様です。

派生テーブルを永続化するには、次のパラメータのいずれかを派生テーブルの定義に追加します。

  • datagroup_trigger
  • sql_trigger_value
  • persist_for

これらのパラメータについて詳しくは、「Looker の派生テーブル」ドキュメントの永続的な派生テーブルの作成に関するセクションをご確認ください。

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

user_order_summary という名前のネイティブ派生テーブルに対して、training_ecommerce_default_datagroupdatagroup_trigger として追加することにより、このデータグループを使用して永続的な派生テーブルを再ビルドします。

training_ecommerce_default_datagrouptraining_ecommerce.model 内で定義され、1 時間ごとにモデルで定義されるすべてのオブジェクトを再ビルドするパラメータを含みます。

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

  1. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[開発] をクリックします。

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

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

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

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

datagroup_trigger: training_ecommerce_default_datagroup

user_order_summary.view ファイルのコード

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

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

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

  2. Looker のユーザー インターフェースの左側にあるナビゲーション メニューで、[Explore] をクリックします。

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

  4. [User Order Summary] の横にある矢印をクリックします。

[User Order Summary] のデータパネルに、利用可能なディメンションが一覧表示されます。

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

  2. [User Order Summary] > [Dimensions] で、[Order Count] をクリックします。

  3. [User Order Summary] > [Dimensions] で、[Total Revenue] をクリックします。

  4. [User Order Summary] > [Dimensions] で、[Average Order Revenue] をクリックします。

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

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

数秒後、WITH 句が標準の SQL SELECT ステートメントに置き換えられます。また、Looker が既存の user_order_summary テーブルを使用することを知らせるメッセージも表示されます。

この派生テーブルは実行時に CTE として生成されなくなります。代わりに、派生テーブルはデータグループを使用して永続化され、基盤となるデータベースに書き戻されました。

  1. ステップ 1 で Explore をレビューするために開いたブラウザタブを閉じます。

開発ブランチから本番環境に LookML の変更を送信する

  1. user_order_summary.view ファイルに戻ります。[LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. [Commit] ウィンドウでメッセージを追加して、行った変更を指定してから [Commit] をクリックします。

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

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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