使用 LookML 和 Liquid 建立動態 SQL 衍生資料表

实验 15 分钟 universal_currency_alt 免费 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP932

Google Cloud 自學實驗室標誌

總覽

Looker 是 Google Cloud 的新型資料平台,提供互動式分析功能,並可用圖表呈現資料。您能使用 Looker 深入分析資料、整合各種資料來源的洞察資訊、設定可做為行動依據的資料導向工作流程,以及建立自訂資料應用程式。

在本實驗室中,您將瞭解如何建立及更新 SQL 衍生資料表,以產生動態值並因應多種用途。

學習內容

  • 建立 SQL 衍生資料表,因應多種用途
  • 更新 SQL 衍生資料表,使用含有 Liquid 的範本篩選器產生動態值
  • 瞭解企業使用者如何運用動態 SQL 衍生資料表,找出複雜問題的解答

事前準備

務必熟悉 LookML。建議您先完成「瞭解 Looker 中的 LookML」實驗室,再開始本實驗室。

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境中完成實作實驗室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行本實驗室,這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本實驗室,以免產生額外費用。

如何開始實驗室及登入 Looker

  1. 準備就緒後,請點選「Start Lab」

    「Lab Details」窗格會顯示本實驗室中必須使用的暫時憑證。

    如果實驗室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。

    請在「Lab Details」窗格查看實驗室憑證,您之後會使用此憑證登入實驗室的 Looker 執行個體。

    注意:如果使用其他憑證,系統會顯示錯誤訊息或產生費用
  2. 點選「Open Looker」

  3. 分別在「Email」和「Password」欄位,輸入提供的使用者名稱和密碼。

    使用者名稱:

    {{{looker.developer_username | Username}}}

    密碼:

    {{{looker.developer_password | Password}}} 重要事項:請務必使用本頁面「Lab Details」窗格中提供的憑證,而非 Google Cloud Skills Boost 的憑證。請勿在本實驗室中使用個人的 Looker 帳戶。
  4. 點選「Log In」

    成功登入後,您就會在本實驗室看到 Looker 執行個體。

工作 1:建立單一 SQL 衍生資料表,因應多種用途

在 LookML 中,您可以透過 SQL 查詢定義 SQL 衍生資料表,或透過「探索」查詢定義原生衍生資料表。SQL 開發人員通常會覺得 SQL 衍生資料表較容易理解,並能輕鬆入門 Looker 中的衍生資料表。

在這項工作中,您會建立名為 user_facts 的 SQL 衍生資料表。這個資料表有很大的彈性調整空間,因此可解答多種客戶行為問題,範例如下:

  • 美國各州所有客戶的「平均生命週期收益」和「平均生命週期訂單數」為何?
  • 除了總收益 (生命週期) 和總訂單數 (生命週期) 之外,該客戶的第一筆訂單日期和最後一筆訂單日期為何?

使用 SQL 查詢定義新的衍生資料表

  1. 首先,在 Looker 使用者介面左下方,按一下切換鈕進入「開發模式」
  1. 按一下「開發」分頁標籤,然後點選「SQL Runner」

  2. 在「SQL 查詢」視窗輸入下列查詢:

SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10

這個範例查詢會選取 user_id,計算該使用者的生命週期訂單數,然後加總這些價格,做為使用者的生命週期收益。這項查詢也會將 created_at 欄的最小值和最大值,分別設為第一筆訂單日期和最後一筆訂單日期。

GROUP BY 子句會依 user_id 分組結果,LIMIT 子句則用來限制輸出結果數量,因為您只需要查看部分記錄,確定查詢正常運作即可。

  1. 按一下「執行」即可查看查詢結果。

結果資料表顯示 10 列資料

在這個範例中,查詢確實傳回了使用者 ID、生命週期訂單數、使用者產生的生命週期收益,以及第一筆和最後一筆訂單的日期。

請注意 LIMIT 子句是用來限制這項測試傳回的資料量;在後續步驟中,您將移除 LIMIT 子句,為 SQL 衍生資料表建立新的檢視表檔案。

為 SQL 衍生資料表建立新的檢視表檔案

  1. 點按頁面右上角「執行」旁的「設定」圖示 (設定齒輪圖示),然後選取「新增至專案」

  2. 在「專案」部分,選取「qwiklabs-ecommerce」

  3. 在「檢視表名稱」部分,輸入:user_facts

  4. 按一下「新增」。

系統會將您重新導向至 Looker IDE,並顯示您為 SQL 衍生資料表新建的檢視表檔案。您會看到 Looker 根據在 SQL Runner 中輸入的查詢,自動產生 SQL 衍生資料表的檢視表檔案。檢視表檔案前 12 行的內容如下:

view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10 ;; }

Looker 中的檔案應如下所示:

user_facts.view 顯示 10 行程式碼

您會注意到,新的 user_facts 檢視表是建立在「檢視表」資料夾之外。這有助於確保專案中的檢視表檔案井然有序。

  1. 點按「檢視表」旁的箭頭,即可查看檢視表清單。

  2. 點按「user_facts.view」,然後拖曳至「檢視表」資料夾底下。

  3. 點按「user_facts.view」,查看 SQL 衍生資料表的檢視表檔案。

Looker 會為 SQL 查詢 SELECT 子句中的每個資料欄自動產生維度,以及新的計數測量指標。在後續步驟中,您將修改檢視表檔案,移除不再需要的 LIMIT 子句、隱藏新的計數測量指標,並為檢視表新增主鍵。

  1. 從 SQL 參數中刪除 LIMIT 10 這行程式碼。

如先前所述,Looker 會自動產生計數測量指標,以及衍生資料表要使用的維度。如果其他檢視表已有相同的計數測量指標,其實用性可能大於系統自動產生的指標。

在這個範例中,自動產生的計數測量指標會計算訂單 ID,而 order_items 檢視表中已有訂單計數。

您可以使用 hidden: yes 參數來刪除或隱藏計數測量指標。如果想保留這個指標,以驗證計數結果與其他計數是否相同,建議隱藏此指標。

  1. measure: count 定義的 type: count 上方新增一行,並插入以下內容:
hidden: yes

最後一個最佳做法是確保新檢視表有主鍵。

在本例中,您可以選擇將 primary_key: yes 參數新增至 user_id 維度,因為這個維度是此檢視表的編排依據,提供了每筆訂單的詳細資料。

  1. dimension: user_id 定義中的 type: number 上方新增一行,並插入以下內容:
primary_key: yes

現在,名為 user_facts 的新檢視表已準備就緒,您可以繼續建立新的維度和測量指標、將其彙整至模型檔案中的探索,和/或完成 Git 工作流程,將變更推送至正式環境。您將在後續章節中繼續建構這個資料表。

  1. 按一下「儲存變更」。更新後的程式碼應如下所示:
view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id ;; } measure: count { hidden: yes type: count drill_fields: [detail*] } dimension: user_id { primary_key: yes type: number sql: ${TABLE}.user_id ;; }

Looker 中的檔案應如下所示:

user_facts.view 顯示 28 行程式碼

修訂變更並部署至正式環境

  1. 依序點按「驗證 LookML」>「修訂變更並推送」

  2. 新增修訂版本訊息,然後點按「修訂」

  3. 最後,點按「部署至正式環境」

點選「Check my progress」,確認目標已達成。 為 SQL 衍生資料表建立檢視表檔案

工作 2:新增測量指標來解答業務問題

在本節中,您將新增兩項測量指標,以找出您想知道的首次客戶行為問題解答:「美國各州所有客戶的平均生命週期收益和平均生命週期訂單數為何?」

  1. user_facts.view 檢視表中新增兩個測量指標:average_lifetime_revenueaverage_lifetime_order_count,分別用於計算平均生命週期收益和平均生命週期訂單數:
measure: average_lifetime_revenue { type: average sql: ${TABLE}.lifetime_revenue ;; } measure: average_lifetime_order_count { type: average sql: ${TABLE}.lifetime_order_count ;; }
  1. 按一下「儲存變更」。您的檢視表應如下所示:

user_facts.view 顯示第 25 至 43 行程式碼,模擬上一個步驟中的版面配置

將新檢視表彙整至探索

在本節中,您將檢查並測試新的衍生資料表。您會先將這個資料表彙整至模型檔案中的 order_items 探索定義,然後使用 Order Items 探索,預覽變更推送至正式環境後,企業使用者會看見的結果。

  1. 在同一頁面,點按「模型」資料夾內的「training_ecommerce.model」檔案來修改內容。

  2. 找到 explore: order_items 定義。您會發現此模型已定義多個彙整,包含 users 檢視表在內。

training_ecommerce.model 檔案顯示第 14 至 28 行

  1. explore: order_items 定義中,於現有的 users 彙整上方,用下列指令新增 user_facts 彙整:
join: user_facts { type: left_outer sql_on: ${order_items.user_id} = ${user_facts.user_id};; relationship: many_to_one }

sql_on 參數會將彙整欄位指定為 user_idrelationship 參數表明 order_items 中可能有多個 user_id 項目,但 user_facts 中每個 user_id 只有一個項目,且在每筆訂單中都以摘要列的形式呈現。

  1. 按一下「儲存變更」。現在您的探索應包含下列內容:
explore: order_items { join: user_facts { type: left_outer sql_on: ${order_items.user_id} = ${user_facts.user_id};; relationship: many_to_one } join: users { type: left_outer sql_on: ${order_items.user_id} = ${users.id} ;; relationship: many_to_one } ... ... ... }

Looker 中的檢視表現在應如下所示:

training_ecommerce.model 檔案已加入 user_facts 探索,顯示第 1 至 29 行

  1. 將檢視表彙整至探索後,前往「Order Items」的「探索」頁面

  2. 在「User Facts」檢視表下方,選取「User ID」維度,以及「Average Lifetime Order Count」和「Average Lifetime Revenue」測量指標。

  3. 將資料列限制設為 100

  4. 按一下「執行」。結果應如下所示:

結果資料表顯示「User ID」維度、「Average Lifetime Order Count」和「Average Lifetime Revenue」測量指標的 10 列資料

  1. 現在,請移除「User ID」維度,並從「Users」檢視表新增「State」維度。

  2. 按一下「Country」維度,並新增篩選器。

  3. 選取「USA」。

USA 篩選器

  1. 點選「執行」再次執行查詢。

您會看到現在可使用相同的測量指標,計算出每個使用者和每個州/省的平均生命週期收益,以及平均生命週期訂單數。

  1. 查詢結果應如下所示:

結果資料表,顯示「Users country」、「Users state」、「Average Lifetime Order Count」和「Average Lifetime Revenue」測量指標的 10 列資料

  1. 返回 training_ecommerce 模型檔案。

修訂變更並部署至正式環境

  1. 依序點按「驗證 LookML」>「修訂變更並推送」

  2. 新增修訂版本訊息,然後點按「修訂」

  3. 最後,點按「部署至正式環境」

點選「Check my progress」,確認目標已達成。 新增測量指標來解答業務問題

工作 3:更新 SQL 衍生資料表,使用範本篩選器產生動態值

在先前的實驗室,您看到範本篩選器與參數遵循相同的邏輯模式。主要差異同樣在於,範本篩選器可讓使用者從多個篩選器運算子選擇。例如,數字資料類型的運算子可能是「等於」、「大於」和「介於」等等。

在範本篩選器中,值不會經過硬式編碼,而是由使用者輸入,然後傳遞至產生的 SQL 查詢。不過,您可以在篩選器定義中指定探索和維度,顯示選項的下拉式選單。

在本節中,您將修改第一節中的 SQL 衍生資料表定義,根據使用者選取的時間範圍重新計算所有值。

  1. 返回 Looker IDE 中的 user_facts 檢視表。

  2. 首先,按照下列方式修改 SQL 衍生資料表定義,加入條件式 WHERE 子句:

derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items WHERE {% condition select_date %} order_items.created_at {% endcondition %} GROUP BY user_id;; }
  1. 接著,在 derived_table 定義下方新增篩選條件,供使用者選取日期:
filter: select_date { type: date suggest_explore: order_items suggest_dimension: order_items.created_date }

檢視表檔案的前 18 行應如下所示:

view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items WHERE {% condition select_date %} order_items.created_at {% endcondition %} GROUP BY user_id;; } filter: select_date { type: date suggest_explore: order_items suggest_dimension: order_items.created_date }
  1. 按一下「儲存變更」。檔案應如下所示:

user_facts.view 顯示第 1 至 18 行

現在,您將在「Order Item」探索中測試動態 SQL 衍生資料表,方法是重複執行上一個工作中的查詢,查看新增篩選器時值是否會變更。

  1. 返回「Order Items」探索。

  2. 在「User Facts」檢視表中,選取「Average Lifetime Order Count」和「Average Lifetime Revenue」測量指標。

  3. 在「Users」檢視表中選取「State」維度。

  4. 「User Facts」檢視表中,在名稱是「Select Date」的新「只有篩選器的欄位」,按一下欄位旁邊的篩選器圖示。

  5. 在使用者介面頂端的第一個篩選器值,保留選取「is in the past」。

  6. 為第二個篩選器值選取「complete years」,並在空白值方塊新增「1」。

  7. 在「Users」檢視表新增「Country」篩選器,並設為「USA」。

  8. 點按「執行」即可查看結果。

畫面會顯示過去 1 個完整年度中,各州/省或國家/地區的平均生命週期訂單數和平均生命週期收益。

  1. 按一下「SQL」分頁標籤即可查看 SQL。

  2. 此時您可以隨意調整篩選器值,並查看「SQL」分頁標籤,瞭解範本篩選器對值造成的相應變化。

  3. 返回 user_facts 檢視表。

修訂變更並部署至正式環境

  1. 依序點按「驗證 LookML」>「修訂變更並推送」

  2. 新增修訂版本訊息,然後點按「修訂」

  3. 最後,點按「部署至正式環境」

點選「Check my progress」,確認目標已達成。 更新 SQL 衍生資料表,使用範本篩選器產生動態值

恭喜!

在本實驗室中,您建立了 SQL 衍生資料表,使用含有 Liquid 的範本篩選器產生動態值,並運用動態 SQL 衍生資料表找出複雜問題的解答。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 4 月 24 日

實驗室上次測試日期:2024 年 4 月 24 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。