使用變更記錄
BigQuery 變更記錄可讓您追蹤 BigQuery 資料表的變更記錄。您可以使用 GoogleSQL 函式,查看指定時間範圍內所做的特定類型變更,以便處理資料表所做的增量變更。瞭解資料表的變更內容,有助於您在 BigQuery 以外逐步維護資料表副本,同時避免耗費大量成本進行複製。
所需權限
如要查看資料表的變更記錄,您必須具備該資料表的 bigquery.tables.getData
權限。以下是包含這項權限的預先定義 Identity and Access Management (IAM) 角色:
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
如果資料表有或曾有資料列層級存取權政策,則只有資料表管理員可以存取資料表的歷來資料。您必須具備資料表的 bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
權限,而預先定義的 roles/bigquery.admin
IAM 角色具備這項權限。
如果表格設有資料欄層級的安全防護機制,您只能查看自己有權存取資料欄的變更記錄。
變更記錄功能
您可以使用下列函式瞭解資料表的變更記錄:
APPENDS
: 傳回附加至指定時間範圍內資料表的所有資料列。下列作業會將資料列新增至
APPENDS
變更記錄:CHANGES
: 傳回指定時間範圍內資料表的所有變更資料列。如要在資料表上使用CHANGES
函式,您必須將資料表的enable_change_history
選項設為TRUE
。下列作業會將資料列新增至
CHANGES
變更記錄:CREATE TABLE
DDL 陳述式INSERT
DML 陳述式- 透過
MERGE
DML 陳述式附加或變更的資料 UPDATE
DML 陳述式DELETE
DML 陳述式- 將資料載入 BigQuery
- 串流擷取
TRUNCATE TABLE
DML 陳述式- 設定了
writeDisposition
為WRITE_TRUNCATE
的工作 - 個別刪除資料表分區
價格和費用
呼叫變更記錄函式會產生 BigQuery 計算費用。APPENDS
和 CHANGES
函式都需要處理指定時間範圍內寫入資料表的所有資料。這項處理程序適用於所有寫入作業,包括附加和異動作業。將資料表的 enable_change_history
選項設為 FALSE
,不會減少 APPENDS
處理的資料量。
在資料表上將 enable_change_history
選項設為 TRUE
,即可使用 CHANGES
函式,BigQuery 會儲存資料表變更中繼資料。儲存這些中繼資料會產生額外的 BigQuery 儲存費用和 BigQuery 運算費用。系統會根據表格的變更數量和類型計費,通常費用不高。如果資料表有許多變更作業 (尤其是大量刪除作業),最有可能產生明顯的費用。