この記事では、Unity カタログの外部の場所を構成して、DBFS ルート ストレージの場所へのアクセスを制御する方法について説明します。 Databricks では DBFS ルート ストレージにデータを格納しないことをお勧めしますが、従来のプラクティスが原因でワークスペースで保存される場合があります。
外部の場所 は、ストレージ資格情報をクラウド オブジェクト ストレージ コンテナーに関連付ける Unity カタログセキュリティ保護可能なオブジェクトです。 外部の場所は、マネージド テーブルとボリュームのマネージド ストレージの場所を定義し、外部テーブルと外部ボリュームを含むストレージの場所へのアクセスを制御するために使用されます。
ワークスペースローカルの従来の Azure Databricks Hive メタストアが DBFS ルートにデータを格納し、チームが Unity カタログを使用して Hive メタストア テーブルを操作できるように、レガシ Hive メタストアをフェデレーションする場合は、外部の場所を作成する必要があります。 Hive メタストア フェデレーションの詳細については、
開始する前に
DBFS ルートの外部の場所を作成するには、Unity カタログで定義された ストレージ資格情報 を使用して、DBFS ルートのクラウド ストレージの場所にアクセスできるようにする必要があります。 まだアカウントをお持ちでない場合は、外部の場所を作成する過程でシステムがアカウントを作成します。
アクセス許可の要件:
メタストアに対する
CREATE STORAGE CREDENTIAL
とCREATE EXTERNAL LOCATION
の特権が必要です。 メタストア管理者には、既定でこれらの特権があります。手記
DBFS ルートのストレージの場所のストレージ資格情報が既に存在する場合、外部の場所を作成するユーザーは
CREATE STORAGE CREDENTIAL
必要はありませんが、ストレージ資格情報とメタストアの両方でCREATE EXTERNAL LOCATION
する必要があります。外部の場所の作成時にシステムでストレージ資格情報を作成するには、ワークスペース管理者である必要があります。
DBFS ルート ストレージの場所へのアクセスを許可するストレージ資格情報が既に存在し、ストレージ資格情報とメタストアの両方に
CREATE EXTERNAL LOCATION
がある場合は、ワークスペース管理者である必要はありません。
外部の場所を作成する
カタログ エクスプローラーを使用して、DBFS ルートの外部の場所を作成できます。
サイドバーで、[データ] アイコンをクリック
カタログ。
[外部データ >] と [外部の場所を作成する] をクリックします。
外部の場所の名前を入力します。
[ストレージの種類] で、[DBFS ルート] を選択します。
URL フィールドとサブパス フィールドには、DBFS ルートへのクラウド ストレージ パスが設定されます。
重要
DBFS ルートの外部の場所を作成するときは、バケット全体へのパスではなく、DBFS ルートの場所へのサブパスを使用する必要があります。 URL とサブパスには、Hive メタストア テーブルの既定のストレージ場所である
user/hive/warehouse
が事前に設定されています。 DBFS ルート内のデータに対するよりきめ細かなアクセス制御が必要な場合は、DBFS ルート内のサブパス用に個別の外部の場所を作成できます。警告
DBFS ルートは、Azure Data Lake Storage ではなく Azure Blob Storage に格納される場合があります。 これらの場所には、ディレクトリまたはファイル レベルの制御を許可しない
wasb
ドライバーを使用してアクセスします。 そのため、Unity Catalog では、コンテナー レベルでのみアクセス制御を適用できます。つまり、この外部の場所にアクセスするユーザーは、専用アクセス モード (以前のシングル ユーザー アクセス モード) でコンピューティング リソースを使用している場合、同じコンテナー内の他のデータにアクセスできる可能性があります。 これを回避するには、標準アクセス モード (以前の共有アクセス モード) コンピューティング リソース、SQL ウェアハウス、またはサーバーレス コンピューティングの使用を強制します。DBFS ルート クラウド ストレージの場所へのアクセスを許可するストレージ資格情報を選択するか、定義されていない場合は、[+ 新しいストレージ資格情報の作成] をクリックします。
外部の場所を保存すると、ストレージ資格情報が自動的に作成されます。
(省略可能)コメントを追加します。
(省略可能) 詳細オプション をクリックし、フォールバックモード を有効にします。
フォールバック モードは、従来のワークロード移行シナリオを対象としています。 外部の場所でフォールバック モードを有効にするを参照してください。
[作成] をクリックします。
[アクセス許可] タブに移動して、外部の場所を使用するアクセス許可を付与します。
- [許可] をクリックします。
- プリンシパル フィールドでユーザー、グループ、またはサービス プリンシパルを選択し、付与する権限を選択します。
- [許可] をクリックします。
(省略可能)この外部の場所にアクセスできるワークスペースを設定します。
既定では、この Unity カタログ メタストアを使用するすべてのワークスペースのユーザーに、この場所のデータへのアクセス権を付与できます。 特定のワークスペースへのアクセスを制限できます。 Databricks では、DBFS ルートが存在するワークスペースへのアクセスを制限することをお勧めします。
外部の場所を 1 つ以上のワークスペースにバインドするを参照してください。