資料表本機副本簡介
本文件提供 BigQuery 中資料表複本的總覽。本文件適用於熟悉 BigQuery 和 BigQuery 資料表的使用者。
資料表複本是另一個資料表 (稱為「基本資料表」) 的輕量可寫副本。您只需為資料表複本中與基礎資料表不同的資料儲存空間付費,因此資料表複本一開始不會產生儲存空間費用。除了儲存空間的帳單模式和基本資料表的其他中繼資料,資料表本機副本與標準資料表類似,您可以查詢、複製及刪除資料表等。
資料表複本的常見用途包括:
- 建立正式版資料表的副本,以便用於開發和測試。
- 建立沙箱,讓使用者自行產生分析資料和資料操作,而無須實際複製所有實際工作資料。系統只會針對變更的資料收費。
建立資料表複本後,該複本就會與原始資料表分開。對基本資料表或資料表本機副本所做的任何變更,都不會反映在另一個版本中。
如果您需要資料表的唯讀輕量副本,建議您使用資料表快照。
資料表本機副本中繼資料
資料表複本與標準資料表具有相同的中繼資料,但會加上以下資訊:
- 資料表複本的基礎資料表專案、資料集和名稱。
- 資料表複製作業的時間。如果使用時間旅行建立資料表複本,則此為時間旅行時間戳記。
詳情請參閱 INFORMATION_SCHEMA.TABLES。
資料表複製作業
一般來說,您可以使用表格複本,就像使用標準表格一樣,包括下列作業:
- 查詢
- 存取權控管
- 取得中繼資料
- 分區和分群
- 使用結構定義
- 刪除中
不過,建立資料表副本的方式與建立標準資料表的方式不同。詳情請參閱「建立資料表複本」。
儲存費用
儲存空間費用適用於資料表複本,但 BigQuery 只會針對資料表複本中尚未向其他資料表收費的資料收費:
建立資料表本機副本時,系統一開始不會向您收取資料表本機副本的儲存空間費用。
如果在資料表複本中新增或變更資料,系統會針對新增或更新的資料收取儲存空間費用。
如果資料表本機副本中也存在基本資料表的資料,而這些資料已變更或遭刪除,則您必須為變更或刪除的資料支付資料表本機副本儲存空間費用。如果有多個複本含有已變更或刪除的資料,您只需為最早複本使用的儲存空間付費。
如果資料是在建立資料表副本後才新增至基礎資料表,則您不會為資料表副本中的資料儲存空間付費,但會為基礎資料表中的資料儲存空間付費。
下圖顯示基本資料表和資料表複本的儲存空間費用差異:
詳情請參閱 BigQuery 儲存空間定價。
限制
- 您可以在同一專案的資料集之間,以及不同專案的資料集之間複製資料表。不過,資料表複本的目的地資料集必須與要複製的資料表位於相同的區域,並且隸屬於同一個機構。例如,您無法將位於歐盟資料集的資料表複製到位於美國的資料集。
- 資料表的資料已超過資料集時間旅行視窗的時間長度,因此無法建立資料表資料的複本。
- 您無法建立檢視表或具體化檢視表的複本。
- 您無法建立外部資料表的複本。
- 建立資料表副本時,您無法覆寫現有資料表或資料表副本。如需具體限制,請參閱「資料表命名」一節。
- 如果您複製的資料表在寫入最佳化儲存空間中含有資料 (最近串流資料列的串流緩衝區),資料表複本中就不會包含寫入最佳化儲存空間中的資料。
- 如果您複製的資料表在時間旅行中含有資料,則資料表複本中不會包含時間旅行中的資料。
- 在「探索器」窗格中,您無法區分表格複本和標準表格。不過,您可以查看資料表詳細資料,分辨資料表複本和標準資料表。資料表複本詳細資料包含「Base Table Info」部分,而標準資料表則沒有。
- 您無法使用複製作業將資料附加至現有資料表。舉例來說,您無法在同一個
bq cp
指令中使用旗標設定--append_table=true
和--clone=true
。如要在複製資料表時附加資料,請改用複製作業。 - 建立資料表複本時,其名稱必須遵循與建立資料表時相同的命名規則。
- 建立資料表複本時,必須遵守 BigQuery 針對複製工作設定的限制。
- 由於底層儲存空間會以動態方式管理,因此 BigQuery 建立資料表複本所需的時間,可能會因不同執行作業而有顯著差異。
配額與限制
表格副本的配額和限制與標準表格相同。詳情請參閱資料表配額與限制。也適用資料表複製限制。