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アカウントは、プレミアムプラン以上である必要があります。
メタストアレベルのルートストレージを設定する場合は、AWS アカウントで S3 バケット、IAMロール、IAM ポリシー、およびクロスアカウント信頼関係を作成できる必要があります。
ステップ 1 (オプション): AWS でメタストアレベルのマネージドストレージ用の S3 バケットを作成する
この手順 (省略可能) では、マネージド テーブルとボリュームのデータをメタストア レベルで格納するために Unity Catalog で必要な S3 バケットを作成します。 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 ストレージ アカウントの構成を参照してください。