はじめに
本記事では、Visual Studio Codeと2つの拡張機能(ClineおよびDatabricks extension)を用いたDatabricksのローカル開発環境の整備に関する情報や簡単な手順をまとめる。実際の動作イメージは以下GIFの通り。
環境前提
本記事は以下の環境を前提とする。
- MacBook Pro (Apple M2 Pro)
- macOS: Sonoma 14.7.1
- Visual Studio Code
- バージョン: 1.96.0
- AWS CLI (
aws --version
)- aws-cli/2.15.24 Python/3.11.6 Darwin/23.6.0 exe/x86_64 prompt/off
- Databricks CLI (
databricks --version
)- Databricks CLI v0.224.1
- pyenv
- 2.4.11
参考
VS CodeとDatabricksを用いた開発フローについて、以下の記事が分かりやすい。
VS CodeのDatabricks拡張のセットアップ手順について、以下の記事はWindows PCを対象にしたものだが、大変参考になる。
以下のXポストを見て、Clineを使ってみたくなった。
ということで、以下の構成のセットアップ手順のメモをまとめていく。
- VS CodeのCline拡張セットアップ
- Amazon Bedrockを利用
- Databricksのサンプルノートブックの作成
- VS CodeのDatabricks拡張セットアップ
- Databricks on AWSのワークスペースを作成
- VS Codeから接続、コードを実行
- DatabricksワークスペースでGitHubリポジトリの更新
1. VS CodeのCline拡張セットアップ
以下の記事を参考。
Amazon Bedrockの設定
- 本記事では、東京リージョン (ap-northeast-1) のClaude 3.5 Sonnet v1 (モデルID
anthropic.claude-3-5-sonnet-20240620-v1:0
) を利用するため、アクセス許可があることを確認する。ない場合はアクセス許可をリクエストする- 備考:本記事執筆時点 (2025-01-07) ではClaude 3.5 Sonnet
v2 (モデルIDanthropic.claude-3-5-sonnet-20241022-v2:0
) はオレゴンリージョン (us-west-2) でのみ利用可能 - AWS リージョン別のモデルサポート - Amazon Bedrock
- 備考:本記事執筆時点 (2025-01-07) ではClaude 3.5 Sonnet
- 任意のIAMユーザーを作成、IAMポリシー
AmazonBedrockFullAccess
をアタッチ - 当該IAMユーザーのアクセスキーID、シークレットアクセスキーをダウンロードし、AWS CLIのデフォルトプロファイル (
~/.aws/credentials
>[default]
) に保存する- 備考:ClineのSettingsでアクセスキーIDやシークレットアクセスキーの入力が可能なので、AWS CLIのデフォルトプロファイルに保存するかどうかは好みの問題
Clineのインストール
VS CodeのExtensionで、Clineと検索してインストールするだけ。
Clineの設定
歯車アイコンを押し、以下を選択・入力し、[Done]をクリックする。
- API Provider: AWS Bedrock
- AWS Region: ap-northeast-1
- Model:
anthropic.claude-3-5-sonnet-20240620-v1:0
AWSの認証情報はAWS CLIのデフォルトプロファイルから読み取るため、アクセスキー/シークレットキー/セッショントークンは空白でOK。
Custom Instructionsは好みの内容を設定する。日本語で返して欲しい場合にはSpeak in Japanese
などと入れておくと良い。
Databricksのサンプルノートブックの作成
Auto-approve設定は好み、まずはReadぐらいを設定しておく。Clineでサンプルノートブック作成のタスクを開始する。
Databricksのサンプルノートブックを作成して。displayを実施するだけのシンプルな内容で良いです。
以下のように簡単なノートブックが作成される。ちゃんとファイルの先頭に# Databricks notebook source
という行が追加されており、Databricksワークスペースにインポートするとノートブックとして認識される。内容も問題ないため[Save]をクリック。
これでClineのセットアップは完了。
2. VS CodeのDatabricks拡張セットアップ
基本的な流れは以下を参考。
Databricks on AWSワークスペースを作成
テスト用のDatabricksワークスペースをon AWSで作成する。Azure DatabricksやDatabricks on GCPでも手順的には問題ない。
Databricksアカウントコンソールで[ワークスペースを作成]をクリック、任意のワークスペース名などを入力して作成する。
Databricks CLIにプロファイルを登録
databricks configure
を実行、または直接~/.databrickscfg
を編集し、ワークスペースURLと認証方式を記載する。
[DEFAULT]
host = https://example.cloud.databricks.com/
auth_type = databricks-cli
Databricks拡張のインストール
VS CodeのExtensionで、Databricksと検索してインストールするだけ。拡張機能IDはdatabricks.databricks
Databricksプロジェクトの作成
VS Codeの左側メニューにDatabricksのアイコンが追加されるのでクリックし、以下を実施。
- [Create a new Databricks Project]をクリック
- ワークスペースを聞かれるので[DEFAULT]を選択
- 認証方式を聞かれるので[DEFAULT] (Authenticate using OAuth (User to Machine)) を選択
- ブラウザが開いて
Authenticated
と表示されれば認証成功
- ブラウザが開いて
- 任意のパスを指定
Databricksプロジェクトの作成 (DAB)
上記を実施するとVS CodeのターミナルにDatabricks Asset Bundles (DAB) のInitが表示される。
-
default-python
を選択 - 任意のプロジェクト名 (
my_project
など)を入力 - Include a stub (sample) notebook: [no]を選択
- Include a stub (sample) DLT: [no]を選択
- Include a stub (sample) Python package: [no]を選択
- コマンドパレットで作成したプロジェクト名が表示されるのでクリック、VS Codeがそのプロジェクトを開く
サンプルノートブックをDatabricksプロジェクトに配置
上記で作成したサンプルノートブックをsrc
フォルダなどに配置する。
クラスターの設定
以下を実施。
Pythonバージョン確認・アップデート
ターミナルでpyenvでPythonのバージョン確認、3.10未満の場合は新しいものを入れる。
%pyenv versions
system
3.11.7
* 3.12.3 (set by /Users/hiroyuki.nakazato/.pyenv/version)
pyenv install --list
pyenv install 3.12.5
pyenv global 3.12.5
Python環境設定
Databricks拡張のコードの実行のPython Environmentの部分がエラーになるので、Pythonの環境を設定する。
- Create new environment > Venvを選択
- Python 3.10以上を選択
- インストールする依存関係でrequirement-dev.txtを選択
- Databricks拡張の表示でPython Environmentのエラーが解消されていればOK
セルの実行
.py
のノートブックを開くと、[セルの実行]が表示されるのでクリックする。
ipykernel
パッケージのインストールが求められるので、インストールを実施する。
次の画面のように、Databricksクラスターで実行したセルの結果がVS Codeに表示される。
以上です。