変更履歴の操作

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 事前定義ロールに含まれています。

テーブルに列レベルのセキュリティがある場合、アクセスできる列の変更履歴のみを表示できます。

変更履歴関数

テーブルの変更履歴を把握するには、次の関数を使用します。

料金と費用

変更履歴関数を呼び出すと、BigQuery コンピューティング費用が発生します。

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