変更履歴の操作
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 コンピューティング費用が発生します。
CHANGES
関数を使用するためにテーブルの enable_change_history
オプションを TRUE
に設定すると、BigQuery はテーブル変更メタデータを保存します。この保存されたメタデータにより、BigQuery ストレージ費用が発生します。請求額は、テーブルに加えた変更の数と種類によって異なりますが、通常は少額です。変更オペレーションが多いテーブル(特に大規模な削除)では、費用が大きくなる可能性が高くなります。