次の方法で共有


Azure Databricks ワークスペースを Unity カタログにアップグレードする

このページでは、Unity カタログ以外のワークスペースを Unity カタログにアップグレードする方法の概要について説明します。 また、従来のワークスペースローカル Hive メタストアから移行する手順についても説明します。

アップグレード手順の概要

Unity カタログにアップグレードするには、次の手順を実行する必要があります。

  1. ID (ユーザー、グループ、サービス プリンシパル) を Azure Databricks アカウントに直接プロビジョニングします (まだプロビジョニングしていない場合)。 ワークスペース レベルの ID プロビジョニングをオフにします。
  2. ワークスペースローカルグループをアカウントレベルのグループに変換します。 Unity Catalog は、アカウント レベルで ID 管理を一元化します。
  3. ワークスペースを Unity カタログ メタストアにアタッチします。 ワークスペース リージョンにメタストアが存在しない場合は、アカウント管理者が作成する必要があります。
  4. Hive メタストアで管理されているテーブルとビューを Unity カタログにアップグレードします。
  5. アカウント レベルのユーザー、グループ、またはサービス プリンシパルに、アップグレードされたテーブルへのアクセス権を付与します。
  6. 古い Hive メタストア テーブルではなく、新しい Unity Catalog テーブルを参照するようにクエリとジョブを更新します。
  7. Hive メタストアを無効にします。 「Azure Databricks ワークスペースで使用される Hive メタストアへのアクセスを無効にする」を参照してください。

Databricks Labs プロジェクトである UCX には、Unity Catalog 以外のワークスペースを Unity Catalog にアップグレードするのに役立つツールが用意されています。 UCX は、大規模な移行に適しています。 「UCX ユーティリティを使用してワークスペースを Unity カタログにアップグレードする」を参照してください

始める前に

始める前に、メタストアやマネージド ストレージなど、Unity Catalog の基本的な概念について理解しておく必要があります。 「Unity Catalog とは」を参照してください。

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

  • ほとんどのセットアップ手順では、Azure Databricks アカウント管理者である必要があります。その他のアクセス許可要件があるタスクについては、タスク固有のドキュメントに記載されています。

    最初の Azure Databricks アカウント管理者は、最初に Azure Databricks アカウント コンソールにログインする時点で、Microsoft Entra ID 全体管理者である必要があります。 最初のログイン時に、そのユーザーは Azure Databricks アカウント管理者になり、Azure Databricks アカウントにアクセスするためには、Microsoft Entra ID 全体管理者の役割は不要になります。 最初のアカウント管理者は、Microsoft Entra ID テナントのユーザーを追加のアカウント管理者として割り当てることができます (このユーザー自身がアカウント管理者をさらに割り当てることができます)。 追加のアカウント管理者は、Microsoft Entra ID で特定のロールを必要としません。

  • メタストアにアタッチするワークスペースは、Azure Databricks Premium プラン上にある必要があります。

Unity カタログのデモへのアップグレード

主要なアップグレード タスクの動作を確認するには、次の短いガイド付きデモをご覧ください。 各デモでは、特定の手順と、該当する場合は詳細なドキュメントへのリンクについて説明します。

または、「 UCX を使用して Unity カタログにアップグレードする」のデモに従うことができます。

ユーザー、グループ、サービス プリンシパルをアカウントにプロビジョニングする

Unity カタログは、アカウント レベルの ID を参照します。 メタストアをワークスペースにアタッチする前に、次の操作を行う必要があります。

  • SCIM を使用して IdP からワークスペースにユーザー、グループ、サービス プリンシパルをプロビジョニングする場合は、それをオフにして、代わりに Azure Databricks アカウントへのプロビジョニングを設定します。 ID プロバイダーから ID を同期する方法と、ID の情報を参照してください。

  • SCIM プロビジョニング コネクタや Terraform の自動化など、ユーザー、グループ、サービス プリンシパルを管理するように構成されている自動化を更新して、ワークスペース エンドポイントではなくアカウント エンドポイントが参照されるようにします。 「アカウント レベルとワークスペース レベルの SCIM プロビジョニング」を参照してください。

ワークスペース ローカル グループをアカウント レベルのグループに変換する

ワークスペースローカル グループをアカウント グループに移行する」を参照してください。

ワークスペースをメタストアにアタッチする

Unity Catalog に対してワークスペースが有効になっていない (メタストアにアタッチされていない) 場合、次の手順は、ワークスペース リージョンに Unity Catalog メタストアが既に定義されているかどうかによって異なります。

  • アカウントにワークスペース リージョン用に定義された Unity Catalog メタストアが既にある場合は、ワークスペースを既存のメタストアにアタッチするだけで構いません。 Unity カタログのワークスペースを有効にするに移動します。
  • ワークスペースのリージョンに対して Unity カタログメタストアが定義されていない場合は、メタストアを作成してからワークスペースをアタッチする必要があります。 Unity カタログメタストアを作成に移動します。

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

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

オプション 1: フェデレーションしてから外部テーブルをアップグレードする

推奨される方法は、最初に Hive メタストアを外部カタログとしてフェデレーションしてから、外部テーブルを適切にアップグレードすることです。 この 2 段階のプロセスにより、テーブル履歴、構成、アクセス許可、およびビューを保持しながら、データ移動なしでテーブルを移行できます。

まず、Unity カタログで Hive メタストアを外部カタログとしてフェデレーションします。 これにより、Unity カタログを使用して既存のテーブルにアクセスし、アップグレードの準備を行うことができます。

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

テーブルをアップグレードしないことを選択し、フェデレーション カタログの永続的な操作を続行する場合は、これを行うことができます。 ただし、Databricks では、Unity カタログ機能を最大限に活用するためにアップグレードを完了することをお勧めします。

Hive メタストアをフェデレーションした後、データ移動なしで外部テーブルを Unity カタログ テーブルにアップグレードできます。 このワークフローは、テーブルをインプレースでアップグレードし、その際にテーブルの履歴、設定、アクセス許可、およびビューを保持します。

外部テーブルを Unity カタログのマネージド テーブルにアップグレードするには、次のコマンドを実行します。

ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET MANAGED;

Databricks では、Unity カタログの予測最適化のロックを解除するためにマネージド テーブルにアップグレードすることをお勧めします。これには、自動メンテナンス (圧縮、クラスタリング、バキューム処理) とパフォーマンスの向上が含まれます。 代わりに外部テーブルを Unity カタログの外部テーブルにアップグレードするには、次のコマンドを実行します。

ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET EXTERNAL;

テーブルが移行され、外部カタログへのフェデレーションに依存しなくなったら、接続を削除できます。

ALTER CATALOG <foreign_catalog> DROP CONNECTION;

このワークフローの詳細については、「 外部テーブルをマネージド Unity カタログ テーブルに変換する」を参照してください。

オプション 2: テーブルを直接アップグレードする

フェデレーション ベースのアップグレード ワークフローを使用しない場合は、 SYNC または CREATE TABLE AS SELECTを使用してテーブルを直接アップグレードできます。 「Hive のテーブルとビューを Unity Catalog にアップグレードする」を参照してください。

アップグレードされたテーブルまたはフェデレーション テーブルへのアクセスを許可する

アカウント レベルのユーザー、グループ、またはサービス プリンシパルに新しいテーブルへのアクセス権を付与します。 「Unity Catalog の特権の管理」を参照してください。

アップグレードされたテーブルとデータへのパスを操作するようにクエリとジョブを更新する

ワークスペースローカルの Hive メタストアから Unity カタログに移行している間も、Hive メタストアフェデレーション (推奨) または「Unity カタログと共に従来の Hive メタストアを操作する」で説明されている構文を使用して、Hive メタストアに登録されているデータを参照するクエリとジョブを引き続き使用できます。 ただし、最終的には、Unity カタログのテーブルと構文を使用するように、すべてのクエリとジョブを更新する必要があります。

同様に、代わりに Unity カタログ ボリュームを使用するように、ファイルへのパスベースのアクセスを使用するクエリとジョブ 更新します。

詳細な推奨事項については、 従来のワークスペースを Unity カタログにアップグレードするときのジョブの更新に関する記事を参照してください。