使用變更記錄
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 陳述式- 工作已設定為使用
WRITE_TRUNCATE
的writeDisposition
- 個別資料表分區刪除作業
價格和費用
呼叫變更記錄函式會產生 BigQuery 運算費用。APPENDS
和 CHANGES
函式都需要處理在指定時間範圍內寫入資料表的所有資料。這項處理程序適用於所有寫入作業,包括附加和異動作業。將資料表的 enable_change_history
選項設為 FALSE
,並不會減少 APPENDS
處理的資料。
您將資料表的 enable_change_history
選項設為 TRUE
以便使用 CHANGES
函式時,BigQuery 會儲存資料表變更中繼資料。儲存這些中繼資料會產生額外的 BigQuery 儲存空間費用和 BigQuery 運算費用。帳單金額取決於表格變更的次數和類型,通常金額不高。資料表的變更作業越多,尤其是大量刪除作業,就越有可能產生明顯的費用。