在寫入時匯總值

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

許多應用程式會追蹤作業指標,以支援應用程式內報表、即時建議和頻率限制等用途。這類營運指標的範例如下:

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

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

Bigtable 提供多種在寫入時彙整資料的方式,包括無衝突複製資料類型、ReadModifyWriteRow 要求和持續的 materialized view。

在寫入時匯總 Bigtable 資料,就不需要使用擷取、轉換及載入 (ETL) 或串流處理軟體,在寫入 Bigtable 前後匯總資料。如果應用程式使用 Dataflow 匯總串流資料,然後再寫入 Bigtable,您可以直接將資料傳送至 Bigtable 中的匯總儲存格。

無衝突複製資料類型

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

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

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


作業

說明

總和

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

最低

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

上限

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

HyperLogLog

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

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

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

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

先讀取再寫入

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

持續性 materialized view

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

後續步驟