Unity カタログを使用してクラウド オブジェクト ストレージとサービスに接続する
この記事では、Unity カタログを使用してデータを操作するために必要なクラウド ストレージ接続の概要と、Unity カタログがクラウド ストレージと外部クラウド サービスへのアクセスを制御する方法について説明します。
Note
お使いのワークスペースが 2023 年 11 月 9 日より前に作成されている場合、ワークスペースで Unity Catalog が有効になっていない可能性があります。 アカウント管理者は、ワークスペースに対して Unity Catalog を有効にする必要があります。 「Unity Catalog のワークスペースを有効にする」を参照してください。
Unity カタログではクラウド ストレージはどのように使用されますか?
Databricks では、Unity カタログを使用して、クラウド オブジェクト ストレージに格納されているすべてのデータへのアクセスを管理することをお勧めします。 Unity Catalog には、クラウド オブジェクト ストレージへのセキュリティ保護された接続を構成するための一連のツールが用意されています。 これらの接続により、次のアクションを完了するためのアクセスが提供されます。
- レイクハウスに生データを取り込む。
- 管理されたテーブルの作成と読み取りおよび非構造化データの管理されたボリュームの Unity カタログで管理されるクラウド ストレージ。
- 表形式のデータと外部ボリュームを含む外部テーブルを登録または作成しますクラウド プロバイダーを使用して管理されるクラウド ストレージ内の非構造化データを含みます。
- 非構造化データの読み取りと書き込み (Unity カタログ ボリュームとして)。
具体的には、Unity カタログでは主に次の 2 つの方法でクラウド ストレージが使用されます。
- Databricks で作成するマネージド テーブルとマネージド ボリューム (非構造化、表形式以外のデータ) の既定の (または "マネージド") ストレージの場所。 これらのマネージド ストレージの場所は、メタストア、カタログ、またはスキーマ レベルで定義できます。 クラウド プロバイダーでマネージド ストレージの場所を作成しますが、そのライフサイクルは Unity カタログによって完全に管理されます。
- 外部テーブルとボリュームが格納されているストレージの場所。 これらは、Azure Databricks からのアクセスが Unity カタログによって管理されているが、データ ライフサイクルとファイル レイアウトがクラウド プロバイダーやその他のデータ プラットフォームを使用して管理されているテーブルとボリュームです。 通常、Azure Databricks の大量の既存のデータを登録するか、Azure Databricks の外部のツールを使用してデータへの書き込みアクセスを要求する場合に、外部テーブルを使用します。
マネージド テーブルと外部テーブルとボリュームの詳細については、「 テーブルとビューとは と Unity カタログ ボリュームとは」を参照してください。
警告
エンド ユーザーに Unity Catalog のマネージド テーブルまたはマネージド ボリュームへのストレージ レベルのアクセス権を付与しないでください。 これを行うと、データのセキュリティとガバナンスが損なわれます。
Azure Data Lake Storage Gen2 の外部ロケーション ストレージへのストレージ レベルの直接のアクセス権をユーザーに付与すると、Unity Catalog によって付与されているアクセス許可や維持されている監査が適用されなくなります。 直接アクセスでは、監査、データ系列のほか、アクセス制御やアクセス許可などの Unity Catalog のその他のセキュリティおよび監視機能がバイパスされます。 管理者には Azure Data Lake Storage Gen2 を介した直接のストレージ アクセスを管理し、Fabric 経由でユーザーに適切なアクセス許可を付与する責任があります。
Databricks のマネージド テーブルを保存しているバケットに対する直接のストレージ レベルの書き込みアクセスを許可するような、すべてのシナリオを避けるようにしてください。 本来は Unity Catalog によって管理されていたストレージで直接、オブジェクトを変更、削除、展開することは、データの破損を招くおそれがあります。
どのクラウド ストレージ プロバイダーがサポートされていますか?
Azure Databricks では、Unity Catalog に登録されているデータおよび AI 資産のクラウド ストレージの場所として、Azure Data Lake Storage Gen2 コンテナーと Cloudflare R2 バケットの両方をサポートしています。 R2 は主に、クラウドとリージョン間の Delta Sharing など、データ エグレス料金を回避する必要があるユース ケースを対象としています。 詳細については、「Cloudflare R2 レプリカを使用するか、ストレージを R2 に移行」を参照してください。
Unity カタログはクラウド ストレージへのアクセスをどのように管理しますか?
Unity Catalog では、テーブルとボリュームを保持する基になるクラウド ストレージへのアクセスを管理するために、 外部の場所というセキュリティ保護可能なオブジェクトを使用します。このオブジェクトは、クラウド ストレージの場所へのパスとその場所にアクセスするために必要な資格情報を定義します。 これらの資格情報は、 torage 資格情報と呼ばれる Unity カタログのセキュリティ保護可能なオブジェクトで定義されます。 Unity カタログで外部の場所のセキュリティ保護可能なリソースへのアクセスを許可および取り消すことで、クラウド ストレージの場所のデータへのアクセスを制御できます。 Unity カタログでストレージ資格情報セキュリティ保護可能なリソースへのアクセスを許可および取り消すことで、外部の場所オブジェクトを作成する機能を制御できます。
詳細については、「 Unity カタログを使用したクラウド ストレージへのアクセスの管理を参照してください。
クラウド ストレージへのパスベースのアクセス
Unity Catalog では、クラウド ストレージ URI を使用した外部テーブルと外部ボリュームへのパスベースのアクセスがサポートされていますが、Databricks では、テーブル名を使用してすべての Unity カタログ テーブルを読み書きし、 /Volumes
パスを使用してボリューム内のデータにアクセスすることをお勧めします。 ''ボリューム'' は、ほとんどの Azure Databricks ユーザーがクラウド オブジェクト ストレージ内の表形式以外のデータを直接操作するために使用する必要があるセキュリティ保護可能なオブジェクトです。 「Unity Catalog ボリュームとは」を参照してください。
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 カタログでは、他のクラウド サービスへのアクセスはどのように管理されますか?
Unity カタログは、 サービス資格情報と呼ばれるセキュリティ保護可能なオブジェクトを使用して、ストレージ以外のサービスへのアクセスを制御します。 サービス資格情報は、ユーザーが Azure Databricks から接続する必要がある外部サービスへのアクセスを提供する長期的なクラウド資格情報をカプセル化します。
サービス資格情報は、Unity カタログで管理されるストレージの場所または外部ストレージの場所として使用されるクラウド ストレージへのアクセスを管理するためのものではありません。 これらのユース ケースでは、「 Unity カタログがクラウド ストレージへのアクセスを制御する方法」の説明に従って、ストレージ資格情報を使用。
詳細については、次の情報を参照してください。
次のステップ
管理者として Unity カタログを使い始めたばかりの場合は、次を参照してください。
新しいユーザーで、ワークスペースで Unity カタログが既に有効になっている場合は、次を参照してください。
クラウド ストレージへのアクセスを管理する方法の詳細については、以下を参照してください。
クラウド サービスへのアクセスを管理する方法の詳細については、以下を参照してください。