表格統計資料

Bigtable 提供資料表統計資料 (資料表的中繼資料),可提供資料表的摘要資訊,例如列數或每個資料欄的平均儲存格數。

本文說明資料表統計資料,以及如何使用 Google Cloud CLI 取得這些資料。閱讀本頁面之前,請先瞭解 Bigtable 儲存空間模型,並熟悉結構定義設計最佳做法垃圾收集

透過資料表統計資料,您可以觀察 Bigtable 資料表。排解效能或儲存空間問題,或是想判斷儲存空間費用的來源時,這些記錄就派得上用場。此外,這些報表也能協助您判斷是否儲存了過多資料。

預期精確度

擷取資料表的統計資料時,您取得的資料是近似值,因為資料表統計資料反映的是執行個體叢集中,最近一次壓縮時的資料表狀態。

初始壓縮作業完成後,您才能取得完整的資料表統計資料。這項作業通常會在資料表建立後一週左右執行。資料表統計資料的準確度取決於最近一次壓縮作業,而這項作業可能在一週前執行。

表格統計資料欄位

要求資料表的資料表統計資料時,會傳回下列欄位。詳情和範例請參閱下一節。

表格統計資料欄位 API 名稱 說明
資料列數 row_count 資料表中的資料列數。詳情請參閱「列數」。
每列的平均欄數 average_columns_per_row 整個表格中,每列的平均欄數。如需詳細資料和範例,請參閱「每列的平均欄數」
每個資料欄的平均儲存格數 average_cells_per_column 所有資料列中所有資料欄儲存的平均儲存格數。詳情請參閱「每欄的平均儲存格數」。
邏輯資料 (以位元組為單位) logical_data_bytes 資料表占用的空間量。詳情請參閱「以位元組為單位的邏輯資料」。

資料表統計資料也包含資料表中每個資料欄系列的下列欄位。

資料欄家庭統計資料欄位 API 名稱 說明
每列的平均欄數 average_columns_per_row 資料欄系列中每個資料列的平均資料欄數。如需詳細資料和範例,請參閱「每列的平均欄數」。
每個資料欄的平均儲存格數 average_cells_per_column 每個資料欄的儲存格數量,以資料欄系列中所有資料列的平均值計算。如需詳細資料和範例,請參閱「每欄的平均儲存格數」。
邏輯資料 (以位元組為單位) logical_data_bytes 資料欄系列占用的空間大小。詳情請參閱「以位元組為單位的邏輯資料」。

資料表統計資料欄位詳細資料

資料列數

列數是資料表中的列數。每一列都由列鍵識別。

每列的平均欄數

如要計算資料表中每列的平均欄數,Bigtable 會計算整個資料表的欄數,然後將該值除以資料表中的列數。

舉例來說,請看下表。第一列有三欄,第二列有兩欄。

資料列索引鍵 資料欄系列 family-A 資料欄系列 family-B
資料列索引鍵 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
資料列索引鍵 2 family-A:qualifier-W family-B:qualifier-Z

這個表格有五欄兩列,因此每列的平均欄數為 2.5

這項表格統計資料可讓你大致瞭解表格是高而窄 (每列的欄數不多),還是矮而寬 (每列的欄數很多)。

每個資料欄的平均儲存格數

如要取得資料表中每欄的平均儲存格數,Bigtable 會將資料表中儲存的儲存格總數,除以資料表中的欄數。

視結構定義設計和垃圾收集政策而定,資料表可能在某個資料欄中有多個儲存格,也可能只有一個。可儲存的儲存格數量受限於「配額和限制」頁面「資料表中的資料大小」一節中列出的資料大小限制。

如果發現這個數字高於預期,請檢查垃圾收集規則,確認您是否保留了超出需求的儲存格。您也可以詢問是否應調整結構定義和寫入模式。

邏輯資料 (以位元組為單位) (表格)

這個值代表讀取整個資料表所需的大約位元組數。這個資料表統計資料可讓您瞭解資料表儲存的位元組數量。以位元組為單位瞭解邏輯資料,有助於瞭解壓縮對資料表的影響。舉例來說,如果 Cloud Monitoring 報告的資料表大小與資料表的邏輯資料大小 (以位元組為單位) 相同或更大,則您可能以不易壓縮的格式儲存資料。

資料欄系列統計資料欄位詳細資料

資料表的資料表統計資料包含資料表中每個資料欄系列的下列欄位。

每列的平均欄數

這個數字的計算方式是將資料欄系列中的資料欄數,除以資料表中的資料列數。

舉例來說,請看下表。資料表有三列,資料欄分別位於 family-Afamily-B 資料欄系列中。

資料列索引鍵 資料欄系列 family-A 資料欄系列 family-B
資料列索引鍵 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
資料列索引鍵 2 family-A:qualifier-W
資料列索引鍵 3 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y family-B:qualifier-Z

資料欄系列 family-A 在資料表中共有五個資料欄。除以三列,表示每欄的平均儲存格數為 family-A1.67 (四捨五入到小數第二位)。

資料欄系列 family-B 在資料表中共有三個資料欄。除以三列後,每列的平均欄數為 1family-A

每個資料欄的平均儲存格數

如要判斷資料欄系列中每個資料欄的平均儲存格數,Bigtable 會計算資料表中所有資料列中資料欄系列的所有儲存格,然後除以資料表中的資料列數。

舉例來說,請看以下資料列,這些資料列位於資料欄系列 family-D 中。

資料列索引鍵 資料欄系列 family-D
資料列索引鍵 1 family-D:qualifier-W (3 個儲存格) family-D:qualifier-X (1 個儲存格)
資料列索引鍵 2 family-D:qualifier-X (10 個儲存格)
資料列索引鍵 3 family-D:qualifier-W (7 個儲存格) family-D:qualifier-Y (6 個儲存格)

資料欄系列中的儲存格計數為 3 + 1 + 10 + 7 + 6 = 27。這個值除以 3 (列數),表示資料欄系列 family-D 的每個資料欄平均有 9 個儲存格。

以位元組為單位的邏輯資料 (資料欄系列)

以位元組為單位的邏輯資料反映資料欄系列占用的空間。 這個值大約是您在傳回資料表統計資料時,需要讀取資料欄系列中所有資料的位元組數。

使用 gcloud CLI 的範例

如要取得名為 sample-table 的資料表統計資料,請使用 bigtable instances table describe 指令:

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID --view stats

更改下列內容:

  • TABLE_ID:資料表的永久 ID
  • INSTANCE_ID:執行個體的永久 ID

輸出結果會與下列內容相似:

  columnFamilies:
    my-family:
     stats:
       averageCellsPerColumn: 12.34
       averageColumnsPerRow: 56.78
       logicalDataBytes: 314159
  name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID
  stats:
    averageCellsPerColumn: 12.34
    averageColumnsPerRow: 56.78
    logicalDataBytes: 314159
    rowCount: 271828

後續步驟