次の方法で共有


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

この記事では、Unity カタログを使用してデータを操作するために必要なクラウド ストレージ接続の概要と、Unity カタログがクラウド ストレージと外部クラウド サービスへのアクセスを制御する方法について説明します。

Unity カタログではクラウド ストレージはどのように使用されますか?

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

  • レイクハウスに生データを取り込む。
  • Unity カタログマネージド クラウド ストレージで、 マネージド テーブル と非構造化データの マネージド ボリューム を作成および読み取ります。
  • 表形式のデータと外部ボリュームを含む外部テーブルを登録または作成しますクラウド プロバイダーを使用して管理されるクラウド ストレージ内の非構造化データを含みます。
  • 非構造化データ (Unity カタログ ボリューム) の読み取りと書き込み。

具体的には、Unity カタログでは主に次の 2 つの方法でクラウド ストレージが使用されます。

  • Databricks で作成するマネージド テーブルとマネージド ボリューム (非構造化、表形式以外のデータ) の既定の (または "マネージド") ストレージの場所。 これらのマネージド ストレージの場所は、メタストア、カタログ、またはスキーマ レベルで定義できます。 クラウド プロバイダーでマネージド ストレージの場所を作成しますが、そのライフサイクルは Unity カタログによって完全に管理されます。
  • 外部テーブルとボリュームが格納されているストレージの場所。 これらは、Azure Databricks からのアクセスが Unity カタログによって管理されているが、データ ライフサイクルとファイル レイアウトがクラウド プロバイダーやその他のデータ プラットフォームを使用して管理されているテーブルとボリュームです。 通常、Azure Databricks の大量の既存のデータを登録するか、Azure Databricks の外部のツールを使用してデータへの書き込みアクセスを要求する場合に、外部テーブルを使用します。

マネージド テーブルと外部テーブルとボリュームの詳細については、「 Azure Databricks テーブルの概要 」および 「Unity カタログ ボリュームとは」を参照してください。

Warnung

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

ユーザー、サービス プリンシパル、またはマネージド ID に、Unity カタログによって管理されるデータを含む Azure Data Lake Storage コンテナーへの直接アクセスを許可すると、Unity カタログ がバイパス されます。 これにより、監査が複雑になり、管理オーバーヘッドが増加する一方で、データが過剰アクセス、流出、および未承認のアクセスに公開されます。

Unity カタログのマネージド テーブルでは、直接ストレージ アクセスはサポートされていません。

Unity カタログでサポートされているクラウド ストレージ オプション

Unity Catalog では、Azure Databricks の次のクラウド ストレージ オプションがサポートされています。

クラウド ストレージ オプション 説明
Azure Data Lake Storage コンテナー Azure Data Lake Storage は、ほとんどの Azure Databricks のユース ケースに適しています。 Azure Data Lake Storage に接続するためのストレージ資格情報の作成に関するページを参照してください
AWS S3 バケット Azure Databricks では、S3 バケットへのクロスプラットフォーム読み取り専用アクセスがサポートされています。 AWS S3 に接続するためのストレージ資格情報の作成 (読み取り専用) を参照してください。
Cloudflare R2 バケット Cloudflare R2 は、主に、データ エグレス料金を回避したい Delta Sharing のユース ケースのためのものです。 Cloudflare R2 に接続するためのストレージ資格情報の作成を参照してください。
DBFS ルート DBFS ルート は、従来のクラウド ストレージの場所です。 Databricks では DBFS ルート ストレージにデータを格納しないことをお勧めしますが、従来のプラクティスが原因でワークスペースで保存される場合があります。 DBFS ルート (レガシ) でのデータの外部の場所の作成を参照してください。

Unity カタログはクラウド ストレージへのアクセスをどのように管理しますか?

Unity Catalog では、テーブルとボリュームを保持する基になるクラウド ストレージへのアクセスを管理するために、 外部の場所というセキュリティ保護可能なオブジェクトを使用します。このオブジェクトは、クラウド ストレージの場所へのパスとその場所にアクセスするために必要な資格情報を定義します。 これらの資格情報は、 torage 資格情報と呼ばれる Unity カタログのセキュリティ保護可能なオブジェクトで定義されます。 Unity カタログで外部の場所のセキュリティ保護可能なリソースへのアクセスを許可および取り消すことで、クラウド ストレージの場所のデータへのアクセスを制御できます。 Unity カタログでストレージ資格情報セキュリティ保護可能なリソースへのアクセスを許可および取り消すことで、外部の場所オブジェクトを作成する機能を制御できます。

ストレージ資格情報と外部の場所

これら 2 つのセキュリティ保護可能なオブジェクトについて、もう少し詳しく説明します。

  • ストレージ資格情報は、クラウド テナントに格納されているデータにアクセスするための認証と承認のメカニズムを表します。たとえば、Azure Data Lake Storage コンテナーの Azure マネージド ID またはサービス プリンシパル、Cloudflare R2 バケットの R2 API トークンを使用します。 Unity カタログで付与された権限は、資格情報を使用して外部の場所を定義できるユーザーとグループを制御します。 ストレージ資格情報を作成して使用するアクセス許可は、外部の場所オブジェクトを作成する必要があるユーザーにのみ付与する必要があります。 詳細については、 Unity カタログでサポートされているクラウド ストレージ オプションのリンクを参照してください。
  • 外部の場所は、クラウド ストレージ パスと、クラウド ストレージ パスへのアクセスを承認するストレージ資格情報を組み合わせたものです。 Unity カタログで付与された特権は、外部の場所によって定義されたクラウド ストレージ パスにアクセスできるユーザーとグループを制御します。 外部の場所を作成して使用するためのアクセス許可は、外部テーブル、外部ボリューム、またはマネージド ストレージの場所を作成する必要があるユーザーにのみ付与する必要があります。 「クラウド ストレージを Azure Databricks に接続するための外部の場所を作成する」を参照してください。

外部の場所は、外部データ資産 (外部テーブル、外部ボリュームなど) と管理されたデータ資産 (管理されたテーブル管理ボリュームなど) の両方に使用されます。 Unity カタログの外部データ資産とマネージド データ資産の違いの詳細については、「 Azure Databricks テーブルの概要 」および 「Unity カタログ ボリュームとは」を参照してください。

外部の場所を使用するためのベスト プラクティスについては、「 外部の場所」を参照してください。

外部テーブルとボリュームを作成するときに外部の場所を使用する

Unity カタログに登録されている外部テーブルと外部ボリュームは、基本的に、Azure Databricks の外部で管理するクラウド ストレージ内のデータへのポインターです。 Unity カタログで外部テーブルまたは外部ボリュームを作成する場合は、適切な特権が付与されている外部ロケーション オブジェクトに含まれるクラウド ストレージ パスを参照する必要があります。 Unity カタログの外部データ資産とマネージド データ資産の違いの詳細については、「 Azure Databricks テーブルの概要 」および 「Unity カタログ ボリュームとは」を参照してください。 権限については、「外部の場所に対するアクセス許可を参照してください。

マネージド ストレージの作成時に外部の場所を使用する

マネージド テーブルとマネージド ボリュームは、Unity カタログによって完全に管理されます。 既定では、メタストア、カタログ、またはスキーマ レベルで定義できる 管理されたストレージの場所に格納されます。 管理ストレージの場所をメタストア、カタログ、またはスキーマに割り当てるときは、外部の場所オブジェクトを参照する必要があります。また、それを使用するには十分な特権が必要です。 「Unity Catalog でマネージド ストレージの場所を指定する」および「Unity Catalog のベスト プラクティス」を参照してください。

クラウド ストレージ内のデータへのパスベースのアクセス

Unity Catalog では、クラウド ストレージ URI を使用した外部テーブルと外部ボリュームへのパスベースのアクセスがサポートされていますが、Databricks では、テーブル名を使用してすべての Unity カタログ テーブルを読み書きし、 /Volumes パスを使用してボリューム内のデータにアクセスすることをお勧めします。 ''ボリューム'' は、ほとんどの Azure Databricks ユーザーがクラウド オブジェクト ストレージ内の表形式以外のデータを直接操作するために使用する必要があるセキュリティ保護可能なオブジェクトです。 「Unity カタログ ボリュームとは」を参照してください。

Warnung

Databricks 以外のクライアントを使用するか、Databricks 内からパスベースのアクセスを使用して外部テーブルメタデータを更新した場合、そのメタデータは Unity カタログと状態を自動的に同期しません。 Databricks ではこのようなメタデータ更新に対して推奨されますが、実行する場合は、MSCK REPAIR TABLE <table-name> SYNC METADATA を実行して Unity カタログのスキーマを最新の状態に保つ必要があります。 REPAIR TABLEを参照してください。

Unity カタログでクラウド ストレージへのアクセスを管理するためのワークフロー

Unity カタログを使用してクラウド ストレージへのアクセスを管理するには、次の操作を行います。

  1. クラウド ストレージ パスにアクセスできる、 Azure マネージド ID やサービス プリンシパルなどの長期的なクラウド資格情報を含むストレージ資格情報オブジェクトを作成します。
  2. ストレージ パスとストレージ資格情報オブジェクトを参照する外部の場所オブジェクトを作成します。
  3. 外部テーブル、外部ボリューム、または既定のマネージド ストレージの場所を作成するときに、外部の場所に含まれるパスを参照します。 これは、外部の場所またはサブパスで定義されている正確なパスです。

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

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

特徴 Azure Blob Storage (アジュール・ブロブ・ストレージ) Azure Data Lake Storage OneLake
Unity カタログでサポートされている X X
ファブリック容量の追加購入が必要 X X
外部エンジンからサポートされる操作
  • お読みください
  • 書く
  • お読みください
  • 書く
  • 読み取り (読み取りでは、Azure Data Lake Storage からのデータの読み取りと比較して 3 倍のコストが発生します)。
  • 書き込み (書き込みでは、Azure Data Lake Storage へのデータ書き込みに比べて 1.6 倍のコストが発生します)。

詳細については、OneLake ドキュメントを参照してください。
デプロイメント リージョン リージョン グローバル
認証 Entra ID 共有アクセス署名 Entra ID 共有アクセス署名 保守する
ストレージ イベント X
論理的な削除
アクセス制御 RBAC RBAC、ABAC、ACL RBAC (テーブル/フォルダーのみ、ショートカット ACL はサポートされていません)
暗号化キー X
アクセス層 オンライン アーカイブ ホット、クール、コールド、アーカイブ ホットのみ

次のステップ