Databricksアシスタントのティップスを試してみる

こちらで説明されているティップスを日本語でウォークスルーします。

https://www.databricks.com/blog/5-tips-get-most-out-your-databricks-assistant

ノートブック左側のアシスタントボタンを押して、Databricksアシスタントを表示させます。
![Screenshot 2024-01-10 at 17.47.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/cb51efa2-6a03-edce-fe73-bbd858a1392e.png)

今回はアシスタントメインなのでアシスタントパネルを拡大します。
![Screenshot 2024-01-10 at 17.49.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/a35d0e04-9b0c-d11c-f8b0-a6313ab261a6.png)
![Screenshot 2024-01-10 at 17.50.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/3f3730d6-0cc0-651b-6387-bb5de4159178.png)

# 1. Find Tablesアクションの活用

コマンド`/findTables`を使うのがお勧めです。covidに関するテーブルを探したいものとします。

```
/findTables covid
```

テーブル一覧が表示されます。
![Screenshot 2024-01-10 at 17.51.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/b6484fe2-cc4a-a8ae-bc06-47eb474d0f24.png)

テーブルをクリックするとコンテキストメニューが表示されます。
![Screenshot 2024-01-10 at 17.51.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/38ff9a42-2699-0a65-b8e6-d6bd3ed41801.png)

**Suggest SELECT queries**を選択すると、このテーブルに対するSELECTクエリーを提案してくれます。
![Screenshot 2024-01-10 at 17.52.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/7adb8ea9-7787-6297-51c2-68730ee72e73.png)

**Describe**ならテーブルを説明してくれます。
![Screenshot 2024-01-10 at 17.53.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/a1e9180d-6b17-ec79-aa7f-b736a6ddb1c9.png)

**Query in natural language**を選択すると、以下のプロンプトで自然言語でテーブルに対する問い合わせを行うことができます。日本語でも大丈夫です。

```
都道府県はいくつ含まれていますか
```
![Screenshot 2024-01-10 at 17.55.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/753b8e3c-86f1-a432-a4f4-6310076ebabe.png)

[4. アシスタントパネルでコードを直接実行](#4-アシスタントパネルでコードを直接実行)でも触れますが、この画面から直接クエリーを実行できます。コードスニペットの左上にある▶️ボタンでコードを実行できます。
![Screenshot 2024-01-10 at 18.02.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/a9baa302-e563-ba0b-6be8-64cc60ed2472.png)
![Screenshot 2024-01-10 at 18.03.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d2770b8b-cd08-473d-55d0-5b0959f6c9f3.png)

:::note
**注意**
コードを実行した際エラーになる場合はコードを修正してください。
:::

# 2. レスポンスの形式の指定

どのような回答が得たいのかをプロンプトで指定できます。以下のようなクエリーを記述したとします。

```sql:SQL
SELECT
  *,
  date(date_timestamp) AS Date,
  month(date_timestamp) AS Month,
  year(date_timestamp) AS Year,
  concat(
    year(date_timestamp),
    "-",
    RIGHT(concat("0", month(date_timestamp)), 2)
  ) AS YearMonth
FROM
  takaakiyayoi_catalog.japan_covid_analysis.covid_cases;
```

クエリーが記述されているセルを選択している状態で、アシスタントに以下を問い合わせます。

```
このクエリーを簡潔に説明して
```

いくつかの文で説明されます。

> このクエリは、日本の全ての都道府県においてCOVID-19の感染者数を月単位で集計するものです。date関数を使用して、 date_timestamp列からの日付を抽出します。monthおよびyear関数を使用して、date_timestamp列から月と年を抽出します。また、concat関数を使用して、年と月を結合する新しい列YearMonthを作成します。最後に、SUM関数とGROUP BY句を使用して、都道府県と月ごとの感染者数を計算し、それぞれの組み合わせごとに単一の行を作成します。

![Screenshot 2024-01-10 at 18.07.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/30d79c60-4e3b-de0c-d999-01627aacd023.png)


詳細な説明を求めることも可能です。

```
このクエリーをステップバイステップで説明して
```

> 以下は、このクエリを一つずつ説明したものです：
> 
> 1. SELECT文で、元のテーブルからすべての列を選択します。
date、month、およびyear関数を使用して、 date_timestamp 列から日付、月、年を抽出します。
> 1. concat関数を使用して、年と月を結合する新しい列YearMonthを作成します。このとき、monthが1桁の場合でも、2桁の値になるようにconcat("0", month(date_timestamp))関数を使用します。
> 1. 元のテーブルと新しい列Date、Month、Year、およびYearMonthのテーブルを連結して、中間テーブルを作成します。
> 1. このクエリーは、日付、月、年、および年と月の列を追加し、YearMonth 列を作成するためのコードです。

![Screenshot 2024-01-10 at 18.10.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/5f7be960-3952-b4da-7989-5dcf7a791a94.png)

# 3. Databricksアシスタントにデータを行レベルで教える

これは自然言語によるクエリー生成のバリエーションなので割愛します。元記事で言っているのは、「高さのカラム(ht)は6-2のようにハイフンで区切られている文字列フォーマットです」と言うように、あるカラムのフォーマットを教えるためのプロンプトを与えるというものです。

# 4. アシスタントパネルでコードを直接実行

アシスタントからコードスニペットが返却された際には、セルに▶️ボタンが表示されます。ノートブックが稼働中のクラスターにアタッチされていればそのままコードスニペットを実行できます。
![Screenshot 2024-01-11 at 14.25.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/b8ba58c6-f6b2-d985-8434-ead5258494cb.png)


コードの修正が必要な場合には、アシスタントパネル上で直接コードを編集できます。ノートブックにコードを挿入する前に試行錯誤することができます。
![](https://cms.databricks.com/sites/default/files/inline-images/db-870-blog-img-12.gif)

# 5. ノートブック内のセルアクションを使う

ノートブックのセルにもアシスタントへのショートカットボタンがあります。
![Screenshot 2024-01-10 at 18.20.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/81c4874e-e850-c659-3b74-9195397d7e65.png)

こちらからアシスタントに問い合わせができます。
![Screenshot 2024-01-10 at 18.21.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/28a3588b-1727-fa54-b421-833d787031da.png)

アシスタントに指示した結果との差分を確認できます。`/doc`はコメント追加を指示するコマンドです。
![](https://cms.databricks.com/sites/default/files/inline-images/db-870-blog-img-14.gif)

是非ご活用ください！アシスタントの有効化は[こちら](https://docs.databricks.com/ja/notebooks/databricks-assistant-faq.html)から。

### Databricksクイックスタートガイド

[Databricksクイックスタートガイド](https://www.amazon.co.jp/dp/B09V1YXFVQ/)


### Databricks無料トライアル

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