BigQueryの便利な機能 過去のテーブルの状態を参照する
日次の処理でテーブルが更新されるようなケースでは、障害が発生した際に過去のある時点のテーブルの状態(どのようなデータが入っていたかなど)を知りたいケースがあります。
BigQueryでは過去のある時点のテーブルの状態を参照することが可能です。
FOR SYSTEM_TIME AS OF を使います。
実際にやってみた
まず、テーブルを作成します。こちらのブログと同様にCSVからアップロードしました。
この時点では3つのレコードが入っていることが確認できます。
続いて、前回のブログと同様にレコードを追加します。
bananaが追加されていることが確認できます。
そうしたら、即座に以下のクエリを実行します。
SELECT * FROM `gps-test-241502.hoge.food` FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 MINUTE);
これは1分前のテーブルの状態を参照します。
そのため、追加したbananaは結果にはでません。banana追加後に1分以上経ってしまうとNGなので、できるだけ早く実行しました。
以下のように、bananaは結果にでませんでした。banana追加前の状態が参照されています。
最近のコメント