Databricksで過去のテーブル内容にデータを戻す方法

Databricksを利用してデータパイプラインの結合テストにて、不具合を修正して動作確認した際、他の処理でも参照するテーブル内容を書き換えてしまったことがありました。新たにテーブルを作成しなおさなくて済んだので非常に便利です。

対象テーブルの履歴を確認

戻したいversion列の値を確認します。

DESCRIBE HISTORY <catalog_name>.<schema_name>.<table_name>

※DatabricksのUI上でCatalog > 対象テーブルを選択 > Historyタブからも同様に確認することができます。

指定したバージョンにテーブル内容を戻す

RESTORE TABLE <catalog_name>.<schema_name>.<table_name> TO VERSION AS OF <version列の値>

※VERSIONを指定する他にTIMESTAMPの値を指定する方法もあるようです。

まだ実務で利用する場面はありませんが、指定したバージョンのテーブル内容を参照することもできるようなので忘備録として記述しておきます。間違えて「TO」を記述しないように注意が必要です。

SELECT * FROM <catalog_name>.<schema_name>.<table_name> VERSION AS OF <version列の値>

参照

[1]https://docs.databricks.com/en/sql/language-manual/delta-restore.html

コメント

タイトルとURLをコピーしました