1
0

More than 1 year has passed since last update.

Databricks にて Unity Catalog と Hive メタストアにおけるマネージドテーブル作成時のディレクトリ命名規則の差異確認

Last updated at Posted at 2023-08-22

概要

Databricks にて Unity Catalog のマネージドテーブル作成時と Hive メタストアのマネージドテーブル作成時にて、ディレクトリの命名規則の差異を確認するコードを共有します。次表がディレクトリ名のサンプルであり、Unity Catalog では 36 字のランダムな文字列(おそらく UUID)に基づいたディレクトリとなっているのに対して、Hive メタストアではテーブル名に基づいだディレクトリとなっています。

# メタストア ディレクトリ名のサンプル
1 Hive メタストア dbfs:/user/hive/warehouse/dir_diff.db/table_01
2 Unity Catalog abfss://metastore@dbunitycatalogus.dfs.core.windows.net/84690733-be0b-4079-902b-8ae4d60b3515/tables/5c1c3b4a-45bd-46c0-8377-d8bd35920555

Unity Catalog のディレクトリ名がランダムになる旨が次のように記載されており、ディレクトリ名の衝突を避けることが目的のようです。

The name of this directory is randomly generated to avoid any potential collision with other directories already present.

引用元:Unity カタログによって管理されるデータのパスはどのように機能しますか?- Azure Databricks |マイクロソフト ラーニング (microsoft.com)

このディレクトリの名前は、既に存在する他のディレクトリとの潜在的な衝突を回避するためにランダムに生成されます。

上記の翻訳

検証

Unity Catalog のマネージドテーブルのディレクトリを確認

%sql
CREATE CATALOG IF NOT EXISTS dir_diff;
CREATE SCHEMA IF NOT EXISTS dir_diff.schema_01;
CREATE TABLE IF NOT EXISTS dir_diff.schema_01.table_01
(
  str_col string
)
;
%sql
DESC EXTENDED dir_diff.schema_01.table_01;

image.png

Hive メタストアのマネージドテーブルのディレクトリを確認

%sql
CREATE SCHEMA IF NOT EXISTS hive_metastore.dir_diff;
CREATE TABLE IF NOT EXISTS hive_metastore.dir_diff.table_01
(
  str_col string
)
;
%sql
DESC EXTENDED hive_metastore.dir_diff.table_01;

image.png

リソースの削除

%sql
DROP SCHEMA hive_metastore.dir_diff CASCADE;
%sql
DROP CATALOG dir_diff CASCADE;

image.png

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