1
0

Databricks Unity Catalog のテーブルに対する UNDROP TABLE の利用方法

Posted at

概要

Databricks Unity Catalog のテーブルを誤って削除してしまった際に、復元する方法である UNDROP TABLE の基本的な利用方法を共有します。

以前はあまり必要性を感じていなかった機能ですが、最近のテスト中にその価値を実感しました。特定のテストケースでエラーが発生し、その時点では関連性がないと思われたテーブルを誤って削除してしまいました。しかし、その後エラーの原因を調査する過程で、削除したテーブルが実は必要だったことが明らかになりました。そこで、UNDROP TABLE を使用してテーブルを復元し、問題を解決することができました。この経験を通じて、UNDROP TABLE の便利さを実感し、その知識を共有するためにこの記事を書くことに決めました。

UNDROP TABLE する方法としては次の2つ方法があることがドキュメントに記載されています。テーブル ID で復元する際には、SHOW TABLES DROPPED にてテーブル ID を取得する必要があるようです。テーブル作成からはじめて、2 つの方法で復元する方法を後述します。

  1. テーブル名を指定する方法
  2. テーブル ID を指定する方法

image.png

引用元:UNDROP TABLE - Azure Databricks - Databricks SQL | Microsoft Learn

基本的な利用方法

事前準備

このセクションでは、検証用のカタログとスキーマを作成します。

%sql
-- 検証用カタログとスキーマを作成
CREATE CATALOG IF NOT EXISTS undrop_wf;
CREATE SCHEMA IF NOT EXISTS undrop_wf.schema;

image.png

次に、検証用のテーブルを作成します。

%sql
-- 検証用テーブルを作成
CREATE TABLE IF NOT EXISTS undrop_wf.schema.test_table (
  id INT,
  value STRING
);

image.png

作成したテーブルが存在することを確認します。

%sql
-- テーブルがあることを確認
SHOW TABLES FROM undrop_wf.schema;

image.png

テーブルを削除します。

%sql
-- テーブルを削除
DROP TABLE undrop_wf.schema.test_table;

image.png

テーブルが削除されたことを確認します。

%sql
-- テーブルがなくなったことを確認
SHOW TABLES FROM undrop_wf.schema;

image.png

削除されたテーブルの一覧を確認します。

%sql
-- 削除されたテーブルの一覧を確認
SHOW TABLES DROPPED IN undrop_wf.schema;

image.png

テーブル名により UNDROP TABLE する方法

テーブル名を指定してテーブルを復元します。

%sql
UNDROP TABLE undrop_wf.schema.test_table

image.png

テーブルが復元されたことを確認します。

%sql
-- テーブルが復元されたことを確認
SHOW TABLES FROM undrop_wf.schema;

image.png

テーブル 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;

image.png

削除済みテーブルの一覧を表示します。

%sql
-- 削除済みテーブルの一覧に表示
SHOW TABLES DROPPED IN undrop_wf.schema;

image.png

テーブル ID をセットし、テーブルを復元します。

# テーブル ID をセット
table_id = "042e3829-240d-4481-9796-2d7a27119eeb"

# テーブルの復元
spark.sql(f"UNDROP TABLE WITH ID '{table_id}'")

image.png

テーブルが復元されたことを確認します。

%sql
-- テーブルが復元されたことを確認
SHOW TABLES FROM undrop_wf.schema;

image.png

事後処理

検証用のカタログを削除します。

%sql
-- 検証用カタログを削除
DROP CATALOG undrop_wf CASCADE;

image.png

まとめ

この記事では、Databricks Unity Catalog のテーブルを誤って削除した際の復元方法である UNDROP TABLE の基本的な利用方法を紹介しました。テーブル名を指定する方法とテーブル ID を指定する方法の2つの方法を詳しく説明し、具体的なコード例を通じてその使用方法を示しました。これらの方法は、誤って削除したテーブルが実は必要だった場合に非常に有用です。この記事が、Databricks Unity Catalog のテーブルの管理に役立つことを願っています。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0