メインコンテンツまでスキップ

Unity Catalog メタストアを作成する

このページでは、 Unity Catalog メタストアを作成し、ワークスペースにリンクする方法を示します。

重要

Unity Catalog が自動的に有効になったワークスペースでは、このページの手順は不要です。Databricks は 2023年11月8日より、新しいワークスペースで Unity Catalog を自動的に有効にし始め、アカウント全体で段階的に展開を進めています。ワークスペースをお持ちで、かつワークスペースのリージョンにメタストアがまだない場合にのみ、このページの手順に従ってください。お住まいのリージョンにメタストアが既に存在するかどうかを確認するには、Unity Catalog の概要を参照してください。

メタストアは、Unity Catalog 内のデータの最上位コンテナーです。 Unity Catalog メタストアは、セキュリティ保護可能なオブジェクト (テーブル、ボリューム、外部ロケーション、共有など) と、それらへのアクセスを制御するアクセス許可に関する登録する メタデータです。 各メタストアは、データを整理できる 3 レベルの名前空間 (catalog.schema.table) を公開します。 組織が運営されている地域ごとに 1 つのメタストアが必要です。 Unity Catalog を使用するには、ユーザーが自分のリージョンのメタストアにアタッチされているワークスペースにいる必要があります。

メタストアを作成するには、次の操作を行います。

  1. AWS アカウントで、オプションで、マネージドテーブルとボリュームのメタストアレベルのストレージのストレージ場所を作成します。

    メタストアレベルのストレージが必要かどうかを判断するのに役立つ情報については、「Unity Catalog で管理されたストレージの場所を指定する」および「Unity Catalog で管理されたストレージの場所を指定する」を参照してください。

  2. AWSアカウントで、その保存場所へのアクセス権を付与するIAMロールを作成します。

  3. Databricks で、メタストアを作成し、ストレージの場所をアタッチし、メタストアにワークスペースを割り当てます。

注記

この記事で説明する方法に加えて、 Databricks Terraform プロバイダー (具体的には databricks_metastore リソース) を使用してメタストアを作成することもできます。 Unity Catalog がメタストアにアクセスできるようにするには、 databricks_metastore_data_access を使用します。 ワークスペースをメタストアにリンクするには、 databricks_metastore_assignment を使用します。

始める前に

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

また、すべてのセットアップ手順について、次の要件を満たしていることを確認する必要があります。

  • Databricksアカウント管理者である必要があります。
  • Databricksアカウントは、プレミアムプラン以上である必要があります。
  • メタストア レベルのルート ストレージを設定する場合は、 アカウントに S3バケット、IAM ロール、IAM ポリシー、およびクロス アカウント信頼関係を作成できる必要があります。AWS

ステップ 1 (オプション): AWS でメタストアレベルのマネージドストレージ用の S3 バケットを作成する

このステップ (省略可能) では、Unity Catalog で必要となる、メタストア レベルでマネージドテーブルとボリュームデータを格納するための S3 バケットを作成します。ご自身のAWSアカウントでS3バケットを作成します。メタストアレベルのストレージが必要かどうかを判断するには、Unity Catalog で管理されたストレージの場所を指定するを参照してください。

  1. AWSで、S3バケットを作成します。

    この S3 バケットは、 Unity Catalogのマネージドテーブルと管理対象ボリュームのメタストア レベルのストレージ場所になります。 このストレージの場所は、カタログ レベルとスキーマ レベルでオーバーライドできます。 「Unity Catalog で管理されたストレージの場所を指定する」を参照してください

    要件:

    • メタストアが複数ある場合は、それぞれに専用の S3 バケットを使用する必要があります。
    • データにアクセスするワークスペースと同じリージョンにバケットを配置します。
    • S3 バケット名にはドット表記 ( incorrect.bucket.name.notationなど) を使用しないでください。AWS ではバケット名にドットを使用できますが、Databricks ではドット表記の S3 バケットはサポートされていません。ドットを含むバケットは、SSL 証明書の検証エラーにより、Delta Sharing などの機能との互換性の問題が発生する可能性があります。詳細については、 AWS バケットの命名に関するベストプラクティスを参照してください。
    • バケットに S3 アクセスコントロールリストをアタッチすることはできません。
  2. s3://で始まる S3 バケットパスを書き留めます。

  3. S3バケットでKMS暗号化を有効にする場合は、KMS暗号化キーの名前を書き留めます。

ステップ 2 (オプション): ストレージの場所にアクセスするための IAMロールを作成する

このステップでは、ステップ 1 を完了した場合にのみ必要であり、前のステップで作成したS3バケットにアクセスするために必要なIAMロール ロールをUnity Catalog作成します。AWS S3 バケットにアクセスするストレージ認証情報の作成の手順に従ってください。

手順 3: メタストアを作成し、ワークスペースをアタッチする

各 Databricks リージョンには、独自の Unity Catalog メタストアが必要です。

メタストアは、組織が運営されている地域ごとに作成します。 これらの各リージョン メタストアは、そのリージョン内の任意の数のワークスペースにリンクできます。 リンクされた各ワークスペースには、メタストア内のデータの同じビューがあり、データ アクセス制御はワークスペース間で管理できます。 Delta Sharing を使用して、他のメタストア内のデータにアクセスできます。

メタストア レベルのストレージを作成することを選択した場合、メタストアは前の手順で作成した S3 バケットと IAMロールを使用します。

メタストアを作成するには、次の手順を実行します。

  1. Databricksアカウントコンソールにログインします。

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

  3. [ メタストアを作成 ]をクリックします。

  4. 次の項目を入力します。

    • メタストアの名前。

    • メタストアをデプロイするリージョン。

      これは、データへのアクセスに使用するワークスペースと同じリージョンに存在する必要があります。また、前に作成したストレージバケットのリージョンと同じであることを確認してください。

    • (オプション) S3 バケットパス (s3://は省略できます) と IAM前のステップで作成したバケットとロールのロール名。

  5. 作成 をクリックします。

  6. メッセージが表示されたら、メタストアにリンクするワークスペースを選択します。

    詳細については、「 Unity Catalog のワークスペースを有効にする」を参照してください。

  7. メタストア管理者ロールをグループに転送します。

    メタストアを作成するユーザーは、メタストア管理者とも呼ばれる所有者です。 メタストア管理者は、カタログなどの最上位のオブジェクトをメタストアに作成し、テーブルやその他のオブジェクトへのアクセスを管理できます。 Databricks では、メタストア管理者ロールをグループに再割り当てすることをお勧めします。 「 メタストア管理者を割り当てる」を参照してください。

  8. マネージド ボリュームへのアップロードの Databricks 管理を有効にします。

    Databricks は、クロスオリジン リソース共有 (CORS) を使用して、Unity Catalog の マネージド ボリューム にデータをアップロードします。

    以下の手順を使用する代わりに AWS CloudFormation テンプレートを使用する場合は、CloudFormation がこれらの手順に記載されているものとは異なるプロパティ名を使用することに注意してください。AWS CloudFormation リファレンスの CORS 設定手順 を使用して、正しいプロパティ名を取得します。

    1. AWS コンソールを使用して、バケットリストからバケットを選択します。

    2. [アクセス許可] を選択します。

    3. [Cross-origin リソース共有 (CORS)][編集 ] を選択します。

    4. 次の JSON 設定をテキスト ボックスにコピーします。

      JSON
      [
      {
      "AllowedHeaders": [],
      "AllowedMethods": ["PUT"],
      "AllowedOrigins": ["https://*.databricks.com"],
      "ExposeHeaders": [],
      "MaxAgeSeconds": 1800
      }
      ]
    5. [ 変更の保存 ] を選択します。

次のステップ