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 に接続するための外部の場所を作成する」を参照してください。

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

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

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

Note

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

次のステップ

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

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