メインコンテンツまでスキップ

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

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

注記

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

Unity Catalog はクラウドストレージをどのように使用しますか?

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

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

具体的には、Unity Catalog は主に 2 つの方法でクラウド ストレージを使用します。

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

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

警告

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

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

  • Unity Catalog で確立されたアクセス制御は、S3 または R2 バケットに直接アクセスできるユーザーによって回避される可能性があります。
  • 監査、リネージ、およびその他のUnity Catalogのモニタリング機能は、直接アクセスを捕捉しません。
  • データのライフサイクルが崩壊します。つまり、Databricks内のテーブルを変更、削除、または展開すると、ストレージに直接アクセスできるコンシューマーが機能しなくなり、Databricksの外部に書き込むとデータが破損する可能性があります。

どのクラウドストレージプロバイダーがサポートされていますか?

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

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

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

詳細については、「 Unity Catalog を使用してクラウド ストレージへのアクセスを管理する」を参照してください。

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

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

警告

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

Unity Catalog は他のクラウド サービスへのアクセスをどのように管理しますか?

Unity Catalog は、 サービス資格情報 と呼ばれるセキュリティ保護可能なオブジェクトを使用した非ストレージ サービスへのアクセスを管理します。 サービス資格情報は、ユーザーが Databricks から接続する必要がある外部サービスへのアクセスを提供する長期的なクラウド資格情報をカプセル化します。

サービスの資格情報は、Unity Catalog の管理されたストレージの場所または外部ストレージの場所として使用されるクラウド ストレージへのアクセスを管理するためのものではありません。 これらのユース ケースでは、「 Unity Catalog がクラウド ストレージへのアクセスをどのように管理しますか?」で説明されているように、ストレージ資格情報を使用します。

注記

サービスの資格情報はUnity Catalog 、インスタンスプロファイル の 代替手段であり、アクセスが特定のコンピュートリソースに関連付けられるのではなく、ユーザー、グループ、またはサービスプリンシパルに関連付けられるという利点があります。

詳細については、以下を参照してください。

次のステップ

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

新しいユーザーで、ワークスペースが既に Unity Catalog に対して有効になっている場合は、以下を参照してください。

クラウド ストレージへのアクセスを管理する方法の詳細については、以下を参照してください。

クラウド サービスへのアクセスを管理する方法の詳細については、以下を参照してください。