在寫入時匯總值

本文將概略說明在寫入時匯總 Bigtable 資料的方法。閱讀本文之前,請務必先熟悉 Bigtable 總覽

許多應用程式會追蹤作業指標,以支援各種用途,包括應用程式內報表、即時建議和速率限制。這類營運指標包括:

  • 每週活躍使用者人數
  • 廣告曝光次數
  • 社群內容的觀看次數或分享次數
  • 媒體串流數量

您可以在面向使用者的應用程式中使用這些指標,或是做為機器學習模型的輸入內容,而這些用途通常需要低延遲和高處理量。因為在查詢時計算這類指標,在規模上並不實際,因此在資料擷取期間進行預先匯總,是即時系統的首選方法。

Bigtable 提供多種在寫入時彙整資料的方法,包括無衝突複製資料類型、ReadModifyWriteRow 要求和連續具體化檢視區塊。

在寫入時彙整 Bigtable 資料,可避免使用任何擷取、轉換和載入 (ETL) 或串流處理軟體,在寫入 Bigtable 前後彙整資料。舉例來說,如果應用程式先前將訊息發布至 Pub/Sub,然後使用 Dataflow 讀取訊息並彙整資料,再將資料寫入 Bigtable,現在則可直接將資料傳送至 Bigtable 中的彙整儲存格。

無衝突複製資料類型

Bigtable 可讓您建立只包含「匯總」類型儲存格的資料欄系列。匯總儲存格是無衝突的複製資料類型結構,經過最佳化處理,可進行增量更新。

如果您要從 Apache Cassandra、Redis 或 Valkey 等資料庫遷移至 Bigtable,這些系統中的類似結構稱為「計數器」

下表列出支援的作業,以及系統如何處理新寫入的值。


作業

說明

總和

儲存格值會替換為新加入的值和目前儲存格值的總和。

下限

系統會將儲存格值替換為新加入的值和目前儲存格值中較小的值。

上限

系統會將儲存格值替換為新加入的值和目前儲存格值中較高的值。

HyperLogLog

寫入的值會加入自上次重設以來新增的所有值所組成的機率集合。儲存格值代表該組的狀態。如要進一步瞭解 HLL 演算法,請參閱「HyperLogLog」。

您可以使用 Zetasketch 程式庫讀取 HLL 值。

您可以傳送的變動類型包括 AddToCellMergeToCell,用來建立及更新匯總儲存格。

如要開始在 Bigtable 中計數,請參閱在 Bigtable 中建立及更新計數器快速入門導覽課程。

先讀取再寫入

您也可以在寫入資料時,使用 ReadModifyWriteRow 要求匯總資料,以交易方式遞增或附加儲存格的值,藉此操控儲存格的值。如要進一步瞭解使用這個方法的情況,請參閱「附加」一文。

持續性 materialized view

持續性 materialized view 是預先運算的 SQL 查詢結果,可匯總來源資料表中的資料。檢視區塊會持續處理資料,並在資料擷取至來源資料表時批次更新。包括更新和刪除。使用持續性具體化檢視畫面可提升效能和效率。詳情請參閱「持續具體化檢視區塊」。

後續步驟