在寫入時匯總值
本文將概略說明在寫入時彙整 Bigtable 資料的方法。閱讀本文前,請務必先熟悉 Bigtable 總覽。
許多應用程式會追蹤作業指標,以支援應用程式內報表、即時建議和頻率限制等用途。這類營運指標的範例如下:
- 每週活躍使用者人數
- 廣告曝光次數
- 社群內容的觀看次數或分享次數
- 媒體串流數量
您可以在面向使用者的應用程式中使用這些指標,或做為機器學習模型的輸入內容,而這些用途通常需要低延遲和高處理量。因為在查詢時計算這類指標,在規模上並不實際,因此在資料擷取期間進行預先匯總,是即時系統的首選方法。
Bigtable 提供多種在寫入時彙整資料的方式,包括無衝突複製資料類型、ReadModifyWriteRow 要求和持續的 materialized view。
在寫入時匯總 Bigtable 資料,就不需要使用擷取、轉換及載入 (ETL) 或串流處理軟體,在寫入 Bigtable 前後匯總資料。如果應用程式使用 Dataflow 匯總串流資料,然後再寫入 Bigtable,您可以直接將資料傳送至 Bigtable 中的匯總儲存格。
無衝突複製資料類型
Bigtable 可讓您建立只包含「匯總」類型儲存格的資料欄系列。匯總儲存格是無衝突的複製資料類型結構,可針對累加更新進行最佳化。
如果您要從 Apache Cassandra、Redis 或 Valkey 等資料庫遷移至 Bigtable,這些系統中的類似結構稱為「計數器」。
下表列出支援的作業,以及系統如何處理新寫入的值。
作業 |
說明 |
|---|---|
總和 |
儲存格值會替換為新加入的值與目前儲存格值的總和。 |
最低 |
系統會將儲存格值替換為新加入值和目前儲存格值中的較小值。 |
上限 |
系統會將儲存格值替換為新加入的值和目前儲存格值中較高的值。 |
HyperLogLog |
寫入的值會加入自上次重設以來新增的所有值所組成的機率集合。儲存格值代表該組的狀態。如要進一步瞭解 HLL 演算法,請參閱「HyperLogLog」。 您可以使用 Zetasketch 程式庫讀取 HLL 值。 |
您可以傳送的變動類型包括 AddToCell 和 MergeToCell,用來建立及更新匯總儲存格。
如要開始在 Bigtable 中計數,請參閱在 Bigtable 中建立及更新計數器快速入門導覽課程。
先讀取再寫入
您也可以在寫入資料時,使用 ReadModifyWriteRow 要求匯總資料,以遞增或附加方式,透過交易操作儲存格的值。如要進一步瞭解何時該使用這種方法,請參閱「附加」一文。
持續性 materialized view
持續增補的 materialized view 是預先運算的 SQL 查詢結果,可匯總來源資料表中的資料。檢視區塊會持續處理資料,因為資料會擷取到來源資料表,並批次更新。包括更新和刪除。使用持續性具體化檢視畫面可提升效能和效率。詳情請參閱「持續具體化檢視區塊」。