实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 AlloyDB 資料欄引擎加快分析查詢

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

GSP1087

Google Cloud 自學實驗室標誌

總覽

AlloyDB for PostgreSQL 是與 PostgreSQL 相容的全代管資料庫服務,能為您處理最嚴苛的企業資料庫工作負載。AlloyDB 結合 Google 的精華與極受歡迎的開放原始碼資料庫引擎 PostgreSQL,不僅效能卓越,也具備絕佳的擴充性和可用性。

有了資料欄引擎,AlloyDB 處理 SQL 掃描、彙整和匯總作業的速度就能大幅提升。資料欄引擎提供下列功能:1) 資料欄儲存庫,內含所選資料欄的資料表內容,並依據資料欄導向格式重新編排;2) 資料欄查詢規劃工具和執行引擎,可讓您在查詢使用資料欄儲存庫。

在這個實驗室,您會探索 AlloyDB 資料欄引擎的功能。

學習內容

在這個實驗室,您會瞭解如何執行下列工作:

  • 建立基準資料集,以便測試資料欄引擎
  • 執行基準測試
  • 驗證資料欄引擎的資料庫旗標
  • 設定或驗證資料欄引擎的資料庫擴充功能
  • 測試資料欄引擎

設定和需求

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

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

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

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示

  2. 系統顯示視窗時,請按照下列步驟操作:

    • 繼續操作 Cloud Shell 視窗。
    • 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。

連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID。輸出內容中有一行文字,宣告本工作階段的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」

輸出內容:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南

工作 1:建立基準資料集,以便測試資料欄引擎

在這個實驗室環境,實驗室啟動時會佈建 AlloyDB 叢集和執行個體。

  1. 前往 Google Cloud 控制台,依序點選導覽選單圖示 (導覽選單圖示) >「查看所有產品」,然後在「資料庫」部分選取「AlloyDB for PostgreSQL」

AlloyDB 頁面中,您會看見叢集 lab-cluster 和執行個體 lab-instance。執行個體應該會在幾分鐘內完整建立並啟動。

「資源名稱」欄中會顯示執行個體 lab-instance,請等待該執行個體旁出現綠色勾號 (代表狀態為「已就緒」),再前往下一個步驟。

  1. 在執行個體 lab-instance 的資料列,將「私人 IP 位址」下方的私人 IP 位址 (例如 10.100.0.2) 複製到文字檔,以便在後續步驟貼上這個值。不得包含冒號和通訊埠編號 (:5432)。

為評估資料欄引擎的能力,您需要相當大的資料集來衡量效能。後續步驟中,您會使用 PostgreSQL 工具 pgbench,生成合成資料集來評估資料欄引擎。

  1. 導覽選單 (導覽選單圖示) 的「Compute Engine」下方,點選「VM 執行個體」

  2. 在執行個體 alloydb-client 的「連線」欄,點選「SSH」來開啟終端機視窗。

  3. 將下列指令的 ALLOYDB_ADDRESS 替換為 AlloyDB 執行個體的私人 IP 位址,以設定環境變數。

export ALLOYDB=ALLOYDB_ADDRESS
  1. 執行下列指令,將 AlloyDB 執行個體的私人 IP 位址儲存至 AlloyDB 用戶端 VM,確保操作實驗室期間都能使用。
echo $ALLOYDB > alloydbip.txt
  1. 使用 pgbench 的第一步是建立並填入範例資料表。請執行下列指令,建立四個資料表。系統會提示您輸入 postgres 使用者的密碼,也就是 Change3Me

最大的資料表 pgbench_accounts 會載入 5,000 萬個資料列,應該會在幾分鐘內處理完畢。

pgbench -h $ALLOYDB -U postgres -i -s 500 -F 90 -n postgres dropping old tables... NOTICE: table "pgbench_accounts" does not exist, skipping NOTICE: table "pgbench_branches" does not exist, skipping NOTICE: table "pgbench_history" does not exist, skipping NOTICE: table "pgbench_tellers" does not exist, skipping creating tables... generating data (client-side)... 50000000 of 50000000 tuples (100%) done (elapsed 91.26 s, remaining 0.00 s) creating primary keys... done in 167.61 s (drop tables 0.00 s, create tables 0.01 s, client-side generate 93.16 s, primary keys 74.43 s).
  1. 連線至用戶端 psql,然後執行下列查詢,確認資料表 pgbench_accounts 的資料列數量。系統會提示您輸入 postgres 使用者的密碼,也就是 Change3Me
psql -h $ALLOYDB -U postgres select count (*) from pgbench_accounts; count ---------- 50000000 (1 row)

點選「Check my progress」,確認目標已達成。 建立基準資料集

工作 2:執行基準測試

為進行評估,您會執行非常簡單的查詢 (依序掃描),然後在測試資料表新增至資料欄引擎之前與之後,使用說明查詢計畫。

  1. 返回殼層 alloydb-client,用戶端 psql 仍應處於運作中的狀態。如果沒有,請按照工作 1 的操作說明重新連線。執行下列查詢,為所有查詢作業啟用計時功能。
\timing on
  1. 接著,請執行下列查詢來評估執行時間,這項查詢會依序掃描整個資料表 pgbench_accounts

注意事項:為方便示範,這項範例查詢最多只會傳回 20 個資料列。

SELECT aid, bid, abalance FROM pgbench_accounts WHERE bid < 189 OR abalance > 100 LIMIT 20; aid | bid | abalance -----+-----+---------- 1 | 1 | 0 2 | 1 | 0 3 | 1 | 0 4 | 1 | 0 5 | 1 | 0 6 | 1 | 0 7 | 1 | 0 8 | 1 | 0 9 | 1 | 0 10 | 1 | 0 11 | 1 | 0 12 | 1 | 0 13 | 1 | 0 14 | 1 | 0 15 | 1 | 0 16 | 1 | 0 17 | 1 | 0 18 | 1 | 0 19 | 1 | 0 20 | 1 | 0 (20 rows)
  1. 執行下列查詢,針對不受限制的查詢產生說明計畫。值應與範例輸出內容中的值相似,不過資料是隨機生成,因此會有所不同。
注意事項:您可能需要按空格鍵,才能逐步查看查詢說明計畫。 EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE) SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100; QUERY PLAN --------------------------------------------------------------------------------------------------------------- --------------------------------------------------- Finalize Aggregate (cost=1242226.53..1242226.54 rows=1 width=8) (actual time=11010.409..11014.083 rows=1 loop s=1) Output: count(*) Buffers: shared hit=20921 read=888170 I/O Timings: read=19536.769 -> Gather (cost=1242226.32..1242226.53 rows=2 width=8) (actual time=11010.398..11014.075 rows=3 loops=1) Output: (PARTIAL count(*)) Workers Planned: 2 Workers Launched: 2 Buffers: shared hit=20921 read=888170 I/O Timings: read=19536.769 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !! Section removed for pasting !! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Filter: ((pgbench_accounts.bid < 189) OR (pgbench_accounts.abalance > 100)) Rows Removed by Filter: 10400000 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !! Section removed for pasting !! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffers: shared hit=6 Planning Time: 0.117 ms Execution Time: 11014.169 ms (38 rows)
  1. 請特別留意結果中的「Planning Time」和「Execution Time」值。範例輸出內容中,「Planning Time」為 0.117 毫秒,「Execution Time」為 11014.169 毫秒或 11.014 秒。值應與範例輸出內容中的值相似,不過資料是隨機生成,因此會有所不同。

  2. 將執行作業的「Planning Time」和「Execution Time」值複製到文字檔,以便稍後與資料欄引擎啟用後的結果相比較。您也可以將整個查詢計畫結果複製到文字檔。

  3. 按下 Q 鍵,關閉查詢計畫。

工作 3:驗證資料欄引擎的資料庫旗標

在這項工作,您會檢查執行個體中的資料欄引擎資料庫旗標。

  1. 前往 Google Cloud 控制台,依序點選導覽選單圖示 (導覽選單圖示) >「查看所有產品」,然後在「資料庫」部分選取「AlloyDB for PostgreSQL」

  2. 在執行個體 lab-instance 的資料列,依序點選「動作」(直向三點圖示) 和「編輯」

  3. 展開「進階設定選項」專區。

  4. 在「旗標」下方,點選「新增資料庫旗標」

  5. 點選「選擇旗標」來瀏覽可用旗標清單,瞭解支援的選項。

請注意,旗標 google_columnar_engine.enabled 已啟用 (狀態為「已啟用」)。您不會在這個實驗室新增更多旗標。

  1. 點選「取消」,離開「編輯」執行個體頁面。

工作 4:設定或驗證資料欄引擎的資料庫擴充功能

接續前一項工作,您現在要設定資料庫擴充功能,為 AlloyDB 叢集完整啟用資料欄引擎功能。

與設定旗標不同,您必須透過用戶端 psql 連線至執行個體,才能啟用資料庫擴充功能。

  1. 返回殼層 alloydb-client,用戶端 psql 仍應處於運作中的狀態。如果沒有,請按照工作 1 的操作說明重新連線。

  2. 執行下列查詢,確認已連線至資料庫 postgres

\c postgres
  1. 執行下列系統查詢來查看詳細資料,瞭解資料庫中已啟用的擴充功能。
注意事項:擴充功能清單可能不同。 \dx List of installed extensions Name | Version | Schema | Description ------------------------+---------+------------+--------------------------------------- google_columnar_engine | 1.0 | public | Google extension for columnar engine google_db_advisor | 1.0 | public | Google extension for Database Advisor hypopg | 1.3.2 | public | Hypothetical indexes for PostgreSQL plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (4 rows)
  1. 如果清單中有 google_columnar_engine,請跳到下一項工作 (工作 5)。如果清單中沒有 google_columnar_engine,請執行下列指令。
CREATE EXTENSION IF NOT EXISTS google_columnar_engine;
  1. 再次執行擴充功能查詢,確認擴充功能 google_columnar_engine 已啟用。
\dx

工作 5:測試資料欄引擎

主資料表 pgbench_accounts 較小,可以直接新增至資料欄引擎來加以評估。實際部署作業中,您會運用資料欄引擎的建議架構,自動找出所有資料表中最常使用的資料欄。將這類資料欄交由引擎代管,即可獲得最大效益。

  1. 返回殼層 alloydb-client,執行下列查詢,將 pgbench_accounts 新增至資料欄引擎。查詢應該會在幾分鐘內完成。
SELECT google_columnar_engine_add('pgbench_accounts');
  1. 接著,請執行剛剛使用的說明計畫查詢,查看資料欄引擎的效果。值應與範例輸出內容中的值相似,不過資料是隨機生成,因此會有所不同。
EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE) SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100; QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Finalize Aggregate (cost=142400.72..142400.73 rows=1 width=8) (actual time=75.948..78.680 rows=1 loops=1) Output: count(*) -> Gather (cost=142400.51..142400.72 rows=2 width=8) (actual time=71.555..78.667 rows=3 loops=1) Output: (PARTIAL count(*)) Workers Planned: 2 Workers Launched: 2 -> Partial Aggregate (cost=141400.51..141400.52 rows=1 width=8) (actual time=45.768..45.771 rows=1 loops=3) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Section removed for pasting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Rows Removed by Columnar Filter: 10400000 Rows Aggregated by Columnar Scan: 4505600 Columnar cache search mode: native ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Section removed for pasting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffers: shared hit=22 read=3 dirtied=1 I/O Timings: read=0.560 Planning Time: 2.022 ms Execution Time: 78.804 ms (29 rows)
  1. 請特別留意結果中的「Planning Time」和「Execution Time」值。採用資料欄引擎的範例中,「Planning Time」為 2.022 毫秒,「Execution Time」為 78.804 毫秒。值應與範例輸出內容中的值相似,不過資料是隨機生成,因此會有所不同。

  2. 從範例來看,採用資料欄引擎前後的「Execution Time」差異為 10935.365 毫秒10.9 秒。這代表執行速度加快 141 倍。另外請注意,採用資料欄引擎的範例中,以資料欄掃描 (而非核心資料庫引擎) 彙整的資料列超過 450 萬個。

點選「Check my progress」,確認目標已達成。 測試資料欄引擎

注意事項:完成所有工作之後,如果分數未完全更新,請展開「查核點」方塊 (頁面右側的黃色側欄),然後點選個別工作的「Check my progress」來更新分數。

恭喜!

您已瞭解 AlloyDB 資料欄引擎的強大功能。

Google Cloud 教育訓練與認證

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

使用手冊上次更新日期:2025 年 1 月 16 日

實驗室上次測試日期:2025 年 12 月 15 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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