Unity Catalog を使用したクラウド オブジェクト ストレージへの接続

この記事では、Unity Catalog を使用してデータを操作するために必要なクラウド ストレージ接続構成の概要を説明します。

Databricks では、Unity Catalog を使用して、クラウド オブジェクト ストレージに保存されているすべてのデータへのアクセスを管理することをお勧めします。 Unity Catalog は、クラウド オブジェクト ストレージへの安全な接続を構成するためのツール スイートを提供します。 これらの接続は、次のアクションを完了するためのアクセスを提供します。

  • 生データをレイクハウスに取り込みます。

  • セキュリティで保護されたクラウド ストレージでマネージド テーブルを作成して読み取ります。

  • 登録する または、表形式のデータを含む外部テーブルを作成します。

  • 非構造化データの読み取りと書き込み。

警告

エンド ユーザーに、Unity Catalog マネージド テーブルまたはボリュームへのストレージ レベルのアクセス権を付与しないでください。 これにより、データのセキュリティとガバナンスが損なわれます。

Unity Catalog で管理されるストレージとして使用される Amazon S3 または Cloudflare R2 バケットへの直接アクセスをユーザーに許可しないでください。 Unity Catalog によって管理されるデータにアクセスできる唯一の ID は、Unity Catalog によって使用される ID です。 これを無視すると、環境に次の問題が発生します。

  • Unity Catalog で確立されたアクセス制御は、S3 または R2 バケットに直接アクセスできるユーザーによって回避される可能性があります。

  • 監査、リネージ、その他の Unity Catalog モニタリング機能では、直接アクセスはキャプチャされません。

  • データのライフサイクルが崩れている。 つまり、Databricks 内のテーブルを変更、削除、または展開すると、ストレージに直接アクセスできるコンシューマーが機能しなくなり、Databricks の外部に書き込むとデータが破損する可能性があります。

注:

ワークスペースが 2023 年 11 月 8 日より前に作成された場合、 Unity Catalogが有効になっていない可能性があります。 アカウント管理者は、ワークスペースの Unity Catalog を有効にする必要があります。 Unity Catalogのワークスペースを有効にする」を参照してください。

Unity Catalog はオブジェクト ストレージを Databricks にどのように接続しますか?

Databricks on AWS は、 Unity Catalogに登録されたデータ資産のクラウド ストレージの場所として、AWS S3 と Cloudflare R2 バケット (パブリック プレビュー) の両方をサポートします。 R2 は主に、クラウドやリージョン間でのDelta Sharingなど、データ送信料金を回避したいユースケースを対象としています。 詳細については、 「Cloudflare R2 レプリカを使用するか、ストレージを R2 に移行する」を参照してください。

テーブルとボリュームを保持する基盤となるクラウド ストレージへのアクセスを管理するために、Unity Catalog は次のオブジェクト タイプを使用します。

  • ストレージ認証情報は、 S3 バケットの場合は IAM ロール、Cloudflare R2 バケットの場合は R2 API トークンを使用して、クラウド テナントに保存されているデータにアクセスするための認証および認可メカニズムを表します。 各ストレージ認証情報は、どのユーザーとグループが認証情報にアクセスできるかを制御するUnity Catalogアクセス制御ポリシーの対象となります。 ユーザーが Unity Catalog のストレージ認証情報にアクセスできない場合、リクエストは失敗し、Unity Catalog はユーザーに代わってクラウド テナントに対する認証を試行しません。 ストレージ資格情報を作成する権限は、外部ロケーションを定義する必要があるユーザーにのみ付与する必要があります。 「AWS S3 に接続するためのストレージ認証情報を作成する」および「Cloudflare R2 に接続するためのストレージ認証情報を作成する」を参照してください。

  • 外部ロケーションは、クラウド ストレージ パスと、クラウド ストレージ パスへのアクセスを許可するストレージ資格情報を組み合わせたオブジェクトです。 各ストレージの場所は、どのユーザーとグループが認証情報にアクセスできるかを制御する Unity Catalog のアクセス制御ポリシーの対象となります。 ユーザーが Unity Catalog 内のストレージの場所にアクセスできない場合、リクエストは失敗し、Unity Catalog はユーザーに代わってクラウド テナントに対する認証を試行しません。 外部ロケーションを作成および使用する権限は、外部テーブル、外部ボリューム、または管理されたストレージの場所を作成する必要があるユーザーにのみ付与する必要があります。 「外部ロケーションを作成してクラウド ストレージを Databricks に接続する」を参照してください。

    外部ロケーションは、外部テーブル外部ボリュームなどの外部データ資産と、管理テーブル管理ボリュームなどの管理データ資産の両方に使用されます。 違いの詳細については、 「 テーブルボリューム 」を参照してください。

    管理テーブルおよび管理ボリュームを格納するために外部ロケーションが使用される場合、それは管理ストレージロケーションと呼ばれます。 管理されたストレージの場所は、メタストア、カタログ、またはスキーマ レベルで存在できます。 Databricks では、管理されたストレージの場所をカタログ レベルで構成することをお勧めします。 よりきめ細かな分離が必要な場合は、スキーマ レベルで管理されたストレージの場所を指定できます。 Unity Catalogに対して有効になっているワークスペースには、デフォルトで自動的にメタストア レベルのストレージがありませんが、メタストア レベルで管理されたストレージの場所を指定して、カタログ レベルのストレージが定義されていない場合にデフォルトのストレージを提供できます。 Unity Catalogに対して有効になっているワークスペースは、デフォルトでメタストア レベルの管理されたストレージの場所を手動で受け取ります。 「Unity Catalog の管理されたストレージの場所を指定する」および「Unity Catalog のベスト プラクティス」を参照してください。

ボリュームは、ほとんどの Databricks ユーザーがクラウド オブジェクト ストレージ内の非表形式データを直接操作するために使用する必要があるセキュリティ保護可能なオブジェクトです。 「ボリュームの作成と操作」を参照してください。

注:

Unity Catalog は、クラウド ストレージ URI を使用した外部テーブルと外部ボリュームへのパスベースのアクセスをサポートしていますが、Databricks では、ユーザーがテーブル名を使用してすべての Unity Catalog テーブルの読み取りと書き込みを行い、 /Volumesパスを使用してボリューム内のデータにアクセスすることを推奨します。

次のステップ

管理者として Unity Catalog を使い始めたばかりの場合は、「 Unity Catalog の設定と管理」を参照してください。

新しいユーザーで、ワークスペースで Unity Catalog が既に有効になっている場合は、「 チュートリアル: Unity Catalog で最初のテーブルを作成し、特権を付与する」を参照してください。