クラウド ストレージを Azure Databricks に接続するための外部の場所を作成する

この記事では、クラウド ストレージを Azure Databricks に接続するために Unity Catalog で外部の場所を構成する方法について説明します。

外部の場所によって、Unity Catalog ストレージの資格情報がクラウド オブジェクト ストレージ コンテナーに関連付けられます。 外部の場所は、カタログとスキーマのマネージド ストレージの場所を定義するため、および外部テーブルと外部ボリュームの場所を定義するために使用されます。

Azure Data Lake Storage Gen2 ストレージ コンテナーまたは Cloudflare R2 バケット内のストレージを参照する外部の場所を作成できます。

外部の場所は、カタログ エクスプローラー、Databricks CLI、ノートブックまたは Databricks SQL クエリの SQL コマンド、または Terraform を使用して作成できます。

Note

ボリュームを定義すると、ボリューム パスの下のデータへのクラウド URI アクセスは、そのボリュームのアクセス許可によって管理されます。

始める前に

前提条件:

アクセス許可の要件:

  • メタストアと、外部の場所で参照されているストレージ資格情報の両方に対する CREATE EXTERNAL LOCATION 特権が必要です。 メタストア管理者は、既定でメタストアに対する CREATE EXTERNAL LOCATION が付与されています。

カタログ エクスプローラーを使用して外部の場所を作成する

カタログ エクスプローラーを使って、外部の場所を手動で作成できます。

アクセス許可と前提条件:開始する前にをご覧ください。

外部の場所を作成するには:

  1. メタストアに接続されているワークスペースにログインします。

  2. サイドバーで カタログ アイコンカタログ をクリックします。

  3. [+ 追加] ボタンをクリックし、[外部の場所の追加] を選択します。

  4. 外部の場所の名前を入力してください。

  5. 必要に応じて、既存のマウント ポイントからコンテナーのパスをコピーします (Azure Data Lake Storage Gen2 コンテナーのみ)。

  6. 既存のマウント ポイントからコピーしない場合は、URL フィールドを使って、外部の場所として使うストレージ コンテナーまたは R2 バケット パスを入力してください。

    たとえば、abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> または r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path> です。

  7. 場所へのアクセスを付与するストレージの資格情報を選択してください。

  8. (省略可能)ユーザーに外部の場所への読み取り専用アクセス権を付与する場合は、[詳細オプション] をクリックし、[読み取り専用] を選択してください。 詳細については、「外部の場所を読み取り専用としてマークする」を参照してください。

  9. Create をクリックしてください。

  10. 外部の場所を使用するアクセス許可を付与します。

    外部の場所を使用するすべてのユーザーに、アクセス許可を付与する必要があります。

    • 外部の場所を使用して、マネージド ストレージの場所をメタストア、カタログ、またはスキーマに追加するには、CREATE MANAGED LOCATION 権限を付与してください。
    • 外部テーブルまたはボリュームを作成するには、CREATE EXTERNAL TABLE または CREATE EXTERNAL VOLUME を付与してください。

    カタログ エクスプローラーを使用してアクセス許可を付与するには:

    1. 外部の場所の名前をクリックして、詳細ウィンドウを開いてください。
    2. [アクセス許可] タブで [付与] をクリックします。
    3. [<external location>の許可] ダイアログの [プリンシパル] フィールドでユーザー、グループ、またはサービス プリンシパルを選択し、付与する権限を選択してください。
    4. [許可] をクリックします。

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>'];

次のステップ