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は、Unity Catalogに登録されたデータ資産のクラウドストレージの場所として、AWS S3とCloudflare R2バケットの両方をサポートします。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ボリュームとはを参照してください。
Unity Catalog は他のクラウド サービスへのアクセスをどのように管理しますか?
Unity Catalog は、 サービス資格情報と呼ばれるセキュリティ保護可能なオブジェクトを使用した非ストレージ サービスへのアクセスを管理します。 サービス資格情報は、ユーザーが Databricks から接続する必要がある外部サービスへのアクセスを提供する長期的なクラウド資格情報をカプセル化します。
サービスの資格情報は、Unity Catalog のマネージドストレージロケーションまたは外部ストレージの場所として使用されるクラウド ストレージへのアクセスを管理するためのものではありません。 これらのユース ケースでは、「 Unity Catalog がクラウド ストレージへのアクセスをどのように管理しますか?」で説明されているように、ストレージ資格情報を使用します。
注:
サービスの資格情報はUnity Catalog 、インスタンスプロファイル の 代替手段であり、アクセスが特定のコンピュートリソースに関連付けられるのではなく、ユーザー、グループ、またはサービスプリンシパルに関連付けられるという利点があります。
詳細については、以下を参照してください。