使用 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 可確保資料最新,但會產生高額費用。如要瞭解如何找出資料表的最佳值,請參閱「使用 max_staleness 選項搭配 BigQuery 資料表」。

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

  4. (選用) 如果您已為串流設定手動補充作業,請啟動資料表的補充作業。