削除されたテーブルを復元する
このドキュメントでは、BigQuery で削除されたテーブルを復元する(または削除を取り消す)方法について説明します。削除されたテーブルは、データセットに指定されたタイムトラベル期間内であれば復元できます。明示的な削除だけでなく、テーブルの有効期限による暗黙的な削除も復元できます。タイムトラベル期間を構成することもできます。
削除されたデータセットまたはスナップショット全体を復元する方法については、次のリソースをご覧ください。
タイムトラベル期間は、日数を 2~7 日に設定できます。タイムトラベル期間が経過すると、BigQuery はフェイルセーフ期間を開始します。この期間中、削除��れたデータはさらに 7 日間自動的に保持されます。フェイルセーフ期間が経過した後、サポート チケットをオープンする方法などでテーブルを復元することはできません。
始める前に
削除されたテーブルを復元するために必要な Identity and Access Management(IAM)権限があることを確認します。
必要なロール
削除されたテーブルを復元するために必要な権限を取得するには、プロジェクトに対する BigQuery ユーザー (roles/bigquery.user
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
テーブルを復元する
過去のデータからテーブルを復元しても、コピー元テーブルのタグはコピー先テーブルにコピーされません。
削除されたテーブルは、タイムトラベル期間内であれば、@<time>
時間デコレータを使用してテーブルを新しいテーブルにコピーすることで復元できます。テーブルをコピーするには、bq コマンドライン ツールかクライアント ライブラリを使用します。
コンソール
Google Cloud コンソールを使用してテーブルの削除を取り消すことはできません。
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
テーブルを復元するには、まずテーブルが存在していたときの UNIX タイムスタンプ(ミリ秒単位)を特定します。Linux の
date
コマンドを使用して、通常のタイムスタンプ値から Unix タイムスタンプを生成できます。date -d '2023-08-04 16:00:34.456789Z' +%s000
次に、
@<time>
タイムトラベル デコレータを指定してbq copy
コマンドを使用し、テーブルのコピー オペレーションを実行します。たとえば、
1418864998000
の時点のmydataset.mytable
テーブルを新しいテーブルmydataset.newtable
にコピーするには、次のコマンドを入力します。bq cp mydataset.mytable@1418864998000 mydataset.newtable
(省略可)
--location
フラグを指定して、その値をロケーションに設定します。相対オフセットを指定することもできます。次の例は、1 時間前のテーブルのバージョンをコピーします。
bq cp mydataset.mytable@-3600000 mydataset.newtable
詳細については、特定の時点のテーブルを復元するをご覧ください。
Go
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Go の設定手順を完了してください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Node.js の設定手順を完了してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
タイムトラベル期間によって許されている期間後にテーブルを復元することが想定される場合は、テーブルのスナップショットを作成します。 さらに詳しい内容については、テーブル スナップショットの概要をご覧ください。
次のステップ
- テーブルを作成し��使用する方法を学習する。
- テーブルを管理する方法を学習する。
- テーブル スキーマを変更する方法を学習する。
- テーブルデータの操作について学習する。