Unity Catalog メタストアを管理する
この記事では、Databricks アカウントで Unity Catalog メタストアの動作を更新、削除、管理する方法について説明します。
Unity Catalog メタストアとその作成方法については、「 Unity Catalog メタストアを作成する」を参照してください。
メタストアを新しいワークスペースに自動的に割り当てるようにする
既存の Unity Catalog メタストアをそのメタストアのリージョン内の新しいワークスペースに自動的に割り当てるには、アカウント管理者がメタストアのワークスペースの自動割り当てを有効にできます。 この設定が選択されていない場合、メタストアと同じリージョンにワークスペースを作成する管理者は、Unity Catalog のワークスペースを手動で有効にし、ドロップダウンからメタストアを選択する必要があります。
アカウント管理者は、このオプションを有効にする前に、新しいワークスペースに対する次の影響を理解しておく必要があります。
- ワークスペース カタログ が作成され、すべてのワークスペース ユーザーには、そのカタログにオブジェクトを作成するために必要な権限が付与されます。「Unity Catalog の自動有効化」を参照してください。
- ワークスペース管理者には、カタログや外部ロケーションなどのメタストア レベルのセキュリティ保護可能なオブジェクトを作成するために必要なアクセス許可があります。 ワークスペースの管理者権限については、 ワークスペースの Unity Catalog が自動的に有効になっている場合を参照してください。
- メタストア レベルのストレージがメタストアで既に有効になっている場合、ワークスペースはそのストレージを使用できます。 「Unity Catalog で管理されたストレージの場所を指定する」を参照してください。
- メタストアにメタストア管理者が定義されている場合は、メタストアに接続されているすべてのワークスペース内のすべてのセキュリティ保護可能なオブジェクトへのアクセスを管理できます。 「メタストア管理者」を参照してください。
- メタストアの Delta Sharing 設定 (有効または無効) は、メタストアに接続されているすべてのワークスペースに適用されます。 「アカウントのDelta Sharingを設定する(プロバイダー向け)」を参照してください。
自動割り当てを有効にするには:
- アカウント管理者として、Databricks アカウント コンソールに移動します。
[カタログ] をクリックします。
- メタストアを選択します。
- 構成 タブの ワークスペースの割り当て で、
<region>
の新しいワークスペースをこのメタストアに自動的に割り当てる を選択します。 - 確認ダイアログで、 自動割り当てを有効にする をクリックします。
管理ストレージを既存のメタストアに追加する
メタストア レベルの管理ストレージはオプションであり、自動的に作成されたメタストアには含まれません。 複数のワークスペースのデータを一元的に格納するデータ分離モデルを好む場合は、メタストア レベルのストレージをメタストアに追加できます。 メタストア レベルのストレージは、個人のステージング場所を使用する Databricks パートナーの場合に必要です。
「Unity Catalog で管理されたストレージの場所を指定する」も参照してください。
必要条件
-
Unity Catalog メタストアには、少なくとも 1 つのワークスペースがアタッチされている必要があります。
-
Databricks のアクセス許可が必要です。
- 外部ロケーションを作成するには、メタストア管理者であるか、
CREATE EXTERNAL LOCATION
権限とCREATE STORAGE CREDENTIAL
権限を持つユーザーである必要があります。 - ストレージの場所をメタストア定義に追加するには、アカウント管理者である必要があります。
- 外部ロケーションを作成するには、メタストア管理者であるか、
-
必要なAWSアクセス許可: S3バケット、IAMロール、IAM ポリシー、およびアカウント間の信頼関係を作成する機能。
ステップ1: 保管場所を作成する
「ステップ 1 (オプション): AWS でメタストアレベルのマネージドストレージ用の S3 バケットを作成する」の手順に従って、メタストアと同じリージョンの AWS アカウントに専用の S3 バケットを作成します。
ステップ 2: Unity Catalog で外部ロケーションを作成する
このステップでは、作成したバケットを表す外部ロケーションを Unity Catalog に作成します。
-
メタストアにアタッチされているワークスペースを開きます。
-
「カタログ 」(Catalog) をクリックしてカタログエクスプローラーを開きます。
-
+ 追加 ボタンをクリックし、 外部ロケーションの追加 を選択します。
-
新しい外部ロケーションを作成 ダイアログで、 AWSクイックスタート(推奨) をクリックし、 次のページ をクリックします。
AWS クイックスタートでは、外部ロケーションが構成され、ストレージ資格情報が作成されます。 手動 オプションを使用する場合は、IAMロールを手動で作成し、Databricksで S3バケットへのアクセス権を付与する ストレージ認証情報を自分で作成する必要があります。
-
クイックスタートで外部ロケーションを作成 ダイアログで、 バケット名 フィールドにS3バケットへのパスを入力します。
-
Generate new token をクリックして、 Databricks と AWS アカウント間の認証に使用する個人用アクセストークンを生成します。
-
トークンをコピーし、 クイックスタートで起動 をクリックします。
-
起動する AWS CloudFormation テンプレート ( クイック作成スタック というラベル) で、トークンを Databricksアカウント資格情報 フィールドに貼り付けます。
-
ページ下部の利用規約に同意します ( AWS CloudFormation がカスタム名で IAM リソースを作成する可能性があることを認めます )。
-
スタックを作成 をクリックします。
CloudFormation テンプレートが Databricksで外部ロケーションオブジェクトの作成を完了するまでに数分かかる場合があります。
-
Databricksワークスペースに戻り、 Catalog Explorer の 外部ロケーション ペインに移動します。
カタログエクスプローラーの左側の表示枠で、下にスクロールして 外部データ > 外部ロケーション の順にクリックします。
-
新しい外部ロケーションが作成されたことを確認します。
自動的に生成される外部ロケーションは、
db_s3_external_databricks-S3-ingest-<id>
という命名構文を使用します。 -
外部ロケーションに対する
CREATE MANAGED STORAGE
権限を自分自身に付与します。- 外部ロケーション名をクリックして、詳細ペインを開きます。
- アクセス許可 タブで、 許可 をクリックします。
<external location>
の付与 ダイアログで、 プリンシパル フィールドで自分自身を選択し、CREATE MANAGED STORAGE
を選択します。- 付与 をクリックします。
手順 3: メタストアにストレージの場所を追加する
メタストア ストレージ バケットを表す外部ロケーションを作成したら、それをメタストアに追加できます。
-
アカウント管理者として、アカウントコンソールにログインします。
-
[カタログ] をクリックします。
-
メタストア名をクリックします。
-
自分がメタストア管理者 であることを確認します。
そうでない場合は、 編集 をクリックし、自分自身をメタストア管理者として割り当てます。 この手順が完了したら、自分自身の割り当てを解除できます。
-
設定 タブで、 S3 バケット パス の横にある 設定 をクリックします。
-
メタストア ルートの設定 ダイアログで、外部ロケーションの作成に使用した S3 バケット パスを入力し、 更新 をクリックします。
このパスは一度設定すると変更できませんが、必要に応じて削除して新しいパスを追加することができます。
メタストアレベルのストレージの削除
マネージドテーブルとボリューム用のメタストア レベルのストレージ (メタストア ストレージ ルートとも呼ばれます) があるが、カタログ レベルまたはスキーマ レベルでのデータ ストレージの分離を強制する場合は、メタストアのメタストア レベルのストレージ オプションを削除できます。 これを行うと、次のことが発生します。
- ストレージ ルートが指定されていない既存のカタログには、メタストア ストレージ ルートのクラウド ストレージの場所が、カタログ レベルの管理ストレージの場所として与えられます。 つまり、メタストア ストレージ ルートは、これらのカタログに "プッシュダウン" されます。 これらのカタログ内のデータへのアクセスは、中断することなく機能し続けます。
- メタストアの作成方法によっては、メタストア ストレージ ルートの Unity Catalog に外部ロケーション セキュリティ保護可能なリソースが定義されていない場合があります。 その場合は、新しい外部ロケーションと関連するストレージ資格情報が作成されます。 新しい外部ロケーションには、デフォルトによって
prior_metastore_root_location
名前が付けられます。 - ユーザーは、カタログを作成するたびに、外部ロケーションとして Unity Catalog に登録されている専用のストレージ場所を提供する必要があります。
Delta Sharing を使用してノートブックを共有し、メタストア ルートを共有ノートブック ストレージとして使用した場合は、メタストア ルートを削除する前に次の操作を行う必要があります。
- 共有からノートブックを削除します。
- 専用のストレージ場所を使用してノートブックを再度追加します。
「 ノートブック ファイルを共有に追加する」を参照してください。
メタストアのストレージルートを削除するには:
- アカウント管理者として、アカウントコンソールにログインします。
[カタログ] をクリックします。
- メタストア名をクリックします。
- 設定 タブの S3 バケット パス で、 削除 ボタンをクリックします。
- 確認ダイアログで、 削除の確認 をクリックします。
メタストア管理者を追加する
メタストア管理者はオプションですが、メタストアに 1 つ必要になる場合があります。 「 メタストア管理者を割り当てる」を参照してください。
メタストアを削除する
Databricks アカウントを閉鎖する場合、または Unity Catalog メタストアによって管理されているデータへのアクセスを削除する別の理由がある場合は、メタストアを削除できます。
メタストアによって管理されているすべてのオブジェクトは、Databricks ワークスペースを使用してアクセスできなくなります。 この操作は元に戻せません。
マネージドテーブルの データとメタデータは、30日後に自動的に削除されます。 クラウド ストレージ内の外部テーブル データは、メタストアの削除の影響を受けません。
メタストアを削除するには:
- メタストア管理者として、 アカウント コンソールにログインします。
[カタログ] をクリックします。
- メタストア名をクリックします。
- 構成 タブで、右上にある 3 つのボタン メニューをクリックし、 削除 を選択します。
- 確認ダイアログで、メタストアの名前を入力し、 削除 をクリックします。