実際にタイムトラベルしてみるタイムトラベル可能期間おわりに関連する記事s.satoです。最近仕事でSnowflakeを使い始めました!ある日、変わらないはずの集計データが数日前からおかしくなっており、原因を調査しないといけないことがありました。HEROES」で習った「タイムトラベル」機能で解決できたのでご紹介します!Snowflakeのタイムトラベルとはタイムトラベルとは、定義された期間内の任意の時点のデータにアクセスすることができます。現在は変更削除されているデータでも、定義期間内であれば好きな時点のデータを見ることができます。Travelの理解と使用タイムトラベルの使い方(3通り)タイムトラベルの指定の仕方は3通りあります。・タイムスタンプ指定タイムスタンプを指定すると、指定したタイムスタンプ時点のデータを表示します。-0700'::timestamp_tz);・現在時刻との差分指定offsetに現在からさかのぼりたい時間を指定します。単位は秒なので、例えば1時間前のテーブルの状態を見たいのであれば-60*60を指定すればよいです。指定したステートメントによる変更前のデータにアクセスします。ステートメントにはクエリIDを指定します。あるSQLでデータを更新してしまったが、SQL実行前の状態のデータを見たい、という場合は該当SQLのクエリIDを調べて指定します。'8e5d0ca9-005e-44e6-b858-a8f5b37c5726');実際にタイムトラベルしてみる試しに、「現在時刻との差分指定」でタイムトラベルしてみた例を見て見ましょう。次のようなTEST_TBLテーブルがあります。ここでTRUNCATEして全件削除してしまいます。データが全件消えてしまいました。OFFSETで5分前を指定してTEST_TBLをSELECTしてみます。上記条件の元、定義した期間内のデータにアクセスが可能です。ドキュメント:オブジェクトのデータ保持期間の指定を参照してください。おわりに業務で行った調査では、タイムトラベルで数日前の時点のデータにアクセスし、現在のデータと比較しておかしくなった原因となるデータを特定したのでした。このように、タイムトラベル機能は調査やデータ復旧など、いろいろと使い道がありそうです。データベースで過去のデータを取り戻すのはかなり大変(場合によっては不可能)なイメージだったのですが、snowflakeでは簡単にできるので驚きました!自分は超初心者の状態でsnowflakeのイベントに参加してしまったのですが、1つでも仕事に役に立つことを持って帰ることができて良かったです。↓すぐに使えるオープンデータが揃っています。ついてのお知らせです。