クラウド ストレージを Databricks に接続するための外部ロケーションを作成する
この記事では、クラウド ストレージを Databricks に接続するためにUnity Catalogで外部ロケーションを構成する方法について説明します。
外部ロケーション Unity Catalog ストレージの資格情報をクラウド オブジェクト ストレージ コンテナーに関連付けます。 外部ロケーションは、カタログおよびスキーマの管理対象ストレージ・ロケーションの定義、および外部表および外部ボリュームのロケーションの定義に使用されます。
Google Cloud Storage (GCS) または Cloudflare R2 バケット内のストレージを参照する外部ロケーションを作成できます。
外部ロケーションは、カタログエクスプローラー、Databricks CLI、ノートブックの SQL コマンド、または Databricks SQL クエリーを使用して作成できます。
注:
ボリュームを定義すると、ボリューム パスの下のデータへのクラウド URI アクセスは、ボリュームの権限によって管理されます。
始める前に
前提条件:
Databricks で外部ロケーション オブジェクトを作成する前に、外部ロケーションとして使用する Google Cloud Storage (GCS) または Cloudflare R2 バケットを作成する必要があります。
クラウド ストレージの場所のパスへのアクセスを許可する、Databricks で定義されたストレージ資格情報が必要です。 「Google Cloud Storage に接続するためのストレージ認証情報を作成する」および「Cloudflare R2 に接続するためのストレージ認証情報を作成する」を参照してください。
権限の要件:
メタストアと外部ロケーションで参照されるストレージ認証情報の両方に対する
CREATE EXTERNAL LOCATION
権限が必要です。 メタストア管理者は、デフォルトでメタストアにCREATE EXTERNAL LOCATION
を持ちます。
「カタログエクスプローラ」(Catalog Explorer) を使用した外部ロケーションの作成
カタログ エクスプローラーを使用して、外部ロケーションを手動で作成できます。
アクセス許可と前提条件: 「開始する前に」を参照してください。
外部ロケーションを作成するには:
メタストアに接続されているワークスペースにログインします。
サイドバーで [ カタログ ] をクリックします 。
[ + 追加 ] ボタンをクリックし、[ 外部ロケーションの追加] を選択します。
外部ロケーション名を入力します。
必要に応じて、既存のマウント ポイントからバケット パスをコピーします (GCS バケットのみ)。
既存のマウント ポイントからコピーしていない場合は、 URLフィールドを使用して、外部ロケーションとして使用するバケット パスを入力します。
たとえば、
gs://mybucket/<path>
やr2://mybucket@my-account-id.r2.cloudflarestorage.com/<path>
などです。外部ロケーションへのアクセスを許可するストレージ資格情報を選択します。
(オプション)ユーザーに外部ロケーションへの読み取り専用アクセス権を付与する場合は、[ 詳細オプション ] をクリックして [ 読み取り専用] を選択します。 詳しくは、「 外部ロケーションを読み取り専用にする」をご覧ください。
「 作成」をクリックします。
外部ロケーションの使用権限を付与します。
すべてのユーザーが外部ロケーションを使用するには、アクセス許可を付与する必要があります。
外部ロケーションを使用して、メタストア、カタログ、またはスキーマに管理されたストレージの場所を追加するには、
CREATE MANAGED LOCATION
特権を付与します。外部テーブルまたはボリュームを作成するには、
CREATE EXTERNAL TABLE
またはCREATE EXTERNAL VOLUME
を付与します。
「カタログエクスプローラ」(Catalog Explorer) を使用してアクセス権を付与するには
外部ロケーション名をクリックして、詳細ウィンドウを開きます。
[ アクセス許可 ] タブで、[ 許可] をクリックします。
「
<external location>
時に付与」ダイアログで、「プリンシパル」フィールドでユーザー、グループ、またはサービスプリンシパルを選択し、付与する権限を選択します。[付与] をクリックします。
SQLを使用した外部ロケーションの作成
SQL を使用して外部ロケーションを作成するには、ノートブックまたは SQL クエリ エディターで次のコマンドを実行します。 プレースホルダー値を置き換えます。
アクセス許可と前提条件: 「開始する前に」を参照してください。
<location-name>
: 外部ロケーションの名前。location_name
にハイフン(-
)などの特殊文字が含まれている場合は、バッククォート(` `
)で囲む必要があります。「 名前」を参照してください。
<bucket-path>
: この外部ロケーションがアクセスを許可するクラウド テナント内のパス。 たとえば、gs://mybucket
やr2://mybucket@my-account-id.r2.cloudflarestorage.com
などです。<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 で管理対象ストレージの場所を指定する」を参照してください。
外部ロケーションを使用して外部テーブルを定義します。 「外部テーブルの作成」を参照してください。
外部ロケーションを使用して外部ボリュームを定義します。 「ボリュームの作成と操作」を参照してください。