BigQuery - 刪除和恢復表



在 BigQuery 中刪除表

刪除表提供了相同的兩個選項:UI 和**SQL 語法**。要在 UI 中刪除表,只需選擇要刪除的表並選擇“刪除表”。由於這是一個永久性操作,您將在刪除之前被提示輸入表名。

**注意** - 您也可以在 SQL 環境中 DROP 表。

Deleting a Table in BigQuery

要**僅刪除表的內容**並**保留資料**,您可以使用 DELETE 命令,該命令需要 WHERE 子句。

要**在不帶引數的情況下刪除任何內容**,可以使用以下查詢 -

DELETE FROM project.dataset.table
WHERE 1=1

**注意** - 請謹慎使用此查詢。

在 BigQuery 中恢復表

儘管有刪除的兩個步驟,但仍然很容易意外地 DROP 或刪除表。因此,BigQuery 的建立者意識到可能需要為使用者提供一種方法來恢復過早刪除的表。

BigQuery 錶快照

在 SQL 環境中建立和使用表時,這一點並不明顯,但在後臺,BigQuery 會自動儲存您的工作——在一定程度上。

BigQuery 使用“快照”定期儲存表,作為提供立即備份的一種方式,以備不時之需。需要注意的是,如果使用者從快照還原表,他們實際上並沒有還原其原始表——他們只是還原到錶快照或副本。

此工具並非沒有約束。BigQuery 錶快照僅保留 7 天。因此,只能在初始刪除後的 7 天內恢復已刪除的表。

兩種恢復表的方法

BigQuery 提供兩種恢復表的方法。順便說一句,它們都不使用 BigQuery SQL。它們需要透過**gcloud 命令列**或透過**訪問 API**以程式設計方式訪問 BigQuery。任一語句都將依賴於選擇要還原到的快照的正確時間戳。

1. Gcloud 命令

在這裡,命令“bq cp”是“bq copy”。“No-clobber”是一個引數,它將指示命令如果目標表不存在則失敗。

bq cp \
– restore \ 
– no-clobber \
–snapshot_project_id.snapshot_dataset_id.snapshot_table_id \ 
–target_project_id.target_dataset_id.target_table_id

2. Python 函式

理想情況下,開發人員將實施預防措施以避免恢復的需要。但是,如果最壞的情況發生,BigQuery 提供了此故障安全機制。

廣告

© . All rights reserved.