とうとう、DatabricksでWebアプリが組めるように…。
Databricks Apps を使用すると、開発者は Databricks プラットフォーム上で安全なデータアプリケーションと AI アプリケーションを作成し、それらのアプリをユーザーと共有することができます。
アプリでは、ガバナンスのための Unity Catalog、データのクエリを実行するための Databricks SQL、モデルサービングなどの AI 機能、ETL 用の Databricks ジョブ、ワークスペース内の既に設定されているセキュリティルール (アプリで使用されるデータへのアクセスを制御するルールなど) など、Databricks プラットフォームのリソースと機能を使用できます。 認証と承認では、Databricks OAuthやサービス プリンシパルなどの既存の 機能を使用します。
プレビュー
本機能はパブリックプレビューです。利用できるリージョンに関してはこちらをご確認ください。本記事の執筆時点では日本リージョンでは利用できません。
ということで、利用できるリージョンで試してみます。
Hello Worldアプリ
サイドメニューのクラスターにアクセスすると、アプリタブが追加されています!
Create appをクリックします。
テンプレートかカスタムか、使用するフレームワークを選択します。テンプレートでは、チャットbot、データアプリなどを選択できます。フレームワークにはStreamlitを使用し、一番下のHellow worldを選択して、Nextをクリックします。
アプリ名、説明文を入力して、Create and deploy appをクリックします。
デプロイメントがスタートします。
数分後にデプロイが完了しました。実行中に表示されているURLをクリックします。
アプリにアクセスできました!
ソースコードの変更
上のデプロイメントに表示されているのがアプリのソースコードです。こちらをクリックしてapp.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")
以下のように修正します。
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")
右上のデプロイをクリックすると、修正されたコードを用いて再度デプロイが実行されます。
変更が反映されています。
データアプリ
今度はテンプレートで、Data appを選択します。
データアプリではSQLウェアハウスが必要になるので、アプリのリソースでSQLウェアハウスを選択します。
こちらは、Unity Catalogで管理されているサンプルのタクシー乗降記録データにアクセスするアプリです。
右上のボックスにZipコードを入力すると、移動料金を予測することもできます。
早く日本に来て欲しいです。