Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a Bigtable table
/ 40
Delete a Bigtable table
/ 40
Create a Bigtable table
/ 40
Delete a Bigtable table
/ 40
Bigtable 是 Google 的全代管 NoSQL 資料庫服務,可隨需求擴充。Bigtable 非常適合在鍵/值儲存空間儲存大量資料,並用於個人化服務、廣告技術、金融科技、數位媒體和物聯網 (IoT) 等用途。Bigtable 具備低延遲的特性,也支援高總處理量讀寫作業,可讓您快速存取大量資料來處理和分析。
在 Bigtable,每個資料列代表單一實體 (例如個別使用者或感應器),並標示專屬的資料列索引鍵。每個資料欄會儲存各資料列的屬性值,而資料欄系列則可用來整理相關資料欄。資料列與資料欄的交集可以有多個儲存格,每個儲存格代表特定時間戳記的資料版本。
在這個實驗室,您將使用 Google Cloud 控制台的 Bigtable 頁面,探索 Bigtable 執行個體,並使用 Bigtable CLI (cbt CLI) 查詢 Bigtable 資料表中的資料。您還會根據 Bigtable 最佳做法,設計資料表結構定義和資料列索引鍵。
在這個實驗室,您將瞭解如何存取 Bigtable 執行個體,以及查詢 Bigtable 結構定義。
cbt CLI。請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「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 總覽指南。
在這個實驗室練習,我們已預先建立 Bigtable 執行個體和資料表,供您探索。在這項工作,您將在 Google Cloud 控制台存取名為「personalized-sales」的 Bigtable 執行個體,並查看相關詳細資料。
在 Google Cloud 控制台的「導覽選單」,依序點選「資料庫」>「Bigtable」。
在 Bigtable 執行個體清單,找出名為 personalized-sales 的執行個體 ID。
請查看「節點」的詳細資料,然後回答下列問題。
點選 personalized-sales 執行個體 ID,前往執行個體詳細資料頁面。
按一下「編輯執行個體」。
查看執行個體的詳細資料,然後回答下列問題。
如要關閉執行個體編輯頁面,請點選「取消」。
在叢集 ID 表格,點選 personalized-sales-cluster1 資料列的「編輯」鉛筆圖示。
請查看叢集的詳細資料,並回答下列問題。
如要關閉叢集詳細資料,請點按「取消」。
在導覽選單的「執行個體」下方,點選「資料表」。
查看「UserSessions」資料表的詳細資料,然後回答下列問題。
您已查看 Bigtable 執行個體的詳細資料,現在可以繼續執行下一個工作,使用 cbt CLI 連線至執行個體。
如要使用 cbt CLI 指令連線至 Bigtable,請先使用 Cloud Shell,以專案 ID 和 Bigtable 執行個體 ID 更新 .cbtrc 設定檔。
若要複習如何存取 Cloud Shell,請參閱這個實驗室指南上方的「設定和需求」部分。
cbt CLI 主要用於偵錯及探索,但這項實用工具也能用於學習 Bigtable 基礎知識。如要在正式環境完成 CRUD (建立、讀取、更新、刪除) 作業,建議使用 Bigtable 的用戶端程式庫。
.cbtrc 檔案:輸出內容確認有名為「personalized-sales」的執行個體。
.cbtrc 檔案:.cbtrc 檔案:輸出應會如下所示:
輸出內容會確認執行個體已有一個名為「UserSessions」的資料表,後續工作會用到。
在這項工作,您將建立測試資料表,探索 Bigtable 的結構定義和資料列索引鍵設計原則。
在 Bigtable 設計結構定義和資料列索引鍵時,先回答幾個關於待儲存資料的重要問題,會很有幫助。
| 問題 | 用途 |
|---|---|
| 單一資料列代表什麼?(例如:個別使用者或感應器) | 找出資料列結構 |
| 用於搜尋這項資料最常見的查詢會是什麼? | 建立資料列索引鍵 |
| 每個資料列會收集哪些值? | 識別資料欄 (稱為資料欄限定詞) |
| 是否有相關資料欄可以分組或整理在一起? | 找出資料欄系列 |
舉例來說,假設資料集擷取了某個電子商務公司網站所有使用者的線上購物工作階段。每列代表一個線上購物工作階段,並附有時間戳記。最常見的資料集查詢會擷取個別工作階段的詳細資料和相關聯的使用者 ID。每個購物工作階段儲存的值,是使用者在該工作階段互動和購買的所有商品,以及使用者的顏色偏好。
原始資料可整理如下,並加入更多資料欄來記錄其他產品 (例如 blue_jacket 或 purple_bag):
| timestamp | user_id | preferred_color | red_skirt | red_hat | orange_shoes | sale |
|---|---|---|---|---|---|---|
| 1638940844260 | 1939 | green | seen | seen | ||
| 1638940844260 | 2466 | blue | seen | seen | ||
| 1638940844260 | 1679 | blue | seen | blue_blouse#blue_jacket | ||
| 1638940844260 | 2737 | blue | seen | blue_dress#blue_jacket | ||
| 1638940844260 | 582 | yellow | yellow_skirt |
Bigtable 最佳做法是將具有類似結構定義的資料儲存在同一個資料表,而不是分開儲存。舉例來說,您可以將所有線上購物階段的資料儲存在一個資料表,方便日後擷取。
使用資料欄限定詞做為資料,這樣就不必在每個資料列重複相同的值。
將相關資料欄整理到同一個資料欄系列。
為資料欄系列選擇簡短但有意義的名稱。
就這個資料集,儲存產品互動的資料欄限定詞可歸類到一個名為 Interactions 的資料欄系列,而儲存購買資料的資料欄限定詞則可單獨歸類到另一個名為 Sales 的資料欄系列。產生的結構定義會依下列方式整理:
| ... | ... | ... | Interactions | --- | --- | Sales |
|---|---|---|---|---|---|---|
| timestamp | user_id | preferred_color | red_skirt | red_hat | orange_shoes | sale |
| 1638940844260 | 1939 | green | seen | seen | ||
| 1638940844260 | 2466 | blue | seen | seen | ||
| 1638940844260 | 1679 | blue | seen | blue_blouse#blue_jacket | ||
| 1638940844260 | 2737 | blue | seen | blue_dress#blue_jacket | ||
| 1638940844260 | 582 | yellow | yellow_skirt |
指令傳回下列輸出內容:
點選「Check my progress」,確認目標已達成。
在 Bigtable,最佳做法是將單一實體 (例如:單一線上購物工作階段) 的所有資訊儲存在單一資料列。相關最佳做法是建立資料列索引鍵,以便查詢及擷取特定範圍的資料列。
如要套用 Bigtable 資料列索引鍵的最佳做法,建議您這麼做:
根據要用來擷取資料的查詢,設計資料列索引鍵。
請避免使用以時間戳記或連續數字 ID 開頭的資料列索引鍵,或導致相關資料無法分組的資料列索引鍵。
設計資料列索引鍵時,請從較常見的值 (例如國家/地區) 開始,然後以更精細的值 (例如城市) 結尾。
使用人類可讀的字串值 (例如使用者 ID 後接時間戳記),在每個資料列索引鍵中儲存多個以分隔符號區隔的值。
在上一個部分,timestamp、user_id 和 preferred_color 未歸入任何資料欄系列。回想一下原始資料的相關問題,這個資料集的大部分查詢都會擷取個別工作階段的詳細資料,以及相關聯的使用者 ID。
為支援這些查詢,這個資料表的理想資料列索引鍵是使用者 ID 和工作階段時間戳記的組合。此外,資料列索引鍵可加入前置字元,標示每位使用者的顏色偏好 (例如使用者 ID 1939 的 green1939#1638940844260),以便擷取偏好特定顏色的所有使用者。
| ... | Interactions | --- | --- | Sales |
|---|---|---|---|---|
| row_key | red_skirt | red_hat | orange_shoes | sale |
| green1939#1638940844260 | seen | seen | ||
| blue2466#1638940844260 | seen | seen | ||
| blue1679#1638940844260 | seen | blue_blouse#blue_jacket | ||
| blue2737#1638940844260 | seen | blue_dress#blue_jacket | ||
| yellow582#1638940844260 | yellow_skirt |
請注意,雖然 blue2737#1638940844260 的資料是後來新增的,但在結果中的排序卻比 green1939#1638940844260 高。由於 Bigtable 會依資料列索引鍵的字母順序排列及儲存資料列,因此記錄會依這個順序傳回。這個順序類似字母順序,但開頭為數字的資料列不會由小到大排序 (例如 1、13、2、25、6 和 70)。
點選「Check my progress」,確認目標已達成。
在這項工作中,您將使用 cbt CLI 從預先建立且已完整填入資料的測試資料表版本 (名為「UserSessions」的現有資料表) 擷取資料,並瞭解資料表如何套用 Bigtable 結構定義和資料列索引鍵設計的最佳做法。
在這個步驟,您將瞭解 UserSessions 資料表如何遵循 Bigtable 最佳做法,將所有使用者與產品的互動和產品購買記錄儲存在一個資料表,其中每個線上購物工作階段都有一列。
輸出內容的結構如下:
輸出值應如下所示:
每列包含一位使用者與多項產品的互動 (例如 blue_hat 和 green_jacket),包括使用者是否「看過」、「查看詳細資料」或「購買」產品。此外,購買交易會記錄在 Sales 資料欄系列的 sale 資料欄限定詞。
UserSessions 遵循最佳做法,將所有相關的使用者互動和產品都放在同一個資料表,而不是為每種互動、產品或銷售分別建立一個資料表。此外,單一線上購物工作階段的所有產品互動和購買行為,都會儲存為資料表中的一列。
在 Bigtable,最有效率的查詢會使用下列其中一種方法擷取資料:
在後續步驟,您將使用 cbt CLI 中的各個選項,查詢「UserSessions」資料表並擷取所需記錄。
若要瞭解如何使用 Bigtable 用戶端程式庫,透過資料列索引鍵讀取單一資料列的資料,請參閱 Bigtable 說明文件。
輸出值應如下所示:
輸出值應如下所示:
read 指令會以 start 值提供的資料列索引鍵做為範圍開頭,這個範圍會在 end 值提供的資料列索引鍵「之前」結束。因此,輸出內容中不會傳回資料列索引鍵 yellow991#1638940844645。
輸出值應如下所示:
在接下來的步驟,您將擷取依資料欄限定詞和資料欄系列篩選的資料,瞭解如何在 UserSessions 資料表遵循資料欄最佳做法。
輸出值應如下所示:
輸出值應如下所示:
輸出值應如下所示:
由於「Sales」資料欄系列只有一個資料欄限定詞 (sale),因此 columns 的值「"Sales:sale"」和「"Sales:.*"」會傳回相同的資料欄。
在這個實驗室,您使用 Google Cloud 控制台探索了 Bigtable 執行個體,並透過 Cloud Bigtable CLI (cbt CLI) 查詢 Bigtable 資料表中的資料。您也根據 Bigtable 最佳做法設計了資料表結構定義和資料列索引鍵。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 5 月 30 日
實驗室上次測試日期:2023 年 2 月 16 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one
Complete this quick step to start your lab.