Snowflake Knowledge - INSIGHT LAB

誤ってupdateしてしまったレコードをtime travelで復元する

作成者: bird|2021年12月27日

time travelとは

time travelとは、「定義された期間内の任意の時点で履歴データにアクセスできる機能」です。(詳しくはこちら

以下のような状況に出会ったこと、あると思います。

  • データベースを削除してしまった😱

  • 他のテーブルをtruncateしてしまった😱

  • update文にwhere句忘れてしまった😱

time travelはこれを解決します。

復元してみた

今回は「update文にwhere句忘れてしまった😱」際の対処法を確認したいと思います。

以下のテーブルを使用します。

 

都道府県の番号と名前が格納されています。

それではPREFECTUREカラムの値をupdateします。

47都道府県名がすべて「新宿」になってしまいました。(...なぜ新宿)

ではテーブルをupdate文発行前の状態に戻しましょう。

「履歴」ページで先ほどのクエリを探します。

ありました。

上図にあるクエリIDを使用し、update文発行前のデータをselect&insertします。

結果を確認してみましょう。

 

しっかり復元されています!🤗

おわりに

いかがだったでしょうか。

履歴データにアクセスできるのは非常にありがたいですね。

そしてこの機能にあまりお世話にならないように、慎重に作業していきたい所存です。

最後まで読んでいただき、ありがとうございました。