
准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Examine GKE application SQL queries using SQL Insights.
/ 25
Enable SQLCommenter on a GKE application.
/ 25
Redeploy the gMemegen application.
/ 25
Take actions to tune and optimise the database to enhance performance.
/ 25
在本實驗室,您將透過 SQL Insights 分析 Cloud SQL 資料庫的效能。您需要使用 SQLcommenter 程式庫修改現有的 Google Kubernetes Engine (GKE) 應用程式,為應用程式查詢加上註解,以識別應用程式中的查詢來源。
請務必按照本實驗室提供的詳細指示,建立/設定各項工作指定的服務和資源,才能順利完成所有工作。
在本實驗室,您將瞭解如何執行下列工作:
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud
是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud
的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
請啟用本實驗室所需的 API。在後續工作,您將建構容器並推送至 Artifact Registry,因此必須先啟用 Artifact Registry API。
config
檔案,放在主資料夾的隱藏資料夾 .kube
內。打開瀏覽器,前往負載平衡器的 ingress IP 位址。
在 Cloud Shell 執行下列指令,便能建立可點選的連結,連往負載平衡器的外部 IP 位址:
在這項工作,您將檢查 gMemegen 應用程式生成的查詢。首先,您需要使用該應用程式製作網路迷因來產生流量,並在應用程式的「Recent
」和「Random
」頁面查看這些網路迷因。
為順利完成這項工作,請在 Cloud SQL 資料庫啟用 SQL Insights。
前往 Cloud 控制台,依序點選「資料庫」>「SQL」,然後選取 postgres-gmemegen
執行個體。
在「主要執行個體」選單,選取「查詢洞察」。
點選「啟用」按鈕。
依序前往「主要執行個體」>「查詢洞察」頁面,選取「熱門查詢與標記」部分的「標記」分頁標籤。
點選「儲存應用程式標記」。
在這個步驟,您將使用 gMemegen 應用程式製作至少 4 個新的網路迷因,並查看成果。這項操作目的是讓應用程式發揮效用,生成一些範例資料並運用所有可用路由。
在 gMemegen 應用程式分頁,前往「Home」頁面並選取一個圖像。
在「new meme」頁面頂端和底部的文字方塊輸入文字,開始製作想要的網路迷因。
點選「Submit」按鈕,您製作的新網路迷因會隨即顯示。
點選瀏覽器的「返回」按鈕,回到先前的頁面。
點選「Recent」選單項目,即可查看最近製作的網路迷因。
點選「Sorted」選單項目,即可依頂端文字的字母排序來查看網路迷因。
點選「Random」選單項目,即可隨機查看網路迷因。接著,關閉瀏覽器中的「Random
」分頁。
點選「Home」選單項目,返回首頁製作新的網路迷因。
請反覆執行上方第 1 至第 8 點,製作至少 4 個新的網路迷因。
在「主要執行個體」選單,點選「查詢洞察」。
開啟「資料庫」欄位的下拉式選單,然後選取「gmemegen_db
」。如果清單未列出 gmemegen_db
,請重新整理頁面。gmemegen_db
可能要過一段時間才會顯示在清單中。這種情況下,建議您在 gMemegen
應用程式執行更多動作,產生更多資料庫流量。
」部分,您會看見 gMemegen 應用程式生成的查詢列在「查詢」分頁中。SQL Insights 無法區分查詢的來源,因為這些查詢沒有標記。您可使用資料庫開發人員工具 SQLcommenter,為應用程式查詢加上註解,即可在這個檢視畫面填入標記。如果開發和測試人員想追蹤應用程式查詢的來源,協助偵錯及執行最佳化作業,這項工具就相當實用。
請記下目前時間,以便比較 SQL Insights 提供的結果,瞭解在應用程式程式碼加入 SQLcommenter 程式庫前後的差異。
點選「Check my progress」,確認目標已達成。
在這項工作,您將修改 gMemegen 應用程式,加入 SQLcommenter 程式庫程式碼,為應用程式查詢加上註解,讓這些查詢在 SQL Insights 發揮更大效益。
在這個步驟,為啟用 SQLcommenter,您將修改 gMemegen 應用程式的 main.py
Python 應用程式程式碼。目前程式碼已變更完畢,只需要取消註解,而這項操作可透過簡單的 sed 指令來完成。您也必須重新建構應用程式,並將新的映像檔儲存至 Artifact Registry。
如要啟用 SQLcommenter,請在 gmemegen/app/main.py
Python 檔案找到下列程式碼區塊,並從中移除註解,即可使用 SQLcommenter 設定應用程式,為查詢加上標記。
在這個步驟,您將建構修改過的應用程式程式碼,並將標為第 2 版的映像檔推送至 Artifact Registry。
系統要求您確認時,請輸入 Y
。
建立構件存放區:
建構新的映像檔並推送至 Artifact Registry:
建構及推送程序需要幾分鐘才能完成。完成後,輸出內容應該會指出作業成功,如下所示。
輸出內容:
點選「Check my progress」,確認目標已達成。
在這項工作,您將重新部署修改過的 gMemegen 應用程式,接著就能使用 SQL Insights,比較兩種應用程式版本的查詢。
在 Cloud Shell 執行下列指令,將部署作業 YAML 改成您的專案 ID、Cloud SQL 連線名稱和區域:
在 Cloud Shell 執行下列指令,重新部署應用程式:
在 Cloud Shell 重新部署負載平衡器,並選取 version 2.0
應用程式:
在 Cloud Shell 執行下列指令,確認部署作業是否成功:
輸出內容:
新的 gMemegen 應用程式部署作業會開始執行。
點選「Check my progress」,確認目標已達成。
在這項工作,您將返回 SQL Insights,查看新版應用程式的資料庫活動,包括 SQLcommenter。首先,您必須使用新版應用程式製作網路迷因,產生更多資料庫活動。
在這個步驟,您將使用在工作 3 部署的新版應用程式,製作新的網路迷因。請注意,選單列的應用程式名稱旁邊會顯示 (SQLcommenter)
,代表這是新的應用程式。
在這個步驟,您將查看新部署應用程式的查詢,並留意是否有 SQLcommenter 插入的標記。
在「Cloud 控制台」分頁,依序前往「主要執行個體」>「查詢洞察」頁面,然後選取「熱門查詢與標記」部分的「標記」分頁標籤。
點選「負載 (根據總時間)
」欄名稱,系統會重新整理已標記查詢的清單,顯示 SQLcommenter 標記的所有近期查詢。
您會發現「控制器
」、「路由
」、「資料庫驅動程式
」和「框架
」標記都已自動填入。
如果「標記」分頁未顯示這項查詢,請重新整理網頁,然後再次依序點選「標記」分頁標籤和「負載 (根據總時間)
」欄名稱。
(接續上圖,顯示完整寬度)
在這個步驟,您將分析應用程式查詢的效能,找出執行速度緩慢的查詢。
熱門查詢與標記
」部分。點選「標記」分頁標籤。
在「路由
」欄選取 /sorted
標記。
這個標記的負載應該最高 (如綠色長條所示),但本實驗室的資料量較少,結果不一定是如此。實驗室的「查詢延遲」圖表上,可能只會顯示幾個資料點並提供額外資料,方便您瞭解延遲時間值較高 (P95 和 P99) 的查詢。
點選瀏覽器的「返回」按鈕,回到「熱門查詢與標記」檢視畫面。您也可使用「查詢洞察」頁面頂端的導覽標記,並選取 postgres-gmemegen
執行個體。
在「路由
」欄選取 /recent
標記;這個標記的負載和延遲時間應該會略低。再次提醒,本實驗室的圖表只會顯示幾個資料點,結果可能與 /sorted
路由差不多。
這些查詢傳回的列數大致相同,但為什麼效能有差異?事實上,meme.id
欄是 meme
資料表的主鍵,因此已建立索引;meme.top_text
欄則未建立索引,需要的執行時間較長,兩者免不了出現差異。
gmemegen_db
資料庫很小,當中只有您在本實驗室透過 UI 生成的幾列資料,因此這兩個路由的效能差異可能不顯眼,甚至難以察覺。如果是在正式環境,針對已建立索引和未建立索引欄位的查詢,效能上就會有明顯的差異。在這項工作,您將修改 gmemegen_db
資料庫,解決在前一項工作發現的查詢速度緩慢問題。
在這個步驟,您將為資料庫的資料欄新增索引,藉此提升效能。
在 Cloud Console 控制台,依序前往「主要執行個體」>「總覽」頁面,找到「連線至這個執行個體」部分,並點選「開啟 Cloud Shell」。Cloud Shell 主控台會自動填入指令,您可直接執行。
出現提示時,請輸入密碼:supersecret!
。
在 psql 的 postgres=>
提示詞,執行下列指令:
系統會再次提示您輸入密碼:supersecret!
。
在 psql 的 gmemegen_db=>
提示詞,執行下列指令:
在這個步驟,您會檢查原本執行速度緩慢的查詢在新增索引之後,效能是否有提升。
在 Cloud Console 控制台,依序前往「主要執行個體」>「查詢洞察」頁面,找到「熱門查詢與標記」部分,並再次選取「標記」分頁中的 /sorted
標記。
向下捲動至「查詢延遲」圖表,您會發現延遲時間值應該已降低。
點選「Check my progress」,確認目標已達成。
您已完成本實驗室的所有工作!
這個自學實驗室屬於「在 Cloud SQL 管理 PostgreSQL 資料庫」任務的一部分。「任務」是指一系列相關的實驗室課程,這些課程構成完整的學習路徑。完成這項任務後即可獲得徽章,表彰您的成就。徽章可公開展示,也能連結至您的線上履歷或社群媒體帳戶。歡迎報名參加這個任務,立即取得完成學分。您可以瀏覽 Google Cloud Skills Boost 目錄,查詢所有能進行的任務。
使用手冊上次更新日期:2024 年 7 月 4 日
實驗室上次測試日期:2024 年 7 月 4 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验