1.はじめに

目的

今回の記事では、Unity Catalog でカタログを作成する方法について説明していきます。 カタログにはスキーマ (データベース)があり、スキーマには表とビューがあります。

Unity Catalogのカタログの定義を紹介します。

カタログは、Unity Catalog の 3 レベルの名前空間の最初のレイヤーです。 データ資産を整理するために使用されます。 ユーザーは、USE CATALOGデータのアクセス許可が割り当てられているすべてのカタログを表示できます。

すべてのユーザーは、main カタログに対する USE CATALOG アクセス許可を持ちます。 main カタログは、Unity Catalog の使用を開始したばかりの組織を対象としています。 ユーザーとデータを追加するときに、アクセスを効率的に制御できるデータ階層を維持するためにカタログを追加する必要があります。

2.必要条件

Azure Databricks アカウントは Premium プランにある必要があります。
Azure Databricks メタストア管理者であり、またはメタストアに対する CREATE CATALOG 特権を付与されている必要があります。
カタログの作成を実行するワークスペースにリンクされている Unity Catalog のメタストアが必要です。
ノートブックや Databricks SQL を実行してカタログを作成するために使用するコンピューティング リソースで、Unity Catalog に準拠したアクセス モードが使用されている必要があります。

3.CREATE CATALOG権限を付与する

ユーザがカタログを作成できるように、メタストア管理者がそのユーザーに CREATE CATALOG 権限を付与する必要があります。

メタストア管理者のアカウントを使用し、以下の手順で実施します。

① サイドバー  → 「カタログ」→  アイコンをクリックします。

②「権限」→「付与」をクリックします。

③「プリンシパル」項目で権限付与対象のユーザー、またはサービスプリンシパルを選択します。

④「権限」項目で「CREATE CATALOG」を選択します。「付与」をクリックします。

CREATE CATALOG権限の付与が完了しました。

4.カタログを作成する

カタログを作成するには、カタログ エクスプローラー、SQL、Python、R、Scalaなどを使用できます。
カタログを作成すると、default と information_schema などの2 つのスキーマ (データベース)が自動的に作成されます。

また、Databricks Terraform プロバイダーdatabricks_catalog を使用してカタログを作成することもできます。 カタログに関する情報は、databricks_catalogs を使用して取得できます。

4.1 カタログ エクスプローラーでカタログを作成する

メタストアにリンクされているワークスペースにログインします。

①「カタログ」をクリックします。

②「カタログを作成」ボタンをクリックします。

(省略可能) カタログ内のマネージド テーブルのデータが保存される場所を指定します。

このカタログ内のマネージド テーブルを、メタストアに対して構成された既定のルート ストレージの場所に保存しない場合のみ、ここで場所を指定します。 「Unity Catalog メタストアを作成する」を参照してください。

指定するパスは、外部の場所の構成で定義する必要があり、その外部の場所の構成に対する CREATE MANAGED STORAGE 特権が必要です。 そのパスのサブパスを使用することもできます。 「外部の場所とストレージの資格情報を管理する」を参照してください。

③「作成」をクリックしてください。

(省略可能) カタログをバインドするワークスペースを指定します。

既定では、カタログは現在のメタストアにアタッチされているすべてのワークスペースと共有されます。 特定のワークスペースに制限する必要があるデータがカタログに含まれている場合は、[ワークスペース] タブに移動し、それらのワークスペースを追加します。

詳細については、「(省略可能) 特定のワークスペースにカタログを割り当てる」を参照してください。

カタログのアクセス許可を割り当てます。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。

4.2 SQLでカタログを作成する

ノートブックまたは Databricks SQL エディターで次の SQL コマンドを実行します。 角かっこ内の項目は省略可能です。 プレースホルダー値を次のように置き換えます。
<catalog-name>: カタログの名前。
<location-path>: 省略可能。 このカタログ内のマネージド テーブルを、メタストアに対して構成された既定の場所とは異なる場所に保存する場合は、保存場所のパスを指定します。 このパスは外部の場所の構成で定義する必要があり、ユーザーにはその外部の場所の構成に対する CREATE MANAGED STORAGE 特権が必要です。 外部の場所の構成またはサブパス (つまり、’abfss://us-east-1/finance’ または ‘abfss://us-east-1/finance/product’) で定義されているパスを使用できます。 Databricks Runtime 11.3 以降が必要です。
<comment>: 省略可能な説明またはその他のコメントです。
※ 文法

CREATE CATALOG [ IF NOT EXISTS ] <catalog-name>
[ MANAGED LOCATION ‘<location-path>’ ]
[ COMMENT <comment> ];

※ 例

たとえば、example という名前のカタログを作成するには、次のようにします。

カタログに特権を割り当てます。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。

4.3 Pythonでカタログを作成する

ノートブックまたは Databricks SQL エディターで次の SQL コマンドを実行します。 角かっこ内の項目は省略可能です。 プレースホルダー値を次のように置き換えます。

<catalog-name>: カタログの名前。

<location-path>: 省略可能。 このカタログ内のマネージド テーブルを、メタストアに対して構成された既定の場所とは異なる場所に保存する場合は、保存場所のパスを指定します。 このパスは外部の場所の構成で定義する必要があり、ユーザーにはその外部の場所の構成に対する CREATE MANAGED STORAGE 特権が必要です。 外部の場所の構成またはサブパス (つまり、’abfss://us-east-1/finance’ または ‘abfss://us-east-1/finance/product’) で定義されているパスを使用できます。 Databricks Runtime 11.3 以降が必要です。

<comment>: 省略可能な説明またはその他のコメントです。
※ 文法

spark.sql(“CREATE CATALOG [ IF NOT EXISTS ] <catalog-name> [ MANAGED LOCATION ‘<location-path>’ ] [ COMMENT <comment> ]”)

※ 例

たとえば、example という名前のカタログを作成するには、次のようにします。

パラメーターの説明については、CREATE CATALOG を参照してください。

カタログに特権を割り当てます。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。

4.4 Rでカタログを作成する

ノートブックまたは Databricks SQL エディターで次の SQL コマンドを実行します。 角かっこ内の項目は省略可能です。 プレースホルダー値を次のように置き換えます。

<catalog-name>: カタログの名前。

<location-path>: 省略可能。 このカタログ内のマネージド テーブルを、メタストアに対して構成された既定の場所とは異なる場所に保存する場合は、保存場所のパスを指定します。 このパスは外部の場所の構成で定義する必要があり、ユーザーにはその外部の場所の構成に対する CREATE MANAGED STORAGE 特権が必要です。 外部の場所の構成またはサブパス (つまり、’abfss://us-east-1/finance’ または ‘abfss://us-east-1/finance/product’) で定義されているパスを使用できます。 Databricks Runtime 11.3 以降が必要です。

<comment>: 省略可能な説明またはその他のコメントです。
※ 文法

library(SparkR)

sql(“CREATE CATALOG [ IF NOT EXISTS ] <catalog-name> [ MANAGED LOCATION ‘<location-path>’ ] [ COMMENT <comment> ]”)

※ 例

たとえば、example という名前のカタログを作成するには、次のようにします。

カタログに特権を割り当てます。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。

4.5 Scalaでカタログを作成する

ノートブックまたは Databricks SQL エディターで次の SQL コマンドを実行します。 角かっこ内の項目は省略可能です。 プレースホルダー値を次のように置き換えます。

<catalog-name>: カタログの名前。

<location-path>: 省略可能。 このカタログ内のマネージド テーブルを、メタストアに対して構成された既定の場所とは異なる場所に保存する場合は、保存場所のパスを指定します。 このパスは外部の場所の構成で定義する必要があり、ユーザーにはその外部の場所の構成に対する CREATE MANAGED STORAGE 特権が必要です。 外部の場所の構成またはサブパス (つまり、’abfss://us-east-1/finance’ または ‘abfss://us-east-1/finance/product’) で定義されているパスを使用できます。 Databricks Runtime 11.3 以降が必要です。

<comment>: 省略可能な説明またはその他のコメントです。
※ 文法

sql(“CREATE CATALOG [ IF NOT EXISTS ] <catalog-name> [ MANAGED LOCATION ‘<location-path>’ ] [ COMMENT <comment> ]”)

※ 例

カタログに特権を割り当てます。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。

5.まとめ

カタログの作成方法について説明しました。今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

今回の記事が少しでも皆さんの新しい知識や業務のご参考になれば幸いです。

日商エレクトロニクスでは、Azure Databricksの環境構築パッケージを用意しています。
Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたら
是非お問い合わせください!

Azure Databricks連載記事のまとめはこちら

お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら