設計結構定義

Bigtable 資料表的理想結構定義取決於多項因素,包括用途、資料存取模式,以及您打算儲存的資料。本頁面提供 Bigtable 結構定義設計程序的總覽。

閱讀本頁面之前,請先瞭解結構定義設計概念和最佳做法。如果適用,請一併閱讀「時間序列資料的結構定義設計」。

事前準備

建立或找出可用於測試結構定義的 Bigtable 執行個體

收集資訊

  1. 找出您打算儲存在 Bigtable 中的資料。 可詢問的問題包括:
    • 資料採用哪種格式?可能的格式包括原始位元組、字串、protobuf 和 JSON。
    • 資料中的實體是什麼?舉例來說,您是否要儲存網頁瀏覽、股價、廣告刊登位置、裝置評估結果或其他類型的實體?實體是由哪些要素構成?
    • 資料是否以時間為準?
  2. 找出並排序用於取得所需資料的查詢。考量您要儲存的實體,並思考使用資料時的排序和分組方式。您的結構定義設計可能無法滿足所有查詢,但最好能滿足最重要或最常使用的查詢。查詢範例包括:
    • IoT 物件一個月內的溫度讀數。
    • IP 位址的每日廣告瀏覽次數。
    • 行動裝置的最新位置資訊。
    • 每位使用者每日的所有應用程式事件。

設計

決定初始結構定義設計。也就是規劃資料列鍵的模式、資料表將擁有的資料欄系列,以及這些資料欄系列中所需資料欄的資料欄限定符。請遵循一般結構定義設計指南。如果資料是以時間為準,請一併遵循時間序列資料指南

如果您打算使用 SQL 查詢資料表,而不是 Bigtable Data API ReadRows 方法,請參閱下列文件:

如要使用 SQL 查詢資料表檢視區塊和資料表本身,請參閱「資料表和檢視區塊」。

測試

  1. 使用您為結構定義設計的資料欄系列和資料欄限定符建立資料表
  2. 使用您在草案中識別的資料列鍵,將至少 30 GB 的測試資料載入資料表每個節點的儲存空間使用率應維持在限制以下。
  3. 執行高負載測試幾分鐘。這個步驟可讓 Bigtable 根據觀察到的存取模式,在節點之間平衡資料。
  4. 模擬您通常會傳送至資料表的讀取和寫入作業,時間為一小時
  5. 使用 Key Visualizer 和 Cloud Monitoring 檢查模擬結果

    • Bigtable 的 Key Visualizer 工具會提供掃描結果,顯示叢集中每個資料表的用量模式。Key Visualizer 可協助您檢查結構定義設計和使用模式是否導致不良結果,例如特定資料列上的資源使用率不均。

    • 監控功能可協助您檢查指標 (例如叢集中最繁忙節點的 CPU 使用率),判斷結構定義設計是否導致問題。

修正

  1. 根據您透過 Key Visualizer 瞭解到的資訊,視需要修訂結構定義設計。例如:
    • 如果發現熱點,請使用不同的資料列鍵。
    • 如果發現延遲,請確認資料列是否超過每列 100 MB 的限制。
    • 如果您發現必須使用篩選器才能取得所需資料,請考慮以允許更簡單 (且更快) 讀取的方式將資料正規化:依資料列鍵讀取單一資料列或資料列範圍。
  2. 修改結構化資料後,請再次測試並檢查結果
  3. 持續修改結構定義設計並進行測試,直到 Key Visualizer 的檢查結果顯示結構定義設計已達到最佳狀態為止。

後續步驟