Databricks ワークスペースを Unity Catalog にアップグレードする
このページでは、Unity Catalog 以外のワークスペースを Unity Catalog にアップグレードする方法の概要について説明します。また、従来のワークスペース-ローカル Hive metastoreから移行する手順も示しています。
アップグレード手順の概要
Unity Catalog にアップグレードするには、次のことを行う必要があります。
- プロビジョニング ID (ユーザー、グループ、サービスプリンシパル) を Databricks アカウントに直接行います (まだ行っていない場合)。 ワークスペース レベルの ID プロビジョニングをオフにします。
- ワークスペースローカルグループをアカウントレベルのグループに変換します。Unity Catalog は、アカウント レベルで ID 管理を一元化します。
- ワークスペースを Unity Catalog メタストアにアタッチします。ワークスペース リージョンにメタストアが存在しない場合は、アカウント管理者がメタストアを作成する必要があります。
- Hive metastore で管理されているテーブルとビューを Unity Catalogにアップグレードします。
- アカウントレベルのユーザー、グループ、またはサービスプリンシパルに、アップグレードされたテーブルへのアクセス権を付与します。
- クエリとジョブを更新して、古いHive metastore テーブルではなく新しいUnity Catalog テーブルを参照します。
- Hiveメタストアを無効にします。Databricksワークスペースで使用されている Hiveメタストアへのアクセスを無効にするを参照してください。
Databricks Labs プロジェクトである UCX には、Unity Catalog が有効化されていないワークスペースを Unity Catalog にアップグレードするのに役立つツールが用意されています。 UCX は、大規模な移行に適しています。 UCX ユーティリティを使用してワークスペースを Unity Catalog にアップグレードするを参照してください。
始める前に
開始する前に、メタストアや管理ストレージなど、Unity Catalog の基本的な概念について理解しておく必要があります。「Unity Catalog とは」を参照してください。
また、次の要件を満たしていることも確認する必要があります。
- ほとんどのセットアップ手順では、Databricks アカウント管理者である必要があります。その後のタスクで他のアクセス許可要件がある場合は、タスク固有のドキュメントに記載されています。
- Databricksアカウントは、プレミアムプラン以上である必要があります。
Unity Catalog デモへのアップグレード
次の短いガイド付きデモを見て、主要なアップグレード タスクの動作を確認してください。各デモでは、特定の手順と、該当する場合は詳細なドキュメントへのリンクが記載されています。
-
Hive metastoreのテーブルをUnity Catalogテーブルにアップグレードする
-
コンピュートを更新して Unity Catalog
または、デモ「 UCX を使用して Unity Catalog にアップグレードする」に従うこともできます。
アカウントへのユーザー、グループ、サービスプリンシパルのプロビジョン
Unity Catalog はアカウント レベルの ID を参照します。メタストアをワークスペースにアタッチする前に、次の操作を行う必要があります。
-
IdP からワークスペースまでプロビジョニング ユーザー、グループ、およびサービス プリンシパルにSCIM使用している場合は、SCIM をオフにして、代わりにDatabricksアカウントにプロビジョニングを設定します。 「ID プロバイダーからの ID の同期」および「ID」を参照してください。
-
ユーザー、グループ、サービスプリンシパルを管理するように構成されたオートメーション ( SCIM プロビジョニング コネクタや Terraform オートメーションなど) を更新して、ワークスペース エンドポイントではなくアカウント エンドポイントを参照するようにします。 アカウントレベルおよびワークスペースレベルの SCIM プロビジョニングを参照してください。
ワークスペースローカルグループをアカウントレベルのグループに変換する
ワークスペースローカル グループをアカウント グループに移行するを参照してください。
ワークスペースをメタストアにアタッチする
ワークスペースで Unity Catalog が有効になっていない (メタストアに接続されている) 場合、次の手順は、ワークスペース リージョンに Unity Catalog メタストアが既に定義されているかどうかによって異なります。
- アカウントにワークスペース リージョンに対して Unity Catalog メタストアが既に定義されている場合は、ワークスペースを既存のメタストアに簡単にアタッチできます。Unity Catalog のワークスペースを有効にするに移動します。
- ワークスペースのリージョンに Unity Catalog メタストアが定義されていない場合は、メタストアを作成してから、ワークスペースをアタッチする必要があります。Unity Catalog メタストアを作成するに移動します。
Hive metastore内のテーブルをUnity Catalogテーブルにアップグレード
ワークスペースが Unity Catalogで有効になる前にサービスに含まれていた場合、ワークスペースには、引き続き使用するデータが含まれている可能性が高い Hive metastore があります。 Databricks では、 Hive metastore によって管理されているテーブルを Unity Catalog メタストアにアップグレードすることをお勧めします。
オプション 1: フェデレートしてからフォーリンテーブルをアップグレードする
推奨されるアプローチは、最初にHive metastoreまたはAWS Glueカタログをフォーリンカタログとしてフェデレーションし、次にその場でフォーリンテーブルをアップグレードすることです。 この 2 段階のプロセスにより、テーブルの履歴、構成、権限、ビューを保持しながら、データを移動せずにテーブルを移行できます。
まず、 Hive metastoreまたはAWS GlueカタログをUnity Catalogのフォーリンカタログとしてフェデレーションします。 これによりUnity Catalogを通じて既存のテーブルにアクセスし、アップグレードの準備をすることができます。
Hive metastore統合する手順については、 Hive metastore統合: Unity Catalogを有効にしてHive metastoreに登録されたテーブルを管理できるようにする」を参照してください。
テーブルをアップグレードせず、フェデレーション カタログを永続的に使用し続けることを選択した場合は、そうすることができます。ただし、Databricks では、Unity Catalog の機能を最大限に活用するためにアップグレードを完了することをお勧めします。
Hive metastoreまたはAWS Glueカタログをフェデレーションした後、データを移動せずにフォーリン テーブルをUnity Catalogテーブルにアップグレードできます。 このワークフローは、テーブルの履歴、構成、権限、およびビューを保持しながら、テーブルをその場でアップグレードします。
フォーリンテーブルをUnity Catalogマネージドテーブルにアップグレードするには、次のコマンドを実行します。
ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET MANAGED;
Databricks 、自動メンテナンス (圧縮、クラスタリング、 vacuum ) とパフォーマンスの向上を含むUnity Catalog予測的最適化のロックを解除するために、マネージド テーブルにアップグレードすることをお勧めします。 代わりにフォーリンテーブルをUnity Catalog外部テーブルにアップグレードするには、次のコマンドを実行します。
ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET EXTERNAL;
テーブルが移行され、外部カタログへのフェデレーションに依存しなくなったら、接続を削除できます。
ALTER CATALOG <foreign_catalog> DROP CONNECTION;
このワークフローの詳細については、 「フォーリンテーブルをマネージドUnity Catalogテーブルに変換する」を参照してください。
オプション2: テーブルを直接アップグレードする
フェデレーションベースのアップグレード ワークフローを使用しない場合は、 SYNCまたはCREATE TABLE AS SELECTを使用してテーブルを直接アップグレードできます。「Hive テーブルとビューを Unity Catalog にアップグレードする」を参照してください。
アップグレードされたテーブルまたはフェデレーテッドテーブルへのアクセスの許可
アカウントレベルのユーザー、グループ、またはサービスプリンシパルに、新しいテーブルへのアクセス権を付与します。Unity Catalog での特権の管理を参照してください。
アップグレードされたテーブルとデータへのパスを操作するためのクエリとジョブの更新
ワークスペースローカルHive metastoreからUnity Catalogに移行している間も、Hive metastoreに登録されているデータを参照するクエリとジョブを引き続き使用できます。 Hive metastoreフェデレーション(推奨) またはUnity Catalogと併用したレガシHive metastore システム の操作で説明されている構文を使用します。ただし、最終的には、Unity Catalog のテーブルと構文を使用するようにすべてのクエリとジョブを更新する必要があります。
同様に、ファイルへのパスベースのアクセスを使用するクエリとジョブを更新して、代わりに Unity Catalog ボリューム を使用します。
詳細な推奨事項については、「 従来のワークスペースを Unity Catalog にアップグレードするときにジョブを更新する」を参照してください。