Azure Databricks: 3-1. DBFSにBlob Storageをマウント

LINEで送る
Pocket

前回記事

Azure Databricks: 1. リソースの作成
Azure Databricks: 2. Databricksの基本事項

ストレージアカウントの作成

※既存のBlob Storageをマウントする場合は「DBFSにBlob Storageをマウント」から操作を実行します
Azureポータルの「リソースの作成」をクリックし、一覧から「ストレージアカウント」を選択して作成を開始します。

作成に必要な情報を入力します。設定内容は任意ですが、「リソースグループ」と「場所」はAzure Databricksと同じものを指定します。設定が出来たら「次: 詳細 >」をクリックします。

「詳細」設定に関してはデフォルトのままで、「確認および作成」をクリックします。

設定内容に誤りがないことを確認して、「作成」をクリックします。

しばらく待機し、作成が完了したら作成したリソースに移動します。

マウント時のパラメータとしてストレージアカウントの「アクセスキー」必要となるため、メニューの「アクセスキー」を開いて、「key1」、「key2」いずれかの「キー」をコピーして控えておきます。

Blobコンテナーの作成とファイルの配置

ストレージアカウントのメニューの「概要」に戻り、「サービス」の「BLOB」をクリックします。

「+コンテナー」をクリックして、「名前」を任意のコンテナ名、「パブリックアクセスレベル」を「プライベート」としてコンテナを作成します。

ファイルを配置するため作成したコンテナーをクリックし、コンテナーを開きます。

「↑アップロード」をクリックして、ファイルを選択し、「アップロード」をクリックします。

アップロードが完了するとコンテナーにファイルのリストが表示されます。

DBFSにBlob Storageをマウント

Blobコンテナーのマウント

Blob Storageのマウントは下記のスクリプトを使用します。(ストレージ情報、マウント先DBFSディレクトリは作成したリソースに合わせて変更してください。)

一度マウントすると、Clusterを停止、変更してもマウント状態が維持されます。
マウントされた状態で再度操作を実行するとエラーが発生するため、マウント状態をチェックするか、スクリプトをコメントアウトしてエラーの回避します。


下記スクリプトでマウントされているディレクトリを確認します。
Blob Storageをマウントしたディレクトリがリストで確認できます。

マウントされたディレクトリの確認

下記スクリプトを使用してマウントしたディレクトリ内のファイルを表示します。

※ マウントしたディレクトリにファイルが存在しないとエラーが発生します。

Blobコンテナーのアンマウント

ストレージのマウントを解除する場合は下記スクリプトを使用します。

秘密情報の安全な管理

秘密情報をスクリプト上に記載することはセキュリティ上の懸念となります。

ストレージアカウントキーのような秘密情報を安全に管理するため、Azure Key Vaultの使用が推奨されます。

Azure Key Vaultのキーコンテナー作成

Azureポータルの「リソースの作成」で「Key Vault」を検索し、検索候補の「Key Vault」をクリックして作成を開始します。

「キーコンテナーの作成」に必要な情報を入力します。「名前」は任意の名称、「リソースグループ」、「場所」Azure Databricksと同じものを指定します。その他の設定はデフォルトのままとします。

作成が完了したらリソースに移動します。

キーの登録

作成したキーコンテナーにストレージアカウントキーを登録します。
作成したリソースのメニューから「シークレット」を開いて「+生成/インポート」をクリックします。

「アップロードオプション」を「手動」として、「名前」、「値」に任意の名称とストレージアカウントキーを入力し、「作成」をクリックします。

DatabricksにAzure Key Vaultを登録

キーコンテナーのメニューから「プロパティ」を開き、「DNS名」と「リソースID」をコピーして控えておきます。
Databricksワークスペースのホーム画面を開き、URLに「#secrets/createScope」を追加して「Create Secret Scope」のページを開きます。
「Scope Name」に任意のスコープ名を入力し、「DNS Name」、「Resource ID」に作成したキーコンテナーの「プロパティ」で取得した「DNS名」、「リソースID」を入力します。
Databricks作成時にStandard Planを選択した場合、「Manage Principal」は「All Users」のみ選択できます。
入力したスコープ名はキーの取得に必要となるため控えておきます。

Notebookを開き、下記のスクリプトでスコープのリストを確認します。
スコープが登録されていると、登録したスコープがリストにあることが確認できます。

BlobコンテナーのマウントにKey Vaultのキーを使用する場合は、Blob Storageの情報を下記のように書き換えます。

参考

Databricks Documentation – Data Sources – Azure Blob Storage
クイックスタート:Azureポータルを使用してAzure Key Vaultから秘密を設定および取得する

LINEで送る
Pocket