Databricks Apps(アプリ)がやってきました！

とうとう、DatabricksでWebアプリが組めるように…。

https://docs.databricks.com/ja/dev-tools/databricks-apps/index.html

> Databricks Apps を使用すると、開発者は Databricks プラットフォーム上で安全なデータアプリケーションと AI アプリケーションを作成し、それらのアプリをユーザーと共有することができます。
>
> アプリでは、ガバナンスのための Unity Catalog、データのクエリを実行するための Databricks SQL、モデルサービングなどの AI 機能、ETL 用の Databricks ジョブ、ワークスペース内の既に設定されているセキュリティルール (アプリで使用されるデータへのアクセスを制御するルールなど) など、Databricks プラットフォームのリソースと機能を使用できます。 認証と承認では、Databricks OAuthやサービス プリンシパルなどの既存の 機能を使用します。

<script defer class="speakerdeck-embed" data-id="83c3c46bab0f4f9189dddb5561c22d6f" data-ratio="1.7761332099907492" src="//speakerdeck.com/assets/embed.js"></script>


:::note info
**プレビュー**
本機能は[パブリックプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。利用できるリージョンに関しては[こちら](https://docs.databricks.com/ja/resources/feature-region-support.html)をご確認ください。本記事の執筆時点では日本リージョンでは利用できません。
:::

ということで、利用できるリージョンで試してみます。

# Hello Worldアプリ

サイドメニューの**クラスター**にアクセスすると、**アプリ**タブが追加されています！

![Screenshot 2024-10-08 at 12.38.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/ab5fbc86-dd9e-615d-c1db-660787a0fe73.png)

**Create app**をクリックします。

テンプレートかカスタムか、使用するフレームワークを選択します。テンプレートでは、チャットbot、データアプリなどを選択できます。フレームワークには**Streamlit**を使用し、一番下の**Hellow world**を選択して、**Next**をクリックします。

![Screenshot 2024-10-08 at 12.39.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/98317ee8-e942-7236-c4c9-006e248a8d8a.png)

アプリ名、説明文を入力して、**Create and deploy app**をクリックします。

![Screenshot 2024-10-08 at 12.39.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/2950b9b3-c9d3-f4ac-cf44-21770ed59912.png)

デプロイメントがスタートします。

![Screenshot 2024-10-08 at 12.39.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/18ce75a6-6a3a-bd2e-9fd2-708027019c3b.png)

数分後にデプロイが完了しました。**実行中**に表示されているURLをクリックします。

![Screenshot 2024-10-08 at 12.43.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/88f3fa83-1637-cfd3-710d-7c70fb7d3e01.png)

アプリにアクセスできました！

![Screenshot 2024-10-08 at 12.47.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/15370473-32e9-e57c-292a-44b5d4f73a95.png)

## ソースコードの変更

上の**デプロイメント**に表示されているのがアプリのソースコードです。こちらをクリックして`app.py`を開きます。

```py
import streamlit as st
import pandas as pd

st.set_page_config(layout="wide")

st.header("Hello world!!!")
apps = st.slider("Number of apps", max_value=60, value=10)
chart_data = pd.DataFrame({'y':[2 ** x for x in range(apps)]})
st.bar_chart(chart_data, height=500, width=min(100+50*apps, 1000), 
             use_container_width=False, x_label="Apps", y_label="Fun with data")
```

以下のように修正します。

```py
import streamlit as st
import pandas as pd

st.set_page_config(layout="wide")

st.header("Hello world!!!はじめてのDatabricks App!!!")
apps = st.slider("Number of apps", max_value=60, value=10)
chart_data = pd.DataFrame({'y':[2 ** x for x in range(apps)]})
st.bar_chart(chart_data, height=500, width=min(100+50*apps, 1000), 
             use_container_width=False, x_label="Apps", y_label="Fun with data")
```

右上の**デプロイ**をクリックすると、修正されたコードを用いて再度デプロイが実行されます。

![Screenshot 2024-10-08 at 12.49.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/1129ac9e-766c-eb63-761a-e08e98aaf7b0.png)

変更が反映されています。

![Screenshot 2024-10-08 at 12.49.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/08f2db5f-c649-b157-37b6-c730121e8e11.png)

# データアプリ

今度はテンプレートで、**Data app**を選択します。

![Screenshot 2024-10-08 at 12.50.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/b9321a66-bc70-5dd0-0a23-3033bd4a6fdc.png)

データアプリではSQLウェアハウスが必要になるので、**アプリのリソース**でSQLウェアハウスを選択します。

![Screenshot 2024-10-08 at 12.52.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/651120de-dc2a-9238-4d74-4615d000275b.png)

こちらは、Unity Catalogで管理されているサンプルのタクシー乗降記録データにアクセスするアプリです。

![Screenshot 2024-10-08 at 13.13.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e10a627c-c37a-bcc7-93a3-c3f909e9541f.png)

右上のボックスにZipコードを入力すると、移動料金を予測することもできます。

![Screenshot 2024-10-08 at 13.13.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/6617efc6-f8dd-034d-5cc9-72d81b8da41b.png)

早く日本に来て欲しいです。

### はじめてのDatabricks

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

### Databricks無料トライアル

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