概要
Databricks Unity Catalog のテーブルを誤って削除してしまった際に、復元する方法である UNDROP TABLE の基本的な利用方法を共有します。
以前はあまり必要性を感じていなかった機能ですが、最近のテスト中にその価値を実感しました。特定のテストケースでエラーが発生し、その時点では関連性がないと思われたテーブルを誤って削除してしまいました。しかし、その後エラーの原因を調査する過程で、削除したテーブルが実は必要だったことが明らかになりました。そこで、UNDROP TABLE を使用してテーブルを復元し、問題を解決することができました。この経験を通じて、UNDROP TABLE の便利さを実感し、その知識を共有するためにこの記事を書くことに決めました。
UNDROP TABLE する方法としては次の2つ方法があることがドキュメントに記載されています。テーブル ID で復元する際には、SHOW TABLES DROPPED にてテーブル ID を取得する必要があるようです。テーブル作成からはじめて、2 つの方法で復元する方法を後述します。
- テーブル名を指定する方法
- テーブル ID を指定する方法
引用元:UNDROP TABLE - Azure Databricks - Databricks SQL | Microsoft Learn
基本的な利用方法
事前準備
このセクションでは、検証用のカタログとスキーマを作成します。
%sql
-- 検証用カタログとスキーマを作成
CREATE CATALOG IF NOT EXISTS undrop_wf;
CREATE SCHEMA IF NOT EXISTS undrop_wf.schema;
次に、検証用のテーブルを作成します。
%sql
-- 検証用テーブルを作成
CREATE TABLE IF NOT EXISTS undrop_wf.schema.test_table (
id INT,
value STRING
);
作成したテーブルが存在することを確認します。
%sql
-- テーブルがあることを確認
SHOW TABLES FROM undrop_wf.schema;
テーブルを削除します。
%sql
-- テーブルを削除
DROP TABLE undrop_wf.schema.test_table;
テーブルが削除されたことを確認します。
%sql
-- テーブルがなくなったことを確認
SHOW TABLES FROM undrop_wf.schema;
削除されたテーブルの一覧を確認します。
%sql
-- 削除されたテーブルの一覧を確認
SHOW TABLES DROPPED IN undrop_wf.schema;
テーブル名により UNDROP TABLE する方法
テーブル名を指定してテーブルを復元します。
%sql
UNDROP TABLE undrop_wf.schema.test_table
テーブルが復元されたことを確認します。
%sql
-- テーブルが復元されたことを確認
SHOW TABLES FROM undrop_wf.schema;
テーブル ID により UNDROP TABLE する方法
既存のテーブルを削除し、同名のテーブルを作成と削除を実施します。
%sql
-- 既存のテーブルを削除
DROP TABLE undrop_wf.schema.test_table;
-- 同名のテーブルを作成
CREATE TABLE IF NOT EXISTS undrop_wf.schema.test_table (
id INT,
value STRING
);
-- 同名のテーブルを削除
DROP TABLE undrop_wf.schema.test_table;
削除済みテーブルの一覧を表示します。
%sql
-- 削除済みテーブルの一覧に表示
SHOW TABLES DROPPED IN undrop_wf.schema;
テーブル ID をセットし、テーブルを復元します。
# テーブル ID をセット
table_id = "042e3829-240d-4481-9796-2d7a27119eeb"
# テーブルの復元
spark.sql(f"UNDROP TABLE WITH ID '{table_id}'")
テーブルが復元されたことを確認します。
%sql
-- テーブルが復元されたことを確認
SHOW TABLES FROM undrop_wf.schema;
事後処理
検証用のカタログを削除します。
%sql
-- 検証用カタログを削除
DROP CATALOG undrop_wf CASCADE;
まとめ
この記事では、Databricks Unity Catalog のテーブルを誤って削除した際の復元方法である UNDROP TABLE の基本的な利用方法を紹介しました。テーブル名を指定する方法とテーブル ID を指定する方法の2つの方法を詳しく説明し、具体的なコード例を通じてその使用方法を示しました。これらの方法は、誤って削除したテーブルが実は必要だった場合に非常に有用です。この記事が、Databricks Unity Catalog のテーブルの管理に役立つことを願っています。