使用 Datastream 將資料擷取至 BigQuery 中的分區資料表

您可能需要將 BigQuery 資料表分割為較小的區段,以提高查詢效能並控管費用。由於 Datastream 不支援在 BigQuery 中分割資料表,因此您必須先手動新增分區,才能啟動串流。如要進一步瞭解 BigQuery 中的分區功能,請參閱「分區資料表簡介」。

在 BigQuery 中分區資料表

如要在 BigQuery 中分割資料表,請根據用途使用下列各節所述的其中一個選項。

選項 1:BigQuery 中已存在資料表,且資料表已納入串流

  1. 請將該資料表從串流的來源設定中排除。如要進一步瞭解如何在來源設定中加入或排除物件,請參閱「設定來源資料庫」。
  2. 請稍候幾分鐘,確保 Datastream 已完成處理表格的所有事件。
  3. 在 BigQuery 中建立分區資料表。如果您想保留原始 BigQuery 資料表中的資料,請為資料表指定不同的臨時名稱。
  4. 將原始資料表中的資料複製到新的分區資料表。
  5. 刪除或重新命名原始資料表。
  6. 將新資料表的暫時名稱變更為原始資料表的名稱。
  7. 將來源資料表新增至串流設定。

選項 2:BigQuery 中沒有該資料表

  1. 請使用下列任一方法在 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)
      
  2. 建立分區資料表後,請確認其 max_staleness 值已依據您的需求進行設定。如果您沒有設定值,系統會設定 0 的預設值。將這個值設為 0 可確保取得最新資料,但會產生高額費用。如要瞭解如何為資料表找出最佳值,請參閱「使用 BigQuery 資料表搭配 max_staleness 選項」。

  3. 將來源資料表新增至串流設定

  4. 如有需要,如果您已為串流設定手動補充作業,請啟動資料表的補充作業。