您可能需要將 BigQuery 資料表分割為較小的區段,以提高查詢效能並控管費用。由於 Datastream 不支援在 BigQuery 中分割資料表,因此您必須先手動新增分區,才能啟動串流。如要進一步瞭解 BigQuery 中的分區功能,請參閱「分區資料表簡介」。
在 BigQuery 中分區資料表
如要在 BigQuery 中分割資料表,請根據用途使用下列各節所述的其中一個選項。
選項 1:BigQuery 中已存在資料表,且資料表已納入串流
- 請將該資料表從串流的來源設定中排除。如要進一步瞭解如何在來源設定中加入或排除物件,請參閱「設定來源資料庫」。
- 請稍候幾分鐘,確保 Datastream 已完成處理表格的所有事件。
- 在 BigQuery 中建立分區資料表。如果您想保留原始 BigQuery 資料表中的資料,請為資料表指定不同的臨時名稱。
- 將原始資料表中的資料複製到新的分區資料表。
- 刪除或重新命名原始資料表。
- 將新資料表的暫時名稱變更為原始資料表的名稱。
- 將來源資料表新增至串流設定。
選項 2:BigQuery 中沒有該資料表
請使用下列任一方法在 BigQuery 中建立資料表:
- 使用 BigQuery 遷移工具包。
手動建立與 Datastream 相容的 BigQuery 資料表。舉例來說,如果您想建立資料表並根據
TIMESTAMP
欄位分割資料,可以使用類似下方的查詢:CREATE TABLE dataset.partitioned_table ( 'id' INT64, 'name' STRING 'update_date' DATETIME, 'datastream_metadata' STRUCT<'uuid' STRING, 'source_timestamp' INT64>, PRIMARY KEY ('id') NOT ENFORCED ) PARTITION BY TIMESTAMP(update_date)
建立分區資料表後,請確認其
max_staleness
值已依據您的需求進行設定。如果您沒有設定值,系統會設定0
的預設值。將這個值設為0
可確保取得最新資料,但會產生高額費用。如要瞭解如何為資料表找出最佳值,請參閱「使用 BigQuery 資料表搭配max_staleness
選項」。如有需要,如果您已為串流設定手動補充作業,請啟動資料表的補充作業。