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