Unity Catalog メタストアを管理する

この記事では、Databricks アカウントで Unity Catalog メタストアの動作を更新、削除、管理する方法について説明します。

Unity Catalog メタストアとその作成方法については、Unity Catalog メタストアを作成するを参照してください。

メタストアを新しいワークスペースに自動的に割り当てるようにする

既存の Unity Catalog メタストアをそのメタストアのリージョン内の新しいワークスペースに自動的に割り当てるには、アカウント管理者がメタストアのワークスペースの自動割り当てを有効にできます。 この設定が選択されていない場合、メタストアと同じリージョンにワークスペースを作成する管理者は、Unity Catalog のワークスペースを手動で有効にし、ドロップダウンからメタストアを選択する必要があります。

アカウント管理者は、このオプションを有効にする前に、新しいワークスペースに対する次の影響を理解しておく必要があります。

  • ワークスペース カタログが作成され、すべてのワークスペース ユーザーには、そのカタログにオブジェクトを作成するために必要な権限が付与されます。Unity Catalog の自動有効化を参照してください。

  • ワークスペース管理者には、カタログや外部ロケーションなどのメタストア レベルのセキュリティ保護可能なオブジェクトを作成するために必要なアクセス許可があります。 ワークスペースの管理者権限については、 ワークスペースの Unity Catalog が自動的に有効になっている場合を参照してください。

  • メタストア レベルのストレージがメタストアで既に有効になっている場合、ワークスペースはそのストレージを使用できます。 Unity Catalog でマネージドストレージロケーションを指定するを参照してください。

  • メタストアにメタストア管理者が定義されている場合は、メタストアに接続されているすべてのワークスペース内のすべてのセキュリティ保護可能なオブジェクトへのアクセスを管理できます。 メタストア管理者を参照してください。

  • メタストアの Delta Sharing 設定 (有効または無効) は、メタストアに接続されているすべてのワークスペースに適用されます。 アカウントのDelta Sharingを設定する (プロバイダー向け)を参照してください。

自動割り当てを有効にするには:

  1. アカウント管理者として、Databricks アカウント コンソールに移動します。

  2. カタログアイコンカタログをクリックします。

  3. メタストアを選択します。

  4. 構成タブの ワークスペースの割り当てで、<region>の新しいワークスペースをこのメタストアに自動的に割り当てる を選択します。

  5. 確認ダイアログで、自動割り当てを有効にするをクリックします。

マネージド ストレージを既存のメタストアに追加する

メタストア レベルの管理ストレージはオプションであり、自動的に作成されたメタストアには含まれません。 複数のワークスペースのデータを一元的に格納するデータ分離モデルを好む場合は、メタストア レベルのストレージをメタストアに追加できます。 メタストア レベルのストレージは、個人のステージング場所を使用する 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 に作成します。

  1. メタストアにアタッチされているワークスペースを開きます。

  2. カタログアイコンカタログをクリックしてカタログエクスプローラーを開きます。

  3. + 追加ボタンをクリックし、外部ロケーションの追加を選択します。

  4. 新しい外部ロケーションを作成ダイアログで、AWSクイックスタート(推奨)をクリックし、次のページをクリックします。

    AWS クイックスタートでは、外部ロケーションが構成され、ストレージ資格情報が作成されます。手動 オプションを使用する場合は、IAMロールを手動で作成し、Databricksで S3バケットへのアクセス権を付与する ストレージ認証情報を自分で作成する必要があります。

  5. クイックスタートで外部ロケーションを作成ダイアログで、バケット名フィールドにS3バケットへのパスを入力します。

  6. Generate new token をクリックして、 Databricks と AWS アカウント間の認証に使用する個人用アクセストークンを生成します。

  7. トークンをコピーし、 クイックスタートで起動をクリックします。

  8. 起動する AWS CloudFormation テンプレート ( クイック作成スタック というラベル) で、トークンを Databricksアカウント資格情報フィールドに貼り付けます。

  9. ページ下部の利用規約に同意します (AWS CloudFormation がカスタム名で IAM リソースを作成する可能性があることを認めます)。

  10. スタックを作成をクリックします。

    CloudFormation テンプレートが Databricksで外部ロケーションオブジェクトの作成を完了するまでに数分かかる場合があります。

  11. Databricksワークスペースに戻り、Catalog Explorer外部ロケーション ペインに移動します。

    カタログエクスプローラーの左側の表示枠で、下にスクロールして外部データ > 外部ロケーションの順にクリックします。

  12. 新しい外部ロケーションが作成されたことを確認します。

    自動的に生成される外部ロケーションは、 db_s3_external_databricks-S3-ingest-<id>という命名構文を使用します。

  13. 外部ロケーションに対する CREATE MANAGED STORAGE 権限を自分自身に付与します。

    1. 外部ロケーション名をクリックして、詳細ペインを開きます。

    2. アクセス許可タブで、許可 をクリックします。

    3. <external location>の付与ダイアログで、プリンシパルフィールドで自分自身を選択し、CREATE MANAGED STORAGEを選択します。

    4. 付与 をクリックします。

ステップ 3: メタストアにストレージロケーションを追加する

メタストア ストレージ バケットを表す外部ロケーションを作成したら、それをメタストアに追加できます。

  1. アカウント管理者として、アカウントコンソールにログインします。

  2. カタログアイコンカタログをクリックします。

  3. メタストア名をクリックします。

  4. 自分がメタストア管理者であることを確認します。

    そうでない場合は、 編集 をクリックし、自分自身をメタストア管理者として割り当てます。 この手順が完了したら、自分自身の割り当てを解除できます。

  5. 設定 タブで、S3 バケット パスの横にある 設定をクリックします。

  6. メタストア ルートの設定 ダイアログで、外部ロケーションの作成に使用した S3 バケット パスを入力し、 更新をクリックします。

    このパスは一度設定すると変更できませんが、必要に応じて削除して新しいパスを追加することができます。

メタストア レベルのストレージを削除する

マネージドテーブルとボリューム用のメタストア レベルのストレージ (メタストア ストレージ ルートとも呼ばれます) があるが、カタログ レベルまたはスキーマ レベルでのデータ ストレージの分離を強制する場合は、メタストアのメタストア レベルのストレージ オプションを削除できます。 これを行うと、次のことが発生します。

  • ストレージ ルートが指定されていない既存のカタログには、メタストア ストレージ ルートのクラウド ストレージの場所が、カタログ レベルの管理ストレージの場所として与えられます。 つまり、メタストア ストレージ ルートは、これらのカタログに "プッシュダウン" されます。 これらのカタログ内のデータへのアクセスは、中断することなく機能し続けます。

  • メタストアの作成方法によっては、メタストア ストレージ ルートの Unity Catalog に外部ロケーション セキュリティ保護可能なリソースが定義されていない場合があります。 その場合は、新しい外部ロケーションと関連するストレージ資格情報が作成されます。 新しい外部ロケーションには、デフォルトによって prior_metastore_root_location 名前が付けられます。

  • ユーザーは、カタログを作成するたびに、外部ロケーションとして Unity Catalog に登録されている専用のストレージ場所を提供する必要があります。

注:

Delta Sharing を使用してノートブックを共有し、メタストア ルートを共有ノートブック ストレージとして使用した場合は、メタストア ルートを削除する前に次の操作を行う必要があります。

  1. 共有からノートブックを削除します。

  2. 専用のストレージ場所を使用してノートブックを再度追加します。

ノートブック ファイルを共有に追加するを参照してください。

メタストアのストレージ・ルートを削除するには、次のようにします。

  1. アカウント管理者として、アカウントコンソールにログインします。

  2. カタログアイコンカタログをクリックします。

  3. メタストア名をクリックします。

  4. 設定タブの S3 バケット パスで、削除ボタンをクリックします。

  5. 確認ダイアログで、削除の確認をクリックします。

メタストア管理者を追加する

メタストア管理者はオプションですが、メタストアに 1 つ必要になる場合があります。 メタストア管理者を割り当てるを参照してください。

メタストアを削除する

Databricks アカウントを閉鎖する場合、または Unity Catalog メタストアによって管理されているデータへのアクセスを削除する別の理由がある場合は、メタストアを削除できます。

警告

メタストアによって管理されているすべてのオブジェクトは、Databricks ワークスペースを使用してアクセスできなくなります。 この操作は元に戻せません。

マネージドテーブル のデータとメタデータは、30日後に自動的に削除されます。 クラウド ストレージ内の外部テーブル データは、メタストアの削除の影響を受けません。

メタストアを削除するには:

  1. メタストア管理者として、 アカウント コンソールにログインします。

  2. カタログアイコンカタログをクリックします。

  3. メタストア名をクリックします。

  4. 構成タブで、右上にある 3 つのボタン メニューをクリックし、削除を選択します。

  5. 確認ダイアログで、メタストアの名前を入力し、 削除をクリックします。