クラウド ストレージを Azure Databricks に接続するための外部の場所を作成する
この記事では、クラウド ストレージを Azure Databricks に接続するために Unity Catalog で外部の場所を構成する方法について説明します。
外部の場所によって、Unity Catalog ストレージの資格情報がクラウド オブジェクト ストレージ コンテナーに関連付けられます。 外部の場所は、カタログとスキーマのマネージド ストレージの場所を定義するため、および外部テーブルと外部ボリュームの場所を定義するために使用されます。
Azure Data Lake Storage Gen2 ストレージ コンテナーまたは Cloudflare R2 バケット内のストレージを参照する外部の場所を作成できます。
外部の場所は、カタログ エクスプローラー、Databricks CLI、ノートブックまたは Databricks SQL クエリの SQL コマンド、または Terraform を使用して作成できます。
Note
ボリュームを定義すると、ボリューム パスの下のデータへのクラウド URI アクセスは、そのボリュームのアクセス許可によって管理されます。
始める前に
前提条件:
Azure Databricks で外部の場所オブジェクトを作成する前に、外部の場所として使用する Azure Data Lake Storage Gen2 ストレージ コンテナーまたは Cloudflare R2 バケットを作成する必要があります。
外部の場所として使う Azure Data Lake Storage Gen2 ストレージ アカウントには、階層型名前空間が必要です。
クラウド ストレージの場所のパスへのアクセスを許可するストレージ資格情報が Azure Databricks で定義されている必要があります。 「Azure Data Lake Storage Gen2 に接続するためのストレージ資格情報を作成する」と「Cloudflare R2 に接続するためのストレージ資格情報を作成する」を参照してください。
アクセス許可の要件:
- メタストアと、外部の場所で参照されているストレージ資格情報の両方に対する
CREATE EXTERNAL LOCATION
特権が必要です。 メタストア管理者は、既定でメタストアに対するCREATE EXTERNAL LOCATION
が付与されています。
カタログ エクスプローラーを使用して外部の場所を作成する
カタログ エクスプローラーを使って、外部の場所を手動で作成できます。
アクセス許可と前提条件:開始する前にをご覧ください。
外部の場所を作成するには:
メタストアに接続されているワークスペースにログインします。
サイドバーで カタログ をクリックします。
[+ 追加] ボタンをクリックし、[外部の場所の追加] を選択します。
外部の場所の名前を入力してください。
必要に応じて、既存のマウント ポイントからコンテナーのパスをコピーします (Azure Data Lake Storage Gen2 コンテナーのみ)。
既存のマウント ポイントからコピーしない場合は、URL フィールドを使って、外部の場所として使うストレージ コンテナーまたは R2 バケット パスを入力してください。
たとえば、
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
またはr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
です。場所へのアクセスを付与するストレージの資格情報を選択してください。
(省略可能)ユーザーに外部の場所への読み取り専用アクセス権を付与する場合は、[詳細オプション] をクリックし、[読み取り専用] を選択してください。 詳細については、「外部の場所を読み取り専用としてマークする」を参照してください。
Create をクリックしてください。
外部の場所を使用するアクセス許可を付与します。
外部の場所を使用するすべてのユーザーに、アクセス許可を付与する必要があります。
- 外部の場所を使用して、マネージド ストレージの場所をメタストア、カタログ、またはスキーマに追加するには、
CREATE MANAGED LOCATION
権限を付与してください。 - 外部テーブルまたはボリュームを作成するには、
CREATE EXTERNAL TABLE
またはCREATE EXTERNAL VOLUME
を付与してください。
カタログ エクスプローラーを使用してアクセス許可を付与するには:
- 外部の場所の名前をクリックして、詳細ウィンドウを開いてください。
- [アクセス許可] タブで [付与] をクリックします。
- [
<external location>
の許可] ダイアログの [プリンシパル] フィールドでユーザー、グループ、またはサービス プリンシパルを選択し、付与する権限を選択してください。 - [許可] をクリックします。
- 外部の場所を使用して、マネージド ストレージの場所をメタストア、カタログ、またはスキーマに追加するには、
SQL を使って外部の場所を作成する
SQL を使用して外部の場所を作成するには、ノートブックまたは SQL クエリ エディターで次のコマンドを実行します。 プレースホルダー値を置き換えます。
アクセス許可と前提条件:開始する前にをご覧ください。
<location-name>
: 外部の場所の名前。location_name
にハイフン (-
) などの特殊文字が含まれている場合は、バッククォート (` `
) で囲む必要があります。 「名前」を参照してください。<bucket-path>
: この外部の場所によってアクセスを付与するクラウド テナント内のパス。 たとえば、abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
またはr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
です。<storage-credential-name>
: ストレージ コンテナーまたはバケット パスに対する読み取りと書き込みを認可するストレージ資格情報の名前。 ストレージ資格情報名にハイフン (-
) などの特殊文字が含まれている場合は、バッククォート (` `
) で囲む必要があります。
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
次のステップ
- 外部の場所を使用するためのアクセス許可を他のユーザーに付与します。 「外部の場所を管理する」を参照してください。
- 外部の場所を使用して、マネージド ストレージの場所を定義します。 「Unity Catalog の管理されたストレージの場所の指定」を参照してください。
- 外部の場所を使用して外部テーブルを定義します。 「外部テーブルの作成」を参照してください。
- 外部の場所を使用して外部ボリュームを定義します。 「ボリュームを作成して操作する」を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示