排解 Looker 資料模型問題

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

GSP1019

Google Cloud 自學實驗室標誌

總覽

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

在本實驗室,您將學習如何在 Looker 使用 SQL Runner、LookML Validator 和 Content Validator,排解及診斷 LookML 程式碼問題。

學習內容

  • 使用 SQL Runner 探索資料表並排解 SQL 查詢問題。
  • 使用 LookML Validator 驗證定義物件和關係的語法。
  • 診斷並解決探索查詢的錯誤訊息。
  • 診斷並解決執行 Content Validator 時出現的錯誤訊息。

事前準備

務必熟悉 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 執行個體。

LookML 程式碼疑難排解工具和常見用途

在本節中,您將瞭解可用來排解 LookML 程式碼問題的各種工具和方法,以及這些工具和方法的常見用途。

注意:本實驗室的各項工作都會模擬 LookML 物件的語法和定義錯誤,協助您瞭解如何排解 Looker 執行個體可能遇到的問題。請務必完成「整個」實驗室,查看正確的語法並完全解決錯誤,再將變更內容推送至正式環境。

LookML Validator

LookML Validator 可執行完整的模型驗證。某些錯誤 (例如因缺少彙整關係而導致無效的欄位參照) 需要全面檢查模型,因此只會在執行 LookML Validator 時顯示。LookML Validator 會檢查模型中的所有 LookML 程式碼,例如物件定義 (維度和測量指標) 的語法,以及定義的關係 (例如彙整)。不過,這項功能不會檢查 LookML 物件的 SQL 參數 (例如:SQL 衍生資料表)。

在「探索」頁面執行查詢

定義新的 LookML 物件後,即可在「探索」頁面執行查詢。這個頁面會顯示基礎資料庫傳回的 SQL 錯誤 (例如:權限不足、SQL 物件參照錯誤或無效彙整),協助您排解 LookML 程式碼問題。

SQL Runner

SQL Runner 可讓您直接存取資料庫,也很適合用來檢查查詢中的 SQL 錯誤。您可以使用這項工具,測試要加入 LookML 物件 SQL 參數的自訂 SQL,還能查看資料庫資料表清單、執行臨時查詢,以及編寫 SQL 衍生資料表的查詢等。

Content Validator

Content Validator 會驗證 Look 圖表和資訊主頁中,所有參照 LookML 模型、探索、視圖和欄位的內容,並針對參照不明 LookML 物件的內容顯示錯誤訊息。此外,這項工具也會檢查在執行個體中建立的 Look 圖表和資訊主頁,確保這些內容對 LookML 物件的參照有效 (例如,探索中的特定維度或指標名稱可能隨時間變更)。

Looker 錯誤目錄

如果仍找不到特定錯誤出現在哪裡,可以查看 Looker 錯誤目錄,當中會列出常見錯誤訊息、根本原因,以及訊息顯示在 Looker 的哪個位置。

工作 1:使用 SQL Runner 探索可用資料並排解 SQL 查詢問題

使用 SQL Runner,就能透過資料庫連線直接存取基礎資料表。SQL Runner 會列出可用的資料表和資料欄,方便您對資料執行自訂 SQL 查詢。在這項工作中,您將探索可用資料並排解 SQL 查詢問題,然後在 SQL Runner 建立新的 SQL 衍生資料表。

在 SQL Runner 連結 BigQuery 資料集

  1. 按一下切換鈕進入「開發模式」

  2. 在「開發」分頁,選取「SQL Runner」

  3. 依序點按「設定」圖示 「設定」齒輪圖示 和「Search public projects」
    「專案」方塊現在應該是空的。

  4. 輸入 cloud-training-demos,然後按下 Enter 鍵。

  5. 在「資料集」部分,選取 looker_ecomm
    系統會顯示這個 BigQuery 資料集中的可用資料表清單。

  6. 在「SQL 查詢」視窗加入下列查詢:

SELECT orders.user_id as user_id ,COUNT(*) as lifetime_orders ,SUM(orders.order_price) as lifetime_sales FROM cloud-training-demos.looker_ecomm.orders GROUP BY user_id LIMIT 10 注意:上方提供的 SQL 查詢包含錯誤資訊,您將在後續步驟修正。
  1. 按一下「執行」
    系統會顯示下列錯誤訊息:
Query execution failed: - Not found: Table cloud-training-demos:looker_ecomm.orders was not found in location US

找出 SQL 查詢的正確資料表名稱

  1. 在「資料表」部分的資料表名稱清單中,選取包含訂單資訊的資料表。

  1. 更新 SQL 查詢中的資料表名稱:
SELECT order_items.user_id as user_id ,COUNT(*) as lifetime_orders ,SUM(order_items.order_price) as lifetime_sales FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10
  1. 按一下「執行」
    畫面上會顯示新的錯誤訊息:
Query execution failed: - Name order_price not found inside order_items at [5:19]
  1. 在「資料表」下方,點選 order_items
    畫面會顯示資料表欄位清單。

  1. 更新 SQL 查詢中的欄位名稱:
SELECT order_items.user_id as user_id ,COUNT(*) as lifetime_orders ,SUM(order_items.sale_price) as lifetime_sales FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10
  1. 按一下「執行」
    查詢結果成功傳回後,即可將這項查詢儲存為 SQL 衍生資料表。

將查詢儲存為 SQL 衍生資料表

  1. 點按「執行」旁的「設定」圖示 「設定」齒輪圖示,然後按一下「新增至專案」

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

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

  4. 按一下「新增」。

  5. 在檔案瀏覽器中,將 user_order_lifetime.view 拖曳至 views 資料夾。

  6. user_order_lifetime.view 檔案中,從 SQL 參數刪除 LIMIT 10 這行程式碼。

注意:您目前無需定義資料檢視表的 primary_key
  1. 依序點選「儲存變更」和「驗證 LookML」
    結果會顯示未發現 LookML 錯誤,檔案應如下所示:

user_order_lifetime.view 檔案的第 1 至 21 行,以及顯示在右側的「專案健康狀態」窗格

  1. 返回 training_ecommerce.model 檔案。

  2. 找到 explore: events 定義區塊,在 join: event_session_facts 前新增一行,並使用下列程式碼定義新彙整:

join: user_order_lifetime { type: left_outer sql_on: ${events.user_id} = ${user_order_lifetime.user_id};; relationship: many_to_one }
  1. 依序點選「儲存變更」和「驗證 LookML」。 結果會顯示沒有 LookML 錯誤。

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

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

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

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

點選「Check my progress」,確認目標已達成。 使用 SQL Runner 探索可用資料並排解 SQL 查詢問題

工作 2:使用 LookML Validator 測試語法,並驗證模型中定義的關係

LookML Validator 可協助您測試定義物件 (例如維度和測量指標) 的語法,並驗證模型中的關係 (例如彙整)。在這項工作中,您將建立一個新維度,並使用錯誤的 LookML 語法來參照另一個未與探索基本檢視表彙整的檢視表,再使用 LookML Validator 找出並修正這兩項問題。

參照其他檢視表的維度來建立新維度

  1. qwiklabs-ecommerce 專案中開啟 users.view

  2. 找出最後一個維度 (約在第 88 行),並加入下列程式碼來建立新維度:

dimension: average_sales { type: ${number} sql: user_order_lifetime.lifetime_sales / user_order_lifetime.lifetime_orders ;; value_format_name: usd }

您會發現新維度參照了新建立的 user_order_lifetime 檢視表中的維度。

注意:這個 LookML 程式碼含有語法錯誤,您將在後續步驟修正。
  1. 依序點選「儲存變更」和「驗證 LookML」
    畫面上會顯示四種不同的錯誤:
  • 第一個項目指出語法錯誤的位置為「Invalid LookML syntax near line 89」
  • 最後一項則指出具體的語法錯誤為「Expecting ‘keyword’, ‘}’, got ‘identifier」

由於檢視表現在包含無效語法,系統會將其視為無效的檢視表。模型檔案也會因此出現其他錯誤,因為已找不到該檢視表:

  • 「Join name must match a view name」和「Could not find a field named users.id」

修正檢視表檔案中新維度的語法後,檢視表就會恢復為有效狀態,模型檔案的錯誤也會一併解決。

找出並修正新維度的語法錯誤

現在要解決 LookML 程式碼中的錯誤。

  1. 查看 users.view 檔案中的其他維度。

  2. 參閱維度、篩選器和參數類型的說明文件。

  1. 更新維度的 LookML 程式碼:
dimension: average_sales { type: number sql: ${user_order_lifetime.lifetime_sales} / ${user_order_lifetime.lifetime_orders} ;; value_format_name: usd }
  1. 依序點選「儲存變更」和「驗證 LookML」

    由於語法已更新,檢視表再次變為有效,模型錯誤也已解決。不過,現在出現了新的錯誤:

users.view 檔案的第 79 至 100 行,以及 LookML 驗證窗格顯示的 LookML 錯誤:「inaccessible user_order_lifetime view」

  1. 參閱 Looker 錯誤目錄,查看 Inaccessible view 的錯誤訊息。
    您可以調查以下幾種可能:

    • 檢視表不存在。
    • 資料檢視表未正確彙整至探索。
  2. 查看檔案瀏覽器中的檢視表清單。您會發現檔案瀏覽器中確實含有 user_order_lifetime 檢視表。

  3. 開啟並查看 training_ecommerce.model

    您會發現名為 user_order_lifetime 的新檢視表,並未彙整至模型檔案中任何探索的基本檢視表,且 users.view 已同時加入 order_itemsevent 探索。因此,user_order_lifetime 的新檢視表也必須加入這兩個探索,才能在 users.view 中成功定義新維度。

  4. 找到 explore: order_items 定義區塊,在 join: users 前新增一行,然後加入下列程式碼來定義新彙整:

join: user_order_lifetime { type: left_outer sql: ${order_items.user_id} = ${user_order_lifetime.user_id};; relationship: many_to_one } 注意:其中一個彙整的定義有誤,您將在下一節解決這項問題。
  1. 依序點選「儲存變更」和「驗證 LookML」

請保留 IDE 的瀏覽器分頁,然後開始執行下一個工作。

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

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

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

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

點選「Check my progress」,確認目標已達成。 建立新維度

工作 3:使用「探索」查詢視窗診斷遺漏的物件和錯誤訊息

測試 LookML 程式碼變更的簡單方法,就是在「探索」中執行查詢,瞭解企業使用者如何查看及使用修改後的程式碼。執行探索查詢,即可找出遺漏或無效的 LookML 物件 (例如遺漏的 primary_key),並查看基礎資料庫傳回的 SQL 錯誤,例如權限不足或 SQL 物件參照錯誤 (例如彙整定義錯誤)。

在這項工作中,您將透過「探索」頁面執行查詢,找出未正確定義的彙整和遺漏的指標,並修正新定義的彙整 LookML,然後在新檢視表加入 primary_key,確保彙整 (即評估指標) 作業順利完成。

在「探索」中查看新檢視表

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

  2. 依序前往「探索」>「Order Items」

  3. 展開「User Order Lifetime」檢視畫面。

畫面會顯示三個維度:lifetime_orderslifetime_salesuser_id,但沒有測量指標。

請不要關閉這個瀏覽器分頁,以便繼續執行後續步驟。

找出並修正檢視表中遺漏的彙整參數

  1. 返回 Looker IDE 的瀏覽器分頁,然後前往 user_order_lifetime.view。「探索」中應會顯示名為 count 的指標。

  2. 參閱說明文件,瞭解對稱彙整的相關要求。第一項要求是所有經彙整的檢視表都必須定義 primary_key

  3. 再次查看 user_order_lifetime.view
    目前尚未定義 primary_key

  1. user_order_lifetime.view 檔案中,將 user_id 維度定義為檢視表的 primary_key
dimension: user_id { primary_key: yes type: number sql: ${TABLE}.user_id ;; }
  1. 依序點選「儲存變更」和「驗證 LookML」

  2. 返回「Order Items」探索的瀏覽器分頁,然後重新整理頁面。

  3. 展開「User Order Lifetime」檢視畫面。
    定義檢視表的 primary_key 後,系統會顯示「Count」測量指標。

在後續步驟中,您將繼續使用「Order Items Explore」探索,測試在 users.view 定義的新維度 (平均銷售額),這個維度會使用 user_order_lifetime.view 中的維度。

執行探索查詢來測試新維度

  1. 在「使用者」>「維度」下方,依序點按「Average Sales」和「執行」

系統會顯示錯誤訊息,以及探索傳送至基礎資料庫的 SQL 查詢。錯誤訊息會指出第 13 行有問題:「Query execution failed: - Syntax error: Expected end of input but got identifier "order_items" at [13:1]」

  1. 在「資料」窗格中開啟「SQL」分頁,即可輕鬆查看失敗的查詢,並檢查第 13 行:
order_items.user_id =user_order_lifetime.user_id

雖然錯誤資訊不多,但別忘了,您先前也將這個新檢視表彙整到了事件探索。因此在後續步驟,您要在事件探索中執行相同的查詢,測試該探索中的檢視表。

  1. 請保持開啟 Order Items 瀏覽器分頁,並在新分頁開啟新的 Looker 視窗。

  2. 依序前往「探索」>「事件」

  3. 在「使用者」>「維度」下方,依序點按「Average Sales」和「執行」

  4. 在「資料」窗格中開啟「SQL」分頁,查看成功的查詢。

  5. 查看這項查詢的第 13 行。

    與「Order Items」探索中的查詢不同,第 13 行的查詢語法指定了 eventsuser_order_lifetime 之間的 join

LEFT JOIN user_order_lifetime ON events.user_id = user_order_lifetime.user_id

找出並修正模型中的無效參數

  1. 返回 Looker IDE 的瀏覽器分頁,開啟 training_ecommerce.model

  2. 查看 order_items 探索和 events 探索中 user_order_lifetime 的彙整定義。

  3. 參閱「LookML 參數參考資料 (依功能分類)」中的參數說明。

  1. explore: order_items 定義中,更新 user_order_lifetime 的彙整:
join: user_order_lifetime { type: left_outer sql_on: ${order_items.user_id} = ${user_order_lifetime.user_id};; relationship: many_to_one }
  1. 依序點選「儲存變更」和「驗證 LookML」
    結果應會顯示沒有 LookML 錯誤。

  2. 返回「Order Items」探索的瀏覽器分頁,然後重新整理頁面。

order_items 探索中正確定義 user_order_lifetime 的彙整後,即可順利執行查詢。

將探索查詢儲存為 Look 圖表

  1. 按一下「Average Sales」資料欄,即可依「遞減」順序排序。

  2. 點按「ID」、「State」、「Country」和「Age」維度來展開查詢。

  3. 在「資料列限制」中輸入「10」

  4. 按一下「執行」

  5. 展開「圖表」窗格,然後選取「資料表」圖表

  6. 點按「設定」圖示 「設定」齒輪圖示

  7. 依序點選「儲存」>「儲存為 Look 圖表」

  8. 將 Look 圖表命名為 Top 10 Users With Highest Average Sales

  9. 點選「儲存及查看 Look 圖表」
    您會看見類似下方的圖表:

平均銷售額前 10 名的資料表,包含 5 個資料欄 (Average Sales、ID、State、Country 和 Age) 的 10 列資料

  1. 關閉另一個「探索」分頁,並保留這個瀏覽器分頁,準備執行下一個工作。

點選「Check my progress」,確認目標已達成。 建立 Look 圖表

工作 4:使用 Content Validator 測試及更新 LookML 物件變更後的內容

Content Validator 可協助您檢查在執行個體中建立的 Look 圖表和資訊主頁,確保這些內容參照的 LookML 物件有效。如果維度、度量、檢視、探索或模型的名稱經過修改,這項功能會特別實用。請參閱「使用 Content Validator 前的注意事項」說明文件,進一步瞭解這項工具可能對執行個體內容和物件造成的影響。

在這項工作中,您將修改 LookML 物件 (例如維度) 的名稱,方便使用者辨識,然後使用 Content Validator 驗證並更新現有內容 (例如 Look 圖表) 對 LookML 物件的參照。

修改現有維度的名稱

  1. 開啟 users.view,找出名為 average_sales 的維度,然後修改維度名稱,讓企業使用者更輕鬆辨識:
dimension: average_order_price { type: number sql: ${user_order_lifetime.lifetime_sales} / ${user_order_lifetime.lifetime_orders} ;; value_format_name: usd }
  1. 依序點選「儲存變更」和「驗證 LookML」
    結果應會顯示沒有 LookML 錯誤。

  2. 保持開啟這個 IDE 瀏覽器分頁,然後返回 Look 的瀏覽器分頁,並重新整理頁面。

畫面會出現警告訊息:「users.average_sales」已不存在於「Order Items」或您沒有存取權,因此系統會忽略這個欄位。

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

  2. 依序前往「開發」>「Content Validator」

  3. 點按「驗證」

「錯誤」分頁會處於啟用狀態,並顯示錯誤訊息 “Unknown field "users.average_sales",這項錯誤來自您在先前工作中建立的 Look 圖表「Top 10 Users With Highest Average Sales」

  1. 點按「Find & Replace in All Content」

  2. 在「Type」部分選取「Field」

  3. 在「Field Name」部分,輸入 users.average_sales

  4. 在「Replacement Field Name」部分,輸入 users.average_order_price

  5. 點按「Replace Field Name」

  6. 點按「OK」

  7. 點按「驗證」
    「錯誤」分頁現在會是空的,因為所有參照該維度的內容 (本例中為名為「Top 10 Users With Highest Average Sales」的 Look 圖表) 都已更新維度名稱。

  8. 返回 Look 圖表的瀏覽器分頁,然後重新整理頁面。
    Look 圖表已更新並成功呈現圖表,現在您可以將 LookML 變更推送至正式環境了。

  9. 返回 IDE 的瀏覽器分頁。

  10. 點選「驗證 LookML」。此時應該不會出現任何 LookML 錯誤。

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

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

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

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

點選「Check my progress」,確認目標已達成。 修改現有維度的名稱

恭喜!

在本實驗室,您先使用 SQL Runner 排解了有問題的 SQL 查詢,並使用 LookML Validator 驗證定義物件和關係的語法。接著,您使用「探索」查詢視窗診斷遺漏的物件和錯誤訊息,並在變更 LookML 物件後,使用 Content Validator 測試及更新內容。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

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

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

實驗室上次測試日期:2023 年 2 月 9 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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