DatabricksにおけるRツールキットbricksterを動かしてみる

こちらのツールキットの存在は知っていましたが、動かしたことがありませんでした。

https://github.com/databrickslabs/brickster

[こちらの記事](https://qiita.com/taka_yayoi/items/ee554f182bce6c362989)を翻訳してみて、改めて動かしてみようと思いました。ちなみに、10年ほど前にデータ分析を始めた際に最初に触れた言語はRでした。データフレームに感動したものです。

CRANでも公開されているので、RStudioから簡単にインストールできます。

![Screenshot 2025-02-24 at 10.44.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/bf08e786-9674-46f5-88af-24bb2e448dde.png)

# クイックスタート

まずは、こちらの[クイックスタート](https://github.com/databrickslabs/brickster?tab=readme-ov-file#quick-start)を動かします。ここでは認証にパーソナルアクセストークンを使ってます。[こちら](https://databrickslabs.github.io/brickster/articles/setup-auth.html)にあるように、推奨はOAuth user-to-machine (U2M)認証です。

```r
library(brickster)

# アクセス先のDatabricksワークスペースのホスト名、パーソナルアクセストークンを指定します
Sys.setenv(DATABRICKS_HOST = "https://xxxxxx.cloud.databricks.com/")
Sys.setenv(DATABRICKS_TOKEN = "dapi...")
Sys.setenv(DATABRICKS_WSID = "xxxxxx")

# すべてのSQLウェアハウスを一覧
warehouses <- db_sql_warehouse_list()

# ボリュームから`newly_confirmed_cases_daily.csv`を読み込む
file <- db_volume_read(
  path = "/Volumes/takaakiyayoi_catalog/japan_covid_analysis/covid_data/newly_confirmed_cases_daily.csv",
  tempfile(pattern = ".csv")
)
volume_csv <- readr::read_csv(file)
```

ウェアハウスがリストに格納されます。

![Screenshot 2025-02-24 at 11.16.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/40289e58-4525-4dbc-85a5-9917c76cd8be.png)

CSVファイルの中身を参照できます。

![Screenshot 2025-02-24 at 11.16.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/c151b657-00b4-4229-bdd3-1e6fee676517.png)

次に[こちら](https://qiita.com/taka_yayoi/items/ee554f182bce6c362989#brickster)で紹介されていた機能を使ってみます。

# open_workspace()

[open_workspace()](https://databrickslabs.github.io/brickster/reference/open_workspace.html)を用いることで、RStudioなどのIDEからDatabricksワークスペースにアクセス、資産をブラウズすることができます。

```r
open_workspace()
```

**Connection**タブにワークスペースの資産が表示されます。カタログ、モデルレジストリ、エクスペリメント、クラスター、SQLウェアハウスを参照できます。

![Screenshot 2025-02-24 at 11.23.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/bfcc753b-a78a-4c93-873f-89fed74fcbd9.png)

カタログのテーブルや

![Screenshot 2025-02-24 at 11.17.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/7d1145e8-ef2d-4da5-b7e5-f9252fd906ed.png)

機械学習モデルを確認できます。

![Screenshot 2025-02-24 at 11.42.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/cd03e141-0f62-4534-b578-78713657a498.png)

# db_repl()

Databricks REPL([db_repl()](https://databrickslabs.github.io/brickster/articles/remote-repl.html))を用いることで、RコンソールからDatabricksクラスターに接続することができ、サポートされる言語をあたかもローカルで実行しているかのようにクラスターにインタラクティブに送信することができます。

使う際にはクラスターIDが必要です。起動していなくても、以下のコマンドを実行するとクラスターが起動します。

```r
# REPLの起動
db_repl(cluster_id = "<insert cluster id>")
```

クラスターが起動するとプロンプトが変化します。以下にあるように`[R]`が使える状態になっています。

![Screenshot 2025-02-24 at 11.24.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/31ab09b5-9e1c-4d90-90c3-da95f2b8459d.png)

以下のコマンドはDatabricksクラスターで実行されています。

![Screenshot 2025-02-24 at 11.24.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/4e7059c7-e952-4bc6-84ee-920726f59b26.png)

言語の切り替えは[こちら](https://databrickslabs.github.io/brickster/articles/remote-repl.html#switching-languages)にあるように`:言語ショートカット`を入力します。SQLに切り替えるには`:sql`、Pythonに切り替えるには`:py`を入力します。

![Screenshot 2025-02-24 at 11.27.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/27a42a7d-c3cb-47ed-b8fb-9678cf5eae21.png)

### はじめてのDatabricks

[はじめてのDatabricks](https://qiita.com/taka_yayoi/items/8dc72d083edb879a5e5d)

### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)