使用 LookML 建立衍生資料表

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

GSP858

Google Cloud 自學實驗室標誌

總覽

Looker 是 Google Cloud 提供的現代化資料平台,企業使用者能以互動方式分析資料及製作圖表。LookML 開發人員可建立新欄位、資料表和檢視表來自訂及整理資料,彙整重要資料供企業使用者運用。

在 Looker 中,LookML 開發人員可使用衍生資料表,新建基礎資料庫中未定義的資料表。舉例來說,LookML 開發人員可以建立衍生資料表,彙整現有資料表的詳細資訊,例如電子商務資料集中的逐筆訂單詳情。

在本實驗室中,您將瞭解如何在 LookML 中建立兩種衍生資料表:SQL 衍生資料表和原生衍生資料表。

本實驗室已為您建立名為 qwiklabs-ecommerce 的 LookML 專案。本專案以電子商務模擬資料集為基礎,內含訂單、產品和使用者資訊。如要進一步瞭解 LookML 建模,請參閱 Looker 說明文件。

學習內容

本實驗室的內容包括:

  • 修改 Looker 管理員發布的現有 LookML 專案 (qwiklabs-ecommerce)
  • 建立 SQL 衍生資料表
  • 建立原生衍生資料表
  • 將衍生資料表的新檢視表彙整至「探索」
  • 在開發模式中測試 LookML 變更
  • 使用「探索」介面檢視修改後的 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 衍生資料表,此資料表用來彙整每筆訂單的詳情,包括訂單 ID、使用者 ID、商品數量和訂購商品的總金額。接著,您會在 qwiklabs-ecommerce 專案中,為 SQL 衍生資料表建立新的檢視表檔案。

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

  1. 首先,在 Looker 使用者介面左下方,按一下切換鈕進入「開發模式」

開發模式切換鈕

  1. Looker 導覽選單中,依序點按「開發」>「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 查詢方塊

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

結果資料表的圖片,order_id、user_id、order_item_count 和 order_revenue 四個資料欄標題下方有 10 列資料

在這個範例中,查詢確實傳回了訂單 ID、使用者 ID、每筆訂單的商品數量,以及每筆訂單的總收益。

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

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

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

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

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

  4. 點按「新增」。

系統會將您重新導向至 Looker IDE,並顯示您為 SQL 衍生資料表新建的檢視表檔案。

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

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

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

  3. 點按「order_details.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 參數新增至 order_id 維度,因為這個維度是此檢視表的編排依據,提供了每筆訂單的詳細資料。

  1. 請在 dimension: order_id 定義中的 type: number 上方新增一行,並輸入 primary_key: yes

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

  1. 點按「儲存變更」。

order_details.view 分頁,以及「檔案瀏覽器」面板。

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

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

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

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

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

工作 2:建立原生衍生資料表,統整每筆訂單的詳細資料

與 SQL 衍生資料表不同,原生衍生資料表 (NDT) 完全以 LookML 語言表示。原生衍生資料表之所以實用,是因為它體現了 LookML「可重複使用」這項重要原則,也就是說您可以沿用現有的維度、測量指標,甚至是探索和彙整邏輯。

這能大幅減少使用「硬式編碼」來參照資料庫;長期下來,程式碼會更容易維護。

以前一節的 order_details SQL 衍生資料表為例,SQL 包含 order_items 的 COUNT 和 sale_price 的 SUM。不過,order_items 檢視表已包含 order_item_counttotal_revenue 的測量指標。與其新建一個 SQL 衍生資料表,您只需使用現有維度和測量指標,就能輕鬆定義新的 NDT。

在本節中,您將根據先前的範例重新建立 SQL 衍生資料表,不過這次要建立原生衍生資料表,而這項工作可以透過「探索」頁面輕鬆達成。您將使用「Order Items 探索」建立所需的原生衍生資料表,當中包含每筆訂單的詳情:訂單 ID、使用者 ID、商品數量和訂購商品的總金額。

透過探索查詢定義新的原生衍生資料表

  1. 在 Looker 導覽選單中,點按「探索」

  2. 在「E-Commerce Training」底下,點按「Order Items」

  3. 點按「Order Items」旁的箭頭。

「Order Items」資料面板會列出可用的維度和測量指標。提醒您,探索功能會自動產生有效且高效能的 SQL 查詢。

  1. 在「Order Items」>「維度」底下,點按「Order ID」和「User ID」

  2. 在「Order Items」>「測量指標」底下,點按「Order Count」和「Total Revenue」

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

查詢結果資料表,當中包含訂單項目 ID、使用者 ID、數量和總收益等資料列。

花點時間查看查詢結果,確認傳回的結果符合預期。在這個範例中,您的請求正確傳回了訂單 ID、使用者 ID、每筆訂單的項目數量,以及每筆訂單的總收益。

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

  2. 點按「衍生資料表」,將 LookML 程式碼複製到電腦的剪貼簿。稍後您會將這段 LookML 程式碼,貼到原生衍生資料表的新檢視表檔案。

取得 LookML 衍生資料表程式碼

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

  1. 在新分頁中開啟新的 Looker 視窗。

  2. Looker 導覽選單中,點按「開發」分頁標籤,然後選取 qwiklabs-ecommerce LookML 專案。

  3. 點按「檔案瀏覽器」旁的「新增檔案或資料夾」圖示 新增檔案或資料夾圖示

  4. 選取「建立檢視表」

  5. 在「檔案名稱」部分,輸入 order_details_summary

  6. 點按「建立」

您會注意到 order_details_summary 檢視表的新檢視表檔案,是建立在「檢視表」資料夾之外。

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

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

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

  4. 刪除檢視表檔案中所有自動產生的 LookML。

  5. 貼上您剛才複製的原生衍生資料表 LookML 程式碼。

  6. 將自動產生的檢視表名稱 (例如 add_a_unique_name_1623275538) 替換為 order_details_summary。檔案應如下所示:

order_details_summary.view 頁面

您會發現 Looker 建議加入模型檔案,但這些程式碼行已標示為註解,而最佳做法是不要更動這些已進行註解排除的程式碼行。這是因為模型檔案幾乎都會內含其他檔案,如果有太多檔案彼此包含,模型可能會出現循環相依的狀況,進而導致語法驗證失敗。

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

  1. 點按「儲存變更」。

目前,這個資料表不會彙整至探索,您會對 SQL 衍生資料表執行該操作。

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

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

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

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

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

工作 3:將新檢視表彙整至探索

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

請注意,雖然您不會針對原生衍生資料表完成這些最後步驟,但無論您是為 SQL 衍生資料表或原生衍生資料表建立檢視表,將檢視表彙整至探索的程序都相同。

彙整 SQL 衍生資料表的檢視表

  1. 在同一頁面中,點按「模型」資料夾內的 「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_idrelationship 參數表明 order_items 中可能有多個 order_id 項目,但 order_details 中每個 order_id 只有一個項目,且在每筆訂單中都以摘要列的形式呈現。

  1. 點按「儲存變更」。

training_ecommerce.model 頁面

在「探索」中查看 SQL 衍生資料表的資料和所產生的 SQL

  1. 在 Looker 導覽選單中,點按「探索」

  2. 在「E-Commerce Training」底下,點按「Order Items」

  3. 點按「Order Details」旁的箭頭。

  4. 在「Order Details」>「維度」底下,點按「Order ID」、「Order Item Count」、「Order Revenue」和「User ID」

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

  6. 點按「SQL」分頁以查看 Looker 產生的 SQL 查詢。

SQL 分頁顯示產生的 SQL 查詢

您會發現一般資料表運算式 (CTE) 是以 WITH 子句定義。這個原生衍生資料表會在執行階段以 CTE 形式產生,而不是儲存在基礎資料庫中,因此視為暫時性資料表。

您也可以保留衍生資料表,也就是儲存在基礎資料庫中。如要進一步瞭解永久衍生資料表,請參閱建立永久衍生資料表 (PDT) 說明文件

在下一節中,我們將探索如何保留衍生資料表,以便將資料寫回資料庫。

  1. 返回 training_ecommerce.model 檔案。

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

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

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

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

點選「Check my progress」,確認目標已達成。 彙整 SQL 衍生資料表的檢視表

工作 4:保留衍生資料表

到目前為止,您在範例中探索的都是暫時性衍生資料表,意思是 Looker 會在探索查詢中為這些資料表產生 CTE (又稱臨時資料表)。

現在,您將認識另一種衍生資料表類型:永久型。永久衍生資料表 (PDT) 會寫入並儲存在連線資料庫中。無論是 SQL 衍生資料表還是原生衍生資料表,其保留步驟都相同。

如先前所述,保留衍生資料表的優點在於供企業使用者隨需取可用,並能縮短查詢執行時間。缺點是會占用資料庫儲存空間 (因而產生費用),而且彈性較差。

如要保留衍生資料表,您必須在定義中加入下列一或兩個參數:

  • datagroup_trigger 會使用資料群組,或是模型中設定的快取政策。如果模型已定義資料群組,則最推薦採用此方式保存衍生資料表。
  • sql_trigger_value 會使用預先編寫的 SELECT 陳述式傳回一個值。Looker 會重複將 SELECT 陳述式傳送至資料庫,若發現結果有變,就會觸發重建 PDT 的程序。
  • persist_for 會指示 PDT 在設定的時間內保持生效,例如「1 hour」或「4 hours」。

不過請注意,persist_for 不具備任何重建邏輯,因此 PDT 在這段期間不會更新。此外,PDT 逾時就會消失,直到企業使用者查詢時才會再次出現。

PDT 的主要優點是可隨時取得資料,且能縮短查詢執行時間,因此建議搭配使用 persist_forsql_trigger_value,確保 PDT 能反映資料更新,或直接使用 datagroup_triggersql_trigger_value

保留原生衍生資料表

在這項工作中,您將使用 datagroup_trigger 參數保留原生衍生資料表,該參數會根據模型檔案中預先定義的資料群組 (快取政策),重建永久衍生資料表。

針對名為 order_details_summary 的原生衍生資料表,您會將 training_ecommerce_default_datagroup 新增為 datagroup_trigger;這樣一來,持續性衍生資料表就會使用 training_ecommerce.modeltraining_ecommerce_default_datagroup 提供的規則重建,每小時重建模型中定義的所有物件。

  1. Looker 導覽選單中,點按「開發」分頁標籤,然後選取 qwiklabs-ecommerce LookML 專案。

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

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

  4. derived_table 定義中,於 explore_source: order_items 的右括號 (}) 後方新增一行,然後貼上下列內容:

datagroup_trigger: training_ecommerce_default_datagroup
  1. 點按「儲存變更」。檔案應如下所示:

order_details_summary.view 頁面

在「探索」中查看永久衍生資料表的 SQL 查詢

  1. 在 Looker 導覽選單中,點按「探索」

  2. 在「E-Commerce Training」底下,點按「Order Items」

  3. 點按「Order Details」旁的箭頭。

  4. 在「Order Details」>「維度」底下,點按「Order ID」、「Order Item Count」、「Order Revenue」和「User ID」

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

  6. 點按「SQL」分頁以查看 Looker 產生的 SQL 查詢。

醒目顯示的「SQL」分頁,當中顯示產生的 SQL 查詢

您已成功保存衍生資料表,因此先前由 WITH 子句定義的 CTE 不復存在,並由 SELECT 陳述式取代,用來查詢 order_details_summary 永久衍生資料表的欄位。

  1. 返回 order_details_summary 檔案。

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

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

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

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

恭喜!

在本實驗室中,您學會如何使用 LookML 建立 SQL 衍生資料表和原生衍生資料表,定義基礎資料庫中沒有的新資料表。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

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

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

實驗室上次測試日期:2021 年 10 月 11 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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