將資料載入分區資料表
BigQuery 可讓您載入批次資料,或直接將查詢結果寫入分區資料表的特定區隔,而不會影響其他分區。指定個別分區有助於回填歷史記錄、根據當地時區調整擷取時間分區,以及提升寫入效能。
將資料寫入特定分區
您可以使用 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 PST 產生的資料載入該日期的分區。如果未使用這個明確裝飾器,則會載入 $2016050207 (世界標準時間 5 月 2 日 07:00)。
如果是時間單位資料欄和整數範圍分區資料表,修飾符中指定的分區 ID 必須與寫入的資料相符。舉例來說,如果資料表是依 DATE 欄分區,則修飾符必須與該欄中的值相符。否則會發生錯誤。不過,如果您事先知道資料位於單一分區,指定分區裝飾器可以提升寫入效能。
上述範例會將資料附加至分區。如要改為覆寫分區中的資料,則必須為每個指令加入不同的旗標,即 bq load --replace=true ... 和 bq query --append_table=false ...。如要進一步瞭解這些指令中的旗標,請參閱 bq load 和 bq query。
如要進一步瞭解如何載入資料,請參閱將資料載入 BigQuery 的簡介一文。
以串流方式將資料傳入分區資料表
如要瞭解如何使用 BigQuery Storage Write API (gRPC) 將資料串流至分區資料表,請參閱「將資料串流至分區資料表」。
後續步驟
如要進一步瞭解分區資料表的使用,請參閱: