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 を使用するには、ユーザーが自分のリージョンのメタストアにアタッチされているワークスペースにいる必要があります。
メタストアを作成するには、次の操作を行います。
-
AWS アカウントで、オプションで、マネージドテーブルとボリュームのメタストアレベルのストレージのストレージ場所を作成します。
メタストア レベルのストレージが必要かどうかを判断するのに役立つ情報については、「 (省略可能) メタストア レベルのストレージを作成する 」および「 ストレージ内のデータが物理的に分離されている」を参照してください。
-
AWSアカウントで、その保存場所へのアクセス権を付与するIAMロールを作成します。
-
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 アカウントで作成します。 メタストア レベルのストレージが必要かどうかを判断するには、「 (省略可能) メタストア レベルのストレージを作成する」を参照してください。
-
AWSで、S3バケットを作成します。
この S3 バケットは、 Unity Catalogのマネージドテーブルと管理対象ボリュームのメタストア レベルのストレージ場所になります。 このストレージの場所は、カタログ レベルとスキーマ レベルでオーバーライドできます。 「Unity Catalog で管理されたストレージの場所を指定する」を参照してください
要件:
- メタストアが複数ある場合は、それぞれに専用の S3 バケットを使用する必要があります。
- データにアクセスするワークスペースと同じリージョンにバケットを配置します。
- バケット名にドット表記を含めることはできません(例:
incorrect.bucket.name.notation
)。バケットの命名ガイドの詳細については、AWSバケットの命名規則を参照してください。
-
s3://
で始まる S3 バケットパスを書き留めます。 -
S3バケットでKMS暗号化を有効にする場合は、KMS暗号化キーの名前を書き留めます。
ステップ 2 (オプション): ストレージの場所にアクセスするための IAMロールを作成する
このステップは、ステップ 1IAM Unity CatalogS3を完了した場合にのみ必要ですが、前のステップで作成した バケットにアクセスするために が必要とする ロールを作成します。「AWS S3 に接続するためのストレージ認証情報を作成する」の手順に従います。
手順 3: メタストアを作成し、ワークスペースをアタッチする
各 Databricks リージョンには、独自の Unity Catalog メタストアが必要です。
メタストアは、組織が運営されている地域ごとに作成します。 これらの各リージョン メタストアは、そのリージョン内の任意の数のワークスペースにリンクできます。 リンクされた各ワークスペースには、メタストア内のデータの同じビューがあり、データ アクセス制御はワークスペース間で管理できます。 Delta Sharing を使用して、他のメタストア内のデータにアクセスできます。
メタストア レベルのストレージを作成することを選択した場合、メタストアは前の手順で作成した S3 バケットと IAMロールを使用します。
メタストアを作成するには、次の手順を実行します。
-
Databricksアカウントコンソールにログインします。
-
[カタログ] をクリックします。
-
[ メタストアを作成 ]をクリックします。
-
次の項目を入力します。
-
メタストアの名前。
-
メタストアをデプロイするリージョン。
これは、データへのアクセスに使用するワークスペースと同じリージョンに存在する必要があります。また、前に作成したストレージバケットのリージョンと同じであることを確認してください。
-
(オプション) S3 バケットパス (
s3://
は省略できます) と IAM前のステップで作成したバケットとロールのロール名。
-
-
作成 をクリックします。
-
メッセージが表示されたら、メタストアにリンクするワークスペースを選択します。
詳細については、「 Unity Catalog のワークスペースを有効にする」を参照してください。
-
メタストア管理者ロールをグループに転送します。
メタストアを作成するユーザーは、メタストア管理者とも呼ばれる所有者です。 メタストア管理者は、カタログなどの最上位のオブジェクトをメタストアに作成し、テーブルやその他のオブジェクトへのアクセスを管理できます。 Databricks では、メタストア管理者ロールをグループに再割り当てすることをお勧めします。 「 メタストア管理者を割り当てる」を参照してください。
-
マネージド ボリュームへのアップロードの Databricks 管理を有効にします。
Databricks は、クロスオリジン リソース共有 (CORS) を使用して、Unity Catalog の マネージド ボリューム にデータをアップロードします。 「CORS の Unity Catalog ストレージ アカウントを構成する」を参照してください。