概要
Windows 環境の Databricks CLI(versions 0.200) にて、ローカルから Databricks Repos へのコードの同期方法を共有します。通常であれば Git 連携を実施しますが、Git 連携を行えない状況があったため 本記事の検証を検討しました。
次の手順を説明します。
- Databricks 環境の準備
- Databricks CLI 環境の構築
- Databricks CLI による コードの連携
Azure CLI 認証により実行したい場合には、次の記事を参考に本記事の手順を変更してください。
実施手順
1. Databricks 環境の準備
1-1. Databricks Workspace にログイン後、Repos
を右クリック -> create
-> Folder
を選択して、フォルダ(フォルダ名例:databricks_pipelines
)を作成する。
1-2. 作成したディレクトリ上にて、右側にあるADD
-> Repo
を選択後、表示されたAdd Repo
ウィンドウにてCreate repo by cloning a Git Repository
のチェックを外し、Repository name
に想定の名称(例:db_pipeline_01
) を入力 -> Create Repo
を選択する。
1-3. 空の Repo
領域が作成されたことを確認する。
1-4. 右上にある User Settings
-> Generate new token
--> Generate
を選択し、Databricks CLI を利用するための Databricks Token を取得する。
2. Databricks CLI 環境の構築
2-1. Releases · databricks/cli (github.com) から、ローカル環境に応じたインストールファイル(Windows(x86)の場合には、 databricks_cli_#.###.#_windows_386.zip
)をダウンロードする。
引用元:Releases · databricks/cli (github.com)
2-2. ダウンロードファイルの圧縮展開後、所定のディレクトリ(例:C:\databricks_cli
)上に展開したファイルを配置を実行する。
2-3. PowerShell 起動後、次のコマンドが想定通りに動作することを確認する。
Set-Location -Path C:\databricks_cli
./databricks.exe -v
3. Databricks CLI による コードの連携
3-1. Databricks CLI の認証情報の設定
次のコマンドを実行すし、Personal Access Token
に取得済みの Databricks Token を入力する。host を、Databricks Workspace の URL (例:https://adb-################.#.azuredatabricks.net
)に変更する必要あり。
./databricks.exe configure --host {host}
3-2. Databricks CLI の認証情報の確認
ユーザーディレクトリ配下(C:\Users\{UserName}
)にある.databrickscfg
ファイルを開き、想定通りに設定されていることを確認する。
$UserName = $env:UserName
$Path = "C:\Users\$UserName\"
explorer $Path
3-3. Databricks CLI にて Repos を参照できることを確認
./databricks.exe workspace list /Repos/databricks_pipelines
3-4. ローカル環境にあるソースコード(例C:\databricks_cli\src
上のコード群を配置)を Databricks Repos 上に配置
./databricks.exe workspace import-dir C:\databricks_cli\src /Repos/databricks_pipelines/db_pipeline_01 --overwrite
3-5. Databricks Repos 上にファイルがあることを確認
3-6. 必要に応じて、.databrickscfg
ファイルを削除
$UserName = $env:UserName
$Path = "C:\Users\$UserName\"
explorer $Path
課題
課題1. sync コマンドをフォルダ(例/Repos/{folder_name}
)上に同期できない事象への対応方法
2023 年 6 月 26 日時点で sync コマンドを自分のアカウント以外の Repos ディレクトリに実行すると、エラーとなってしまうため、sync コマンドを利用しないこととしました。
./databricks.exe sync C:\databricks_cli\src /Repos/databricks_pipelines/db_pipeline_01
Error: path must be nested under /Users/{user_name} or /Repos/{user_name}