Unity Catalog を使用してクラウド オブジェクト ストレージに接続する

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

Databricks では、Unity Catalog を使用して、クラウド オブジェクト ストレージに格納されているすべてのデータへのアクセスを管理することをお勧めします。 Unity Catalog には、クラウド オブジェクト ストレージへのセキュリティ保護された接続を構成するための一連のツールが用意されています。 これらの接続により、次のアクションを完了するためのアクセスが提供されます。

  • レイクハウスに生データを取り込む。
  • 安全なクラウド ストレージでマネージド テーブルを作成して読み取む。
  • 表形式データを含む外部テーブルを登録または作成する。
  • 非構造化データの読み取りと書き込みを行う。

警告

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

Azure Data Lake Storage Gen2 の外部ロケーション ストレージへのストレージ レベルの直接のアクセス権をユーザーに付与すると、Unity Catalog によって付与されているアクセス許可や維持されている監査が適用されなくなります。 直接アクセスでは、監査、データ系列のほか、アクセス制御やアクセス許可などの Unity Catalog のその他のセキュリティおよび監視機能がバイパスされます。 管理者には Azure Data Lake Storage Gen2 を介した直接のストレージ アクセスを管理し、Fabric 経由でユーザーに適切なアクセス許可を付与する責任があります。

Databricks のマネージド テーブルを保存しているバケットに対する直接のストレージ レベルの書き込みアクセスを許可するような、すべてのシナリオを避けるようにしてください。 本来は Unity Catalog によって管理されていたストレージで直接、オブジェクトを変更、削除、展開することは、データの破損を招くおそれがあります。

Note

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

Unity Catalog でオブジェクト ストレージを Azure Databricks に接続する方法

Azure Databricks では、Unity Catalog に登録されているデータおよび AI 資産のクラウド ストレージの場所として、Azure Data Lake Storage Gen2 コンテナーと Cloudflare R2 バケットの両方をサポートしています。 R2 は主に、クラウドとリージョン間の Delta Sharing など、データ エグレス料金を回避する必要があるユース ケースを対象としています。 詳細については、「Cloudflare R2 レプリカを使用するか、ストレージを R2 に移行」を参照してください。

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

  • ストレージ資格情報は、Azure Data Lake Storage Gen2 コンテナーの Azure マネージド ID またはサービス プリンシパルまたは Cloudflare R2 バケット用の R2 API トークンを使用して、クラウド テナントに格納されているデータにアクセスするための認証および認可メカニズムを表します。 各ストレージ資格情報には、資格情報にアクセスできるユーザーとグループを制御する Unity Catalog アクセス制御ポリシーが適用されます。 ユーザーが Unity Catalog のストレージの資格情報にアクセスできない場合、要求は失敗し、Unity Catalog ではユーザーの代わりにクラウド テナントに対する認証を行おうとしません。 ストレージ資格情報を作成するアクセス許可は、外部の場所を定義する必要があるユーザーにのみ付与する必要があります。 「Azure Data Lake Storage Gen2 に接続するためのストレージ資格情報を作成する」と「Cloudflare R2 に接続するためのストレージ資格情報を作成する」を参照してください。

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

    外部の場所は、外部データ資産 (''外部テーブル'' や ''外部ボリューム'' など) と、''マネージド'' データ資産 (''マネージド テーブル'' や ''マネージド ボリューム''など) の両方に使用されます。 相違点について詳しくは、「テーブルとは」および「Unity Catalog ボリュームとは」を参照してください。

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

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

Note

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

Unity カタログを使用したクラウド ストレージのベスト プラクティス

Azure Databricks では、Unity カタログ ガバナンスを使用して Azure Databricks で処理されるデータの Azure ストレージ サービスとして Azure Data Lake Storage Gen2 を使用する必要があります。 Azure Data Lake Storage Gen2 を使用すると、ストレージとコンピューティングのコストを分離し、Unity カタログによって実現されるきめ細かなアクセス制御を利用できます。 データが OneLake (Microsoft Fabric データ レイク) に格納され、Databricks によって処理される (Unity カタログをバイパス)場合、バンドルされたストレージとコンピューティングのコストが発生します。 これにより、データの格納、読み取り、書き込みに対して Azure Data Lake Storage Gen2 と比較して、読み取りのコストが約 3 倍高く、書き込みの場合は約 1.6 倍高くなる可能性があります。 Azure Blob Storage は、Unity カタログとも互換性がありません。

機能 Azure Blob Storage Azure Data Lake Storage Gen2 OneLake
Unity カタログでサポートされている x x
ファブリック容量の追加購入が必要 x X
外部エンジンからサポートされる操作 * 読み取り
* 書き込み
* 読み取り
* 書き込み
* 読み取り (読み取りでは、Azure Data Lake Storage Gen2 からのデータの読み取りと比較して 3 倍のコストが発生します)。
* 書き込みはサポートされていません。

詳細については、OneLake ドキュメントを参照してください。
展開 地域 地域 グローバル
認証 Entra ID Shared Access Signature Entra ID Shared Access Signature Entra ID
ストレージ イベント x
論理的な削除
アクセス制御 RBAC RBAC、ABAC、ACL RBAC (テーブル/フォルダーのみ、ショートカット ACL はサポートされていません)
暗号化キー x
アクセス層 オンライン アーカイブ ホット、クール、コールド、アーカイブ ホットのみ

次のステップ

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

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