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

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

この記事では、 Unity Catalog メタストアを作成し、ワークスペースにリンクする方法について説明します。

important

Unity Catalog が自動的に有効になったワークスペースの場合、この記事の手順は不要です。 Databricks は、2023 年 11 月 8 日に Unity Catalog の新しいワークスペースを自動的に有効にし始め、アカウント全体で徐々にロールアウトが進んでいます。 この記事の指示に従う必要があるのは、ワークスペースがあり、ワークスペース リージョンにメタストアがまだない場合のみです。 メタストアがリージョンに既に存在するかどうかを確認するには、「 Unity Catalog の自動有効化」を参照してください。

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

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

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

    メタストア レベルのストレージが必要かどうかを判断するのに役立つ情報については、「 (省略可能) メタストア レベルのストレージを作成する 」および「 ストレージ内のデータが物理的に分離されている」を参照してください。

  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 バケットを作成する

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

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

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

    要件:

    • メタストアが複数ある場合は、それぞれに専用の S3 バケットを使用する必要があります。
    • データにアクセスするワークスペースと同じリージョンにバケットを配置します。
    • バケット名にドット表記を含めることはできません(例:incorrect.bucket.name.notation)。バケットの命名ガイドの詳細については、AWSバケットの命名規則を参照してください。
  2. s3://で始まる S3 バケットパスを書き留めます。

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

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

このステップは、ステップ 1IAM Unity CatalogS3を完了した場合にのみ必要ですが、前のステップで作成した バケットにアクセスするために が必要とする ロールを作成します。「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 の マネージド ボリューム にデータをアップロードします。 「CORS の Unity Catalog ストレージ アカウントを構成する」を参照してください。

次のステップ