次の方法で共有


Unity カタログを始める

この記事では、Unity カタログを使用して Azure Databricks ワークスペース内のデータを管理する方法について説明します。 この記事は、主に Unity Catalog を初めて使用するワークスペース管理者を対象としています。 Databricks Terraform プロバイダーを使用して Unity カタログを設定するには、「Terraform を使用して Unity カタログのセットアップを自動化」を参照してください。

この記事を最後まで読むと、次のことができるようになります。

  • Unity Catalog に対して有効になっているワークスペース。
  • Unity Catalog にアクセスできるコンピューティング。
  • Unity Catalog のオブジェクトにアクセスし、作成するアクセス許可のあるユーザー。

その他の入門記事も確認できます。

既存の Unity-Catalog 以外のワークスペースを Unity Catalog にアップグレードする場合は、ID、アクセス許可、およびテーブルを Unity Catalog にアップグレードするための一連のワークフローとユーティリティを提供する Databricks Labs プロジェクトである UCX を使用すると便利です。 「UCX ユーティリティを使用してワークスペースを Unity Catalog にアップグレードする」を参照してください。

Unity カタログの使用を開始する方法

Unity カタログの使用を開始するために使用するパスは、ワークスペースによって異なります。

新しいワークスペースの場合:

ほとんどのアカウントでは、ワークスペースを作成するときに Unity カタログが既定で有効になります。 既定の設定で Unity カタログの使用を開始できます。 ただし、オプションの構成を有効にすることもできます。 このページでは、両方の概要を示します。

既存のワークスペースの場合:

  1. ワークスペースが Unity カタログに対して有効になっていることを確認する

    ワークスペースが Unity カタログの自動有効化の日付より前の場合、アカウント管理者は Unity カタログを有効にする必要があります。 Unity カタログの有効化は、基本的にワークスペース リージョンに Unity カタログ メタストアを作成し、ワークスペースで作成したすべてのグループがアカウント レベルのグループに変換されることを確認することを意味します。

  2. ワークスペースローカル Hive メタストアに登録されているテーブルを Unity カタログにアップグレードします。

    Hive メタストア登録済みテーブルをフェデレーションして段階的にアップグレードして、Unity カタログによって管理され、Unity カタログのインターフェイスと構文を使用してアクセスできるようにすることができます。

    「Azure Databricks ワークスペースを Unity カタログにアップグレードする」を参照してください。

Unity Catalog の自動有効化

Databricks は、2023 年 11 月 9 日、アカウント全体で順次ロールアウトする Unity Catalog の新しいワークスペースの自動有効化を開始しました。 自動的に有効になったワークスペースには、次のプロパティがあります。

  • 自動的にプロビジョニングされた Unity カタログ メタストア (ワークスペース リージョンに対して Unity カタログ メタストアが既に存在し、メタストアが自動ワークスペース割り当て 可能でない限り)。

  • カタログや外部データベース接続を作成する機能など、ワークスペース管理者の既定のアクセス許可。

  • メタストア管理者がいない (既存の Unity Catalog メタストアが使用され、メタストア管理者が既に割り当てられている場合を除く)。

  • マネージド テーブルとマネージド ボリュームにメタストア レベルのストレージがない (メタストア レベルのストレージを持つ既存の Unity Catalog メタストアが使用されている場合を除く)。

  • ワークスペース カタログは、最初にプロビジョニングされるときに、ワークスペースにちなんだ名前になります。

    ワークスペースのすべてのユーザーは、このカタログ内の default スキーマで資産を作成できます。 既定では、このカタログはワークスペースにバインドされており、ワークスペースからのみアクセスできます。 ワークスペース作成時のワークスペース カタログの自動プロビジョニングは、アカウント全体に徐々にロールアウトされます。

これらの既定の構成はほとんどのワークスペースで機能しますが、ワークスペース管理者またはアカウント管理者が変更できます。たとえば、アカウント管理者はメタストア管理者を割り当ててメタストアレベルのストレージを作成でき、ワークスペース管理者はワークスペースのカタログ名とアクセスを変更できます。

ワークスペースが Unity カタログに対して自動的に有効になっていない場合はどうなりますか?

ワークスペースが Unity Catalog で自動的に有効にならなかった場合は、アカウント管理者またはメタストア管理者がワークスペースを同じリージョンの Unity Catalog メタストアに手動でアタッチする必要があります。 リージョンに Unity Catalog メタストアが存在しない場合は、アカウント管理者が作成する必要があります。 手順については、「Unity Catalog メタストアを作成する」を参照してください。

ワークスペースが Unity Catalog で有効になったかどうかを把握するにはどうすればよいですか?

ワークスペースで Unity Catalog が有効かどうかを確認するには、Azure Databricks ワークスペース管理者またはアカウント管理者に確認を依頼してください。 「手順 1: ワークスペースが Unity Catalog で有効になっていることを確認する」も参照してください。

ワークスペースに workspace カタログが含まれているかどうか操作方法?

一部の新しいワークスペースには、"ワークスペース カタログ" が含まれています。これには、最初にプロビジョニングされたときに、ワークスペースにちなんだ名前が付けられます。 ワークスペースにワークスペースがあるかどうかを確認するには、[データ] アイコンをクリックします。サイドバーのカタログをクリックしてカタログ エクスプローラーを開き、カタログ名としてワークスペース名を使用するカタログを検索します。

ワークスペース カタログは Unity Catalog 内の他のカタログと同様です。ワークスペース管理者は、その名前を変更する、所有権を変更する、さらには削除することができます。 ただし、ワークスペースが作成された直後に、ワークスペース名が付けられます

開始する前に

この記事で説明するタスクを開始する前に、メタストア、管理者ロール、マネージド ストレージなど、Unity Catalog の基本的な概念に慣れておく必要があります。 「Unity Catalog とは」を参照してください。

次の要件を満たしていることを確認しておくことも必要です。

  • Premium プランの Azure Databricks ワークスペースであること。

  • ワークスペースの状態によって、次のようなロールと権限があります。

    • ワークスペース管理者: ワークスペースの作成時に Unity Catalog で自動的に有効になった場合、必要なタスクを完了するには、ワークスペース管理者である必要があります。

    • アカウント管理者: ワークスペースがまだ Unity Catalog で有効になっていない場合は、アカウント管理者がワークスペースをメタストアにアタッチする必要があります。

      ワークスペースと同じリージョンに Unity Catalog メタストアがない場合は、アカウント管理者が Unity Catalog メタストアも作成する必要があります。

      ワークスペース リージョンにメタストアが存在するかどうかを判断する手順と、メタストアを作成する手順は、この記事に従ってください。

    Unity Catalog の管理特権Unity Catalog の自動有効化を参照してください。

手順 1: ワークスペースが Unity Catalog で有効になっていることを確認する

この手順では、Unity Catalog に対してワークスペースが既に有効かどうかを判断します。ここで言う有効とは、Unity Catalog メタストアがワークスペースにアタッチされていることと定義されます。 Unity Catalog に対してワークスペースが有効になっていない場合は、Unity Catalog に対してワークスペースを手動で有効にする必要があります。 「Azure Databricks ワークスペースを Unity カタログにアップグレードする」を参照してください。

確認するには、次のいずれかの操作を行います。

アカウント コンソールを使って Unity Catalog が有効であることを確認する

  1. Azure Databricks アカウント管理者として、アカウント コンソールにログインします。
  2. [ ワークスペース] アイコンをクリックします。ワークスペース
  3. ワークスペースを見つけて、[メタストア] 列を確認します。 メタストア名が存在する場合、ワークスペースは Unity Catalog メタストアにアタッチされているため、Unity Catalog に対して有効になっています。

SQL クエリを実行して Unity Catalog が有効であることを確認する

SQL クエリ エディターまたは Unity カタログ対応コンピューティング リソースにアタッチされているノートブックで、次の SQL クエリを実行します。 管理者ロールは必要ありません。

SELECT CURRENT_METASTORE();

クエリが次のようなメタストア ID を返した場合、ワークスペースは Unity Catalog メタストアにアタッチされているため、Unity Catalog に対して有効になっています。

現在のメタストア出力

Unity Catalog に対してワークスペースが有効になっていない場合の次の手順

ワークスペースで Unity カタログ (メタストアにアタッチ) が有効になっていない場合は、「 Azure Databricks ワークスペースを Unity カタログにアップグレードする」の手順に従います。

Unity Catalog に対してワークスペースが有効になっている場合は、次の手順に進みます。

手順 2: ユーザーの追加とワークスペース管理ロールの割り当て

ワークスペースを作成したユーザーは、ワークスペース管理ロールを持つワークスペー ユーザーとして自動的に追加されます (つまり、admins ワークスペース-ローカル グループのユーザー)。 ワークスペース管理者として、ワークスペースにユーザーを追加および招待したり、ワークスペース管理者のロールを他のユーザーに割り当てたり、サービス リンシパルやグループを作成したりできます。

アカウント管理者は、ユーザー、サービス プリンシパル、グループをワークスペースに追加することもできます。 また、アカウント管理者とメタストア管理者のロールを付与することができます。

詳細については、「ユーザーの管理」を参照してください。

Microsoft Entra ID からプロビジョニングを設定すると、Azure Databricks へのユーザー アクセスを管理するのに役立ちます。 完全な手順については、「SCIM を使用して Microsoft Entra ID からユーザーとグループを同期するを参照してください。

手順 3: ユーザーがクエリの実行やオブジェクトの作成に使用できるクラスターや SQL ウェアハウスを作成する

Unity Catalog ワークロードを実行するには、コンピューティング リソースが特定のセキュリティ要件に準拠している必要があります。 準拠していないコンピューティング リソースは、Unity Catalog のデータやその他のオブジェクトにアクセスできません。 SQL ウェアハウスは常に Unity Catalog 要件に準拠していますが、一部のクラスター アクセス モードは準拠していません。 「アクセス モード」を参照してください。

ワークスペース管理者として、コンピューティング作成を管理者に限定したり、ユーザーに独自の SQL ウェアハウスやクラスターを作成させたりすることができます。 また、適用する Unity Catalog 準拠の仕様を使用して、ユーザーが独自のクラスターを作成できるようにするクラスター ポリシーを作成することもできます。 「コンピューティングのアクセス許可」と「コンピューティング ポリシーの作成と管理」を参照してください。

手順 4: ユーザーへの権限の付与

オブジェクトを作成し、Unity Catalog のカタログとスキーマにアクセスするには、ユーザーにそのためのアクセス許可が必要です。 このセクションでは、一部のワークスペースで既定で付与されるユーザーと管理者の特権について説明します。また、追加の特権を付与する方法について説明します。

既定のユーザー特権

一部のワークスペースには、起動時に既定のユーザー (非管理者) 特権が付与されます。

  • ワークスペースが自動的にプロビジョニングされた ワークスペース カタログで起動された場合、すべてのワークスペース ユーザーはワークスペース カタログの default スキーマにオブジェクトを作成できます。

    ワークスペースにワークスペース カタログがあるかどうかを確認する方法については、「ワークスペースにワークスペース カタログが含まれているかどうかを確認する方法」を参照してください。

  • Unity Catalog に対してワークスペースを手動で有効にした場合、main カタログは自動的にプロビジョニングされます。

    ワークスペース ユーザーは、USE CATALOG カタログに対するmain権限を持ちます。カタログ内のオブジェクトを作成または選択する権限は付与されませんが、カタログ内のオブジェクトを操作するための前提条件です。 メタストアを作成したユーザーは、既定で main カタログを所有し、所有権の譲渡と他のユーザーへのアクセス権の付与の両方を行うことができます。

    メタストアの作成後にメタストア ストレージが追加された場合、main カタログはプロビジョニングされません。

他のワークスペースには、既定でカタログが作成されず、管理者以外のユーザー特権は既定で有効になりません。 ワークスペース管理者は最初のカタログを作成し、それとその中のオブジェクトへのアクセス権をユーザーに付与する必要があります。 このセクションの手順を完了する前に、「手順 5: 新しいカタログとスキーマを作成する」に進んでください。

既定の管理者特権

一部のワークスペースには、起動時に既定のワークスペース管理者特権が付与されます。

  • ワークスペースが Unity Catalog で自動的に有効になった場合:
    • ワークスペース管理者は、新しいカタログと新しいカタログ内のオブジェクトを作成し、それらにアクセス権を付与できます。
    • 既定では、メタストア管理者は存在しません。
    • ワークスペース管理者は、ワークスペース カタログを所有し (存在する場合)、そのカタログおよびそのカタログ内のオブジェクトへのアクセス権を付与できます。
  • ワークスペースが Unity Catalog で手動で有効になった場合:
    • ワークスペース管理者には、既定で特別な Unity Catalog 特権は付与されません。
    • メタストア管理者は、存在する必要があり、任意の Unity Catalog オブジェクトを作成することや、任意の Unity Catalog オブジェクトの所有権を取得することができます。

自動的に有効になる Unity Catalog ワークスペースのワークスペース管理者に付与される追加のオブジェクト特権の一覧については、「ワークスペースで Unity Catalog が自動的に有効になる場合のワークスペース管理特権」を参照してください。

特権を付与する

前のセクションに記載した以外のオブジェクトにアクセスするには、特権ユーザーがそのアクセス権を付与する必要があります。

たとえば、my-catalog に新しいスキーマを作成する機能をグループに付与するには、カタログ所有者は SQL エディターまたはノートブックで次の内容を実行できます。

GRANT CREATE SCHEMA ON my-catalog TO `data-consumers`;

ワークスペースが Unity Catalog で自動的に有効になった場合、ワークスペース管理者はワークスペース カタログを所有し、次のような新しいスキーマを作成する権限を付与できます。

GRANT CREATE SCHEMA ON <workspace-catalog> TO `data-consumers`;

また、Catalog Explorer を使用して、特権の付与と取り消しを行うこともできます。

重要

ワークスペース ローカル users または admins グループには特権を付与できません。 グループに特権を付与するには、アカウント レベルのグループである必要があります。

Unity Catalog での特権の管理については、「Unity Catalog の特権の管理」を参照してください。

手順 5: 新しいカタログとスキーマを作成する

Unity Catalog の使用を開始するには、少なくとも 1 つのカタログを定義する必要があります。 カタログは、Unity Catalog におけるデータの分離と編成の主要な単位です。 すべてのスキーマとテーブルは、ボリューム、ビュー、モデルと同様にカタログ内に格納されます。

一部のワークスペースには、自動的にプロビジョニングされるカタログがありません。 Unity Catalog を使うには、ワークスペース管理者がそのワークスペース用の最初のカタログを作成する必要があります。

他のワークスペースは、ユーザーがアクセスして使用できる、事前にプロビジョニングされたカタログ (Unity Catalog に対してワークスペースをどのように有効にしたかに応じて、ワークスペース カタログまたは main カタログ) にアクセスできます。 Azure Databricks にデータや AI 資産を追加すると、データを論理的に管理しやすくするために、それらの資産をグループ化する追加のカタログを作成できます。

カタログとスキーマを使用してデータと AI 資産を整理する最適な方法に関する推奨事項については、「Unity Catalog のベスト プラクティス」を参照してください。

メタストア管理者、ワークスペース管理者 (自動有効化ワークスペースのみ)、または CREATE CATALOG 権限を持つその他のユーザーとして、メタストアに新しいカタログを作成できます。 その場合は、次のようなことをする必要があります。

  1. 新しいカタログ用にマネージド ストレージを作成します。

    マネージド ストレージは、マネージド テーブルとマネージド ボリューム用の、Azure アカウント内の専用の保存場所です。 マネージド ストレージをメタストア、カタログ、スキーマに割り当てることができます。 ユーザーがテーブルを作成すると、データは階層で最も下にある保存場所に格納されます。 たとえば、メタストアとカタログに保存場所が定義されているものの、スキーマには定義されていない場合、データはカタログに定義された場所に保存されます。

    Databricks では、カタログ レベルでマネージド ストレージを割り当てることを推奨しています。その理由は、カタログは通常、データ分離の論理ユニットを表すためです。 複数のカタログのデータが同じ保存場所を共有しても問題ない場合は、メタストア レベルの保存場所を既定値にすることができます。 ワークスペースが Unity Catalog で自動的に有効になった場合、既定ではメタストア レベルのストレージはありません。 アカウント管理者には、メタストア レベルのストレージを構成するオプションがあります。 「Unity Catalog でマネージド ストレージの場所を指定する」および「既存のメタストアにマネージド ストレージを追加する」を参照してください。

    マネージド ストレージをカタログに割り当てるには、次の内容を作成する必要があります。

    • "ストレージの資格情報"。
    • そのストレージ資格情報を参照する外部の場所

    これらのオブジェクトの概要と作成手順については、「 Unity カタログを使用してクラウド オブジェクト ストレージに接続する」を参照してください。

  2. 同じメタストアを共有する他のワークスペースからのアクセスを制限する場合は、新しいカタログをワークスペースにバインドします。

    特定のワークスペースにカタログ アクセスを制限する」参照してください。

  3. カタログに権限を付与します。

詳細な手順については、「カタログを作成する」を参照してください。

カタログ作成の例

次の例では、マネージド ストレージを持つカタログを作成し、そのカタログに SELECT 権限を付与しています。

CREATE CATALOG IF NOT EXISTS mycatalog
  MANAGED LOCATION 'abfss://mycontainer@<myaccount.dfs.core.windows.net//depts/finance';

GRANT SELECT ON mycatalog TO `finance-team`;

カタログ エクスプローラーを使用したカタログの作成手順などの詳細な例については、「カタログを作成する」を参照してください。

スキーマを作成する

スキーマは、カタログよりも細かいグループ化 (部門やプロジェクトなど) を表します。 カタログ内のすべてのテーブルとその他の Unity Catalog オブジェクトは、スキーマに含まれています。 新しいカタログの所有者として、カタログ内のスキーマを作成する必要がある場合があります。 ただし、その代わりに、カタログ上で CREATE SCHEMA 権限を付与することによって、スキーマを作成する機能を他のユーザーに委任する必要がある場合もあります。

詳細な手順については、「スキーマを作成する」を参照してください。

(省略可能) メタストア管理者ロールの割り当て

ワークスペースが Unity Catalog で自動的に有効になった場合、既定ではメタストア管理者ロールは割り当てられません。 メタストア管理者には、ワークスペース管理者にはない権限がいくつかあります。

次のような必要に応じて、メタストア管理者を割り当てるとよいでしょう。

メタストア管理者ロールに関する詳細および割り当て手順については、「メタストア管理者を割り当てる」を参照してください。

Hive メタストアのテーブルを Unity Catalog テーブルにアップグレードする

Unity Catalog が有効になる前にワークスペースがサービスに入っていた場合は、引き続き使用するデータを含む Hive メタストアが存在する可能性があります。 Databricks では、Hive メタストアによって管理されるテーブルを Unity Catalog メタストアに移行することをお勧めします。

「Azure Databricks ワークスペースを Unity カタログにアップグレードする」を参照してください。

オプション: Hive メタストアを連携させて、その操作を継続する

ワークスペースに引き続き使用するデータを含む Hive メタストアがあり、Hive メタストアによって管理されているすべてのテーブルを Unity カタログ メタストアにアップグレードする推奨事項に従わない場合は、Hive メタストア内のデータを Unity カタログの外部カタログとしてフェデレーションすることで引き続き使用できます。 Hive メタストア フェデレーションは、Unity カタログへの移行パスの便利な手順です。 これにより、コードを調整せずに増分移行が可能になり、一部のワークロードでは Hive メタストアに登録されているデータが引き続き使用され、他のワークロードは移行されます。

Hive メタストアのフェデレーション: Unity カタログを有効にして、Hive メタストアに登録されているテーブルを管理する方法に関する説明を参照してください。

(省略可能) メタストアレベルのストレージを作成する

Databricks では、メタストア内のカタログごとに個別のマネージド ストレージの場所を作成することを推奨しています (スキーマに対しても同様にすることができます) が、代わりにメタストア レベルで管理対象の場所を作成し、それを複数のカタログやスキーマのストレージとして使うこともできます。

メタストアレベルのストレージが必要な場合は、メタストア管理者も割り当てる必要があります。「(省略可能) メタストア管理者ロールの割り当て」を参照してください。

メタストア レベルのストレージは、個人のステージング場所に依存する Databricks パートナー製品統合を使用する場合にのみ必要です (非推奨)。

マネージド ストレージの場所の階層の詳細については、「マネージド ストレージの 場所の階層」を参照してください。

メタストアレベル ストレージがないメタストアに追加する方法については、「既存のメタストアにマネージド ストレージを追加する」を参照してください。

2023 年 11 月 9 日より前に Unity カタログに対して有効にされたほとんどのワークスペースには、既定でメタストア レベルのストレージ ルートがあります。

次のステップ