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