將資料載入分區資料表

本文說明如何將資料載入分區資料表。

將資料寫入特定分區

您可以使用 bq load 指令搭配分區修飾符,將資料載入特定分區。以下範例會將資料附加至現有資料表的 20160501 (2016 年 5 月 1 日) 分區,假設該資料表已依日期分區:

bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv

您也可以將查詢結果寫入特定分區:

bq query \
  --use_legacy_sql=false  \
  --destination_table='my_table$20160501' \
  --append_table=true \
  'SELECT * FROM my_dataset.another_table'

透過攝取時間分割,您可以使用這項技巧將較舊的資料載入與資料原始建立時間相對應的分區。

您也可以使用這項技巧調整時區。根據預設,擷取時間分區是以世界標準時間為準。如果您希望分區時間與特定時區相符,可以使用分區修飾符來調整世界標準時間攝入時間。例如,如果您位於太平洋標準時間 (PST) 時區,可以使用對應的明確分區修飾符 $2016050123,將太平洋標準時間 2016 年 5 月 1 日 23:30 產生的資料載入該日期的分區。如果您未使用這個明確的修飾符,系統會改為將其載入至 $2016050207 (5 月 2 日 07:00 世界標準時間)。

對於時間單位欄和整數範圍分區資料表,修飾符中指定的分區 ID 必須與要寫入的資料相符。舉例來說,如果資料表是在 DATE 資料欄上進行分區,則裝飾器必須與該資料欄中的值相符。否則會發生錯誤。不過,如果您事先知道資料位於單一分區,指定分區修飾符可改善寫入效能。

上述範例會將資料附加到分區。如要改為覆寫分割區中的資料,您必須為每個指令加入不同的旗標,也就是 bq load --replace=true ...bq query --append_table=false ...。如要進一步瞭解這些指令中的標記,請參閱 bq loadbq query

如要進一步瞭解如何載入資料,請參閱將資料載入 BigQuery 的簡介一文。

以串流方式將資料傳入分區資料表

如要瞭解如何使用 BigQuery Storage Write API,將資料以串流方式傳入分區資料表,請參閱「以時間單位欄位進行分區」一文。

後續步驟

如要進一步瞭解分區資料表的使用,請參閱: