変更履歴を使用すると、Apache Iceberg マネージド テーブル(旧称: BigQuery 内の Apache Iceberg 用 BigLake テーブル)に追加された行の履歴を追跡できます。GoogleSQL の APPENDS テーブル値関数(TVF)を使用すると、指定した期間内にテーブルに追加されたすべての行(CREATE TABLE DDL ステートメント、INSERT DML ステートメント、MERGE DML ステートメント、バッチ読み込みジョブ、ストリーミング取り込みによって追加された行など)を表示できます。
Apache Iceberg マネージド テーブルは、BigQuery の変更履歴のコンセプトと機能を使用して、テーブルへの増分追加を処理します。テーブルに追加された行を把握することで、BigQuery の外部でテーブル レプリカを段階的に維持したり、過去のデータ追加を監査したり、ダウンストリーム パイプラインをトリガーしたりできます。この場合、テーブル全体のスキャンやコストのかかるコピーは必要ありません。
必要な権限
Apache Iceberg マネージド テーブルの変更履歴を表示するには、次の権限が必要です。
- テーブルに対する
bigquery.tables.getData権限。この権限は、次の Identity and Access Management(IAM)事前定義ロールに含まれています。roles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.admin
- テーブルに関連付けられた Google Cloud リソース接続に対する
bigquery.connections.delegate権限。この権限は、BigQuery Connection ユーザー(roles/bigquery.connectionUser)ロールに含まれています。 - また、 Google Cloud リソース接続に関連付けられたサービス アカウントには、基盤となる Cloud Storage バケットに対する
roles/storage.objectUserロールとroles/storage.legacyBucketReaderロールが必要です。
テーブルで行レベルまたは列レベルのセキュリティが使用されている場合の追加の権限要件については、BigQuery の変更履歴ドキュメントの必要な権限をご覧ください。
制限事項
Apache Iceberg マネージド テーブルは変更履歴をサポートしており、標準の BigQuery 変更履歴と同じコンセプトと機能を活用します。Apache Iceberg マネージド テーブルで変更履歴を操作する場合は、次の制限が適用されます。
- 変更履歴は、Apache Iceberg マネージド テーブル(旧称: BigQuery 内の Apache Iceberg 用 BigLake テーブル)でのみサポートされています。
CHANGESテーブル値関数(TVF)は、Apache Iceberg マネージド テーブルではサポートされていません。APPENDSTVF のみがサポートされています。- Apache Iceberg マネージド テーブルの制限事項も適用されます。
APPENDS変更履歴機能の制限も適用されます。
次のステップ
詳細については、次の BigQuery のドキュメントをご覧ください。
- 変更履歴の操作
APPENDSTVF リファレンス- Apache Iceberg マネージド テーブルを作成して使用する
- BigQuery 継続的クエリを使用して Apache Iceberg マネージド テーブルからリアルタイム データを読み取る方法を学習する