Databricksのパーソナルコンピュートを使ってみる

こちらで説明されているPersonal Computeの機能をウォークスルーした内容となっています。

https://qiita.com/taka_yayoi/items/0234a88ec5a73afb0fb4

https://qiita.com/taka_yayoi/items/4ccb265729775b54cca6

# パーソナルコンピュート(Personal Compute)とは

[こちら](https://qiita.com/taka_yayoi/items/4ccb265729775b54cca6)で説明している様に実態はクラスターポリシーです。ちょっとした作業を行うための仮想マシンを簡単に作成できる様になります。

> **パーソナルコンピュート**は、すべてのDatabricksワークスペースで利用できるDatabricks管理のデフォルト[クラスターポリシー](https://docs.databricks.com/administration-guide/clusters/policies-best-practices.html)です。このポリシーを用いることで、ユーザーは個人で利用するためのシングルマシンの計算資源を簡単に作成することができ、すぐにワークロード実行を開始し、計算資源管理のオーバーヘッドを最小化することができます。

# パーソナルコンピュートを使う

[こちら](https://qiita.com/taka_yayoi/items/0234a88ec5a73afb0fb4#%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%A2%E3%82%A6%E3%83%88%E7%8A%B6%E6%B3%81%E6%AC%A1%E3%81%AB%E6%9D%A5%E3%82%8B%E3%82%82%E3%81%AE)で説明されている様に、パーソナルコンピュートのクラスターポリシー自体はAWSやAzureロールアウトされており、Databricksワークスペースで確認することができます。

> 2022年10月10日の週以降、パーソナルコンピュートのデフォルトポリシーが、AWSにおけるすべてのプレミアム、エンタープライズプランのワークスペース、Azureにおけるすべてのプレミアムプランのワークスペースにロールアウトされます。**AWS**においては、パーソナルコンピュートへのアカウントレベルのアクセス設定が、デフォルト設定**ON**で同時にリリースされ、この設定値は**2022/11/16**以降に効果を発揮します。向こう数ヶ月でGCPでもパーソナルコンピュートを提供できることを楽しみにしており、同じ時間枠ですべてのクラウドにおけるアカウントレベルのアクセスコントロールのスイッチを提供する予定です。

アカウントコンソール上ではパーソナルコンピュートは**Enable for all**に設定されています。
![Screen Shot 2022-11-02 at 7.46.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/5adb8143-3677-86f7-76d3-08d1d598c081.png)

言い換えると**2022/11/16**より前は、アカウントコンソール上の設定が**Enable for all**になっていても、明示的にポリシーへのアクセス権を設定しない限りパーソナルコンピュートは利用できないことになります。それ以降は誰でもアクセスできる様になるので、運用上それが好ましくない場合には、後述の手順で**Delegate**に設定してください。

## アカウントコンソールの設定

Databricksユーザーがパーソナルコンピュートのポリシーにどのようにアクセスできるのかは、[アカウントコンソール](https://accounts.cloud.databricks.com/)で制御することができます。

1. Databricksアカウント管理者としてアカウントコンソールにログインし、**Settings > Feature enablement**に移動します。
![Screen Shot 2022-10-13 at 17.51.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e08e27c2-b8e0-3d5a-15ff-2714794ba859.png)
1. **Personal Compute**のトグルを切り替えることでアクセス方法を切り替えることができます。
    - **Enable for all**: お使いのDatabricksアカウント配下のすべてのワークスペースでパーソナルコンピュートのポリシーを利用できる様にします。
    - **Delegate**: パーソナルコンピュートのポリシーへのアクセス権の許可・剥奪をワークスペース管理者に委ねます。ワークスペース管理者は明示的にアクセスを許可するユーザー・グループをパーソナルコンピュートのポリシーにアクセスできる様に設定する必要があります。

:::note
**注意**
お使いのDatabricksアカウントでパーソナルコンピュートのニーズがない場合には、アカウントコンソールの設定で**Personal Compute**を**Delegate**に設定してください。こうすると、ワークスペース上のPersonal Computeクラスターポリシーによって制御されるので、明示的にクラスターポリシーにアクセス権を付与しない限り、パーソナルコンピュートは利用できなくなります。
:::

## ワークスペースの設定

上述した通りパーソナルコンピュートの実態はクラスターポリシーなので、パーソナルコンピュートのデフォルト設定を変更したい場合にはクラスターポリシーを編集することができます。

:::note
**注意**
デフォルトではパーソナルコンピュートのクラスターの自動停止は**オフ**になっています。これを防ぐには、以下で説明する様にクラスターポリシーをカスタマイズして自動停止を強制するアプローチを取ることをお勧めします。ただし、自動停止を強制するかどうかはユーザーの生産性を考慮した上で決定してください。
:::

1. ワークスペース管理者としてDatabricksワークスペースにログインし、**コンピュート > Policies**にアクセスします。
1. ポリシー**Personal Compute**をクリックします。
![Screen Shot 2022-11-02 at 7.52.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/14912be7-b2a6-40c4-5d7b-85bf1c227347.png)
1. ポリシー定義が表示されます。**編集**をクリックします。
![Screen Shot 2022-11-02 at 7.54.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/28bf2613-e66b-fa2c-ce68-12b87edf623d.png)
1. 0件のオーバーライドの右にある**編集**をクリックします。
![Screen Shot 2022-11-02 at 7.55.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/57dd20ac-c8c4-53d6-1f85-380e64f5eba7.png)
1. ポリシーを上書き(オーバーライド)するダイアログが表示されます。
![Screen Shot 2022-11-02 at 8.23.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/3d56882b-9870-db79-963d-53ab2c4f2418.png)
1. 上書きするポリシーを記述して**OK**をクリックしてダイアログを閉じ、**更新**をクリックします。
![Screen Shot 2022-11-02 at 8.26.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/fdad7562-818e-da59-70c0-784657899858.png)

以下に更新するポリシーの例を示します。

**自動停止の時間のデフォルトを60分にし、最大120分まで設定可能にする。自動停止のオンオフは可能。**

```json:JSON
{
    "autotermination_minutes": {
      "type": "range",
      "maxValue": 120,
      "defaultValue": 60
  }
}
```

**自動停止の時間を120分固定にする。自動停止のオンオフは可能。**

```json:JSON
{
    "autotermination_minutes": {
      "type": "fixed",
      "value": 120
  }
}
```

**自動停止の時間を120分固定にする。設定ウィジェットを非表示にしてオンオフの切り替えを不可に。**

:::note
**注意**
このポリシーを適用する際には、自動停止時間が設定されていることをユーザーに連絡してください。
:::

```json:JSON
{
    "autotermination_minutes": {
      "type": "fixed",
      "value": 120,
      "hidden": true
  }
}
```

上のポリシーが適用されると、ユーザーは自動停止時間の設定を変更できなくなります。
![Screen Shot 2022-11-02 at 8.31.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/adbb3929-a315-f2ce-04f4-a7b9a20c93a9.png)

## パーソナルコンピュートの起動

1. コンピュートページに移動すると、左上にクラスターポリシーを選択してクラスターを作成するショートカットボタンが表示されます。

    :::note
    **注意**
    ポリシーが不活性状態になっている場合には、当該ポリシーへのアクセス権がありません。ワークスペース管理者、アカウント管理者にコンタクトしてください。
   :::
    ![Screen Shot 2022-11-02 at 8.35.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/6497d121-5bee-f59e-e65a-c46d0b39f8c7.png)

1. パーソナルコンピュートのポリシーが適用された状態でクラスター作成画面が表示されるので、**クラスターを作成**をクリックします。
![Screen Shot 2022-11-02 at 8.31.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/773e03ce-2e2a-3ebf-7353-a3e08fa156e0.png)

1. **ワークスペース**に移動し、新規ノートブックを作成する際に上で作成したパーソナルコンピュートクラスターを選択します。既存のノートブックを開いてアタッチする形でも構いません。
![Screen Shot 2022-11-02 at 8.39.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/2fcf7583-0000-24c6-8f15-88543dcf051b.png)
1. これでパーソナルコンピュートを使った作業が可能となります！
![Screen Shot 2022-11-02 at 8.42.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/9e949fcf-4abb-fc55-0b63-8ef3e11d111e.png)

適切なポリシーを適用することで、ユーザーの生産性を向上できるパーソナルコンピュートを是非活用してください！

### Databricks 無料トライアル

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