テーブル スナップショットの概要

このドキュメントでは、BigQuery テーブル スナップショットの概要を紹介します。これは、テーブル スナップショットの作成、復元、コピー、更新、情報の取得、クエリなどの手順や例を含む、BigQuery テーブル スナップショットの操作方法を説明する一連のドキュメントの中の最初のドキュメントです。このドキュメント セットは、BigQuery と BigQuery テーブルをよく使用されている方を対象としています。

テーブル スナップショット

BigQuery テーブル スナップショットでは、特定の時点でのテーブルの内容(ベーステーブルと呼ばれます)が保持されます。現在のテーブルのスナップショットを保存することや、過去 7 日間の任意の時点におけるテーブルのスナップショットを作成することが可能です。テーブル スナップショットには、有効期限を設定できます。テーブル スナップショットを作成した後、構成した時間が経過すると、そのスナップショットは、BigQuery により削除されます。テーブル スナップショットでは、標準のテーブルと同じようにクエリを実行できます。テーブル スナップショットは読み取り専用ですが、テーブル スナップショットから標準テーブルを作成(復元)し、復元したテーブルを変更できます。

テーブル スナップショットを使用するメリットは、次のとおりです。

  • レコードを 7 日間以上保持する。BigQuery のタイムトラベルでは、過去 7 日以内のテーブルのデータにのみアクセスできます。テーブル スナップショットを使用すると、指定した時点におけるテーブルのデータを必要な期間保持できます。

  • ストレージ費用を最小限に抑える。BigQuery では、スナップショットとベーステーブルで異なるバイトのみが保存されるため、通常、テーブル スナップショットでは、使用するストレージがテーブルの完全なコピーよりも少なくなります。

制限事項

  • Cloud Console では、テーブル スナップショットが完全にはサポートされていません。最良の結果を得るには、bq コマンドライン ツール、API、または bq query コマンドで実行する SQL ステートメントを使用します。

  • テーブル スナップショットは、ベーステーブルと同じプロジェクトに存在する必要があります。

  • テーブル スナップショットは読み取り専用で、スナップショットから標準テーブルを作成してデータを更新しない限り、テーブル スナップショットのデータは更新できません。更新できるのは、テーブル スナップショットのメタデータ(説明、有効期限、アクセス ポリシーなど)のみです。

  • タイムトラベルの 7 日間制限により、7 日以内のテーブルデータのスナップショットのみ作成できます。

  • BigQuery ビューや、マテリアライズド ビューのスナップショットは作成できません。

  • テーブル スナップショットを作成する際に、既存のテーブルやテーブル スナップショットを上書きすることはできません。

  • ストリーミング バッファにデータがあるテーブルのスナップショットは作成できません。

割り当てと上限

テーブル スナップショットに適用される割り当てと上限については、テーブル スナップショットの割り当てと上限をご覧ください。

テーブル スナップショットのアクセス制御

テーブル スナップショットのアクセス制御は、BigQuery テーブルのアクセス制御と似ています。また、次の項目が含まれます。

  • スナップショット テーブルのメタデータとデータに対するアクセス制御リスト(ACL)
  • 列アクセス ポリシー

テーブル スナップショットを作成すると、BigQuery では、アクセス制御ポリシーをベーステーブルからテーブル スナップショットにコピーします。その後、テーブル スナップショットのアクセス制御はベーステーブルから独立し、ベーステーブルに対するアクセス制御の変更は反映されません。

さらに詳しい内容については、テーブル アクセス制御の概要をご覧ください。

テーブル スナップショットのクエリ

テーブル スナップショットのデータに対するクエリは、他のタイプの BigQuery テーブルに対するクエリと同じ方法で実行します。詳細については、BigQuery データのクエリをご覧ください。

料金

テーブル スナップショットには、ストレージ費用が適用されますが、BigQuery では、ベーステーブルに存在しなくなったデータや、ベーステーブルで変更されたテーブル スナップショットのデータに対してのみ課金されます。

例:

テーブル スナップショットの課金の例

  • テーブル スナップショットを作成すると、最初はテーブル スナップショットのストレージ費用が発生しません。

  • テーブル スナップショットの作成後に新しいデータがベーステーブルに追加された場合、テーブル スナップショットでのそのデータの保存に対しては課金されません。

  • ベーステーブルのデータを変更または削除する場合、それがテーブル スナップショットにも存在すると、変更または削除したデータのテーブル スナップショット ストレージに対して課金されます。

テーブルのセキュリティ

BigQuery でテーブルへのアクセスを制御するには、テーブルのアクセス制御の概要をご覧ください。

次のステップ