Bigtable 訂閱項目

透過 Bigtable 訂閱項目,您可以將 Pub/Sub 訊息寫入 Bigtable 資料表。本文將概略介紹 Bigtable 訂閱項目,包括訂閱工作流程、傳送語意和錯誤處理。

如要建立 Bigtable 訂閱項目,請參閱「建立 Bigtable 訂閱項目」一文。

總覽

Bigtable 訂閱項目是一種匯出訂閱項目,會在收到訊息時,將訊息寫入現有 Bigtable 資料表。使用匯出訂閱時,您不需要設定個別的訂閱端。

如果您想將訊息寫入 Bigtable,且訊息不需要額外處理,或處理作業可由單一訊息轉換 (SMT) 執行,請考慮使用 Bigtable 訂閱。

如要在將訊息寫入 Bigtable 前執行更複雜的轉換,建議使用具有提取訂閱項目的 Dataflow 管道。詳情請參閱「從 Pub/Sub 讀取資料到 Dataflow」。

如要進一步瞭解如何選擇 Pub/Sub 訂閱類型,請參閱「選擇訂閱類型」。

Bigtable 訂閱工作流程

下圖顯示 Bigtable 訂閱項目與 Bigtable 之間的工作流程。

Bigtable 訂閱項目會寫入 Bigtable 資料表。

工作流程包含下列步驟:

  1. 發布者將訊息傳送至 Pub/Sub 主題。

  2. Pub/Sub 會將訊息轉送至 Bigtable 訂閱項目。

  3. 訂閱項目會向 Bigtable 傳送寫入要求。在寫入要求中,訂閱項目會指定使用單一叢集轉送的應用程式設定檔。

  4. Bigtable 會將訊息傳送至包含資料表的 Bigtable 叢集。

  5. 寫入要求已提交至資料表。

  6. 寫入作業成功完成後,Bigtable API 會傳回成功回應。

如果寫入作業失敗,系統會採取下列做法:

  1. Pub/Sub 訊息遭到負面確認。

  2. Pub/Sub 會重新傳送訊息。

  3. 如果訊息多次傳送失敗,且訂閱項目已設定 dead-letter 主題,訊息就會移至 dead-letter 主題。

傳送語意

Bigtable 訂閱項目支援至少傳送一次。如果需要精確刪除重複訊息,請考慮實作下游程序,處理 Bigtable 中可能出現的重複項目,或使用 Dataflow 的精確處理一次功能。

處理傳送失敗的訊息

如果 Pub/Sub 訊息無法寫入 Bigtable,就無法確認訊息。如要轉送這類無法送達的訊息,請在 Bigtable 訂閱項目中設定 dead-letter 主題。轉送至 dead-letter 主題的 Pub/Sub 訊息包含名為 CloudPubSubDeadLetterSourceDeliveryErrorMessage 的屬性,其中含有寫入失敗的原因。

如果 Pub/Sub 無法將訊息寫入 Bigtable,Pub/Sub 會以類似推送退避行為的方式,延後傳送訊息。

配額與限制

Pub/Sub 對每個區域的 Bigtable 訂閱者總處理量設有配額限制。詳情請參閱「Pub/Sub 配額與限制」。

如要瞭解 Bigtable 限制,請參閱 Bigtable 說明文件中的「配額與限制」。

定價

如要瞭解 Bigtable 訂閱項目的定價,請參閱 Pub/Sub 定價頁面。

後續步驟