0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

先日、あるお客様向けに以下の資料を用いたハンズオンワークショップを実施しました。

構成や資料の準備、座学は私が行ったのですが、ハンズオン自身はお客様のデータを使ったこともあり、お客様にリードいただきました。結果として非常に興味深い内容になりましたので、ここでは公開されているデータを用いてハンズオンの流れをまとめます。

ターゲット

これまでにBIやDWHを操作したことがある、これから取り組みたいと考えている方。

ユースケース

Databricksに格納されているテーブルを用いたデータ集計やレポーティング。

ワークショップの流れ

二年前であれば存在していなかった新機能を活用します。生成AIを活用することで、(ほとんど)SQLを記述することなしに、データ集計やレポート作成が可能になることを体験いただきます。

Screenshot 2024-10-25 at 11.25.22.png

  • AI Playground
    • 生成AIの挙動(同じインプットでも常に同じアウトプットにはならない、システムプロンプトの効果など)に慣れてもらう。
  • Databricks SQL + Databricksアシスタント
    • SQL基礎の座学を実施しつつ、Databricksならほとんど日本語でタスクをこなせることを説明。
    • CSVファイルの取り込みからカタログエクスプローラのオリエンテーション。
    • アシスタントの力を借りながら売り上げデータに対するクエリーを洗練
    • ビジュアライゼーション、ダッシュボード、フィルタの作成からダッシュボードの公開までをウォークスルー
  • Databricks AI/BI(Genieメイン)
    • 上と同じデータを使ってGenieスペースを作成。
    • アシスタントの力を借りても数十分かかっていた作業が、Genieなら数分で完遂できることを体感いただく。

AI Playground

AI Playgroundの画面のオリエンテーションを行ったら、早速自由に触っていただきます。

Screenshot 2024-10-25 at 11.30.24.png

Screenshot 2024-10-25 at 11.31.26.png

右上の + ボタンをクリックすると、問い合わせするモデルを横並びに表示させることができます。同時に複数のモデルに問い合わせができるので、結果を比較して翻訳の精度を高めることなどが可能です。

Screenshot 2024-10-25 at 11.32.19.png

システムプロンプトでモデルの挙動をコントロールすることも可能です。

Screenshot 2024-10-25 at 11.34.04.png

ここでは、以下を体験していただきます。

  • モデルによって挙動が異なること、得手不得手があること
  • 指示(システムプロンプト)によって、モデルの挙動をある程度制御できること
  • 同じモデルに同じ問い合わせをした場合、必ずしも同じ回答が返ってくるわけではないこと

Databricks SQL + Databricksアシスタント

SQL座学

日本語でデータ分析ができるといえども、背後で生成されるSQLが何であるのかは感触を掴んでいただきたいと思います。

Screenshot 2024-10-25 at 11.36.56.png
Screenshot 2024-10-25 at 11.37.11.png

怖がらないでください。今日のハンズオンではアシスタントやGenieの力を借りて、SQLをほとんど記述することなしにデータ分析を行なっていただきます。

データの取り込み

ここでは、こちらで公開されている売り上げデータを使用します。CSVファイルをローカルにダウンロードします。

データを取り込む際には、Unity Catalogのカタログとスキーマ(データベース)を指定する必要があります。適当なものがない場合には、以下のSQLを実行して、自身のメールアドレスを用いたスキーマを作成しておきます。

DECLARE database_name = "takaakiyayoi_catalog." || regexp_replace(current_user(), '[\.@]', '_');
CREATE DATABASE IF NOT EXISTS IDENTIFIER(database_name);
SELECT database_name;
takaakiyayoi_catalog.takaaki_yayoi_databricks_com

サイドメニューのデータ取り込みをクリックし、テーブルを作成または変更をクリックします。

Screenshot 2024-10-25 at 11.39.16.png

ダウンロードしたCSVをドラッグ&ドロップします。

Screenshot 2024-10-25 at 11.40.20.png

プレビュー画面が表示されるので、既存のスキーマあるいは上のSQLで作成したスキーマを選択し、テーブルを作成をクリックします。

Screenshot 2024-10-25 at 11.43.17.png

これでデータが取り込まれ、テーブルが作成されました。

Screenshot 2024-10-25 at 11.46.09.png

カタログエクスプローラの画面をオリエンテーションします。

Screenshot 2024-10-25 at 11.46.14.png

Screenshot 2024-10-25 at 11.46.24.png

SQLエディタとアシスタント

サイドメニューからSQLエディタに移動します。

Screenshot 2024-10-25 at 11.47.50.png

画面のオリエンテーションを行います。左上のアイコンからはカタログエクスプローラ同様にカタログ内のオブジェクトを一覧できること、エディタの右上のアシスタントボタンはエディタに記載されている内容にフォーカスして動作することを説明します。

Screenshot 2024-10-25 at 11.49.19.png

前のステップで作成したテーブルを検索し、テーブル名を右クリックあるいは3点リーダーをクリックして表示されるメニューからtableパスをコピーをクリックします。これによって、テーブルの完全なパスtakaakiyayoi_catalog.takaaki_yayoi_databricks_com.sales_data_sampleがクリップボードにコピーされます。

Screenshot 2024-10-25 at 11.51.14.png

次にエディタ右上のアシスタントボタンをクリックします。するとエディタ上部にプロンプト入力ボックスが表示されます。

Screenshot 2024-10-25 at 11.52.30.png

プロンプトボックスにテーブルパスを貼り付けて、以下のように編集します。

takaakiyayoi_catalog.takaaki_yayoi_databricks_com.sales_data_sampleの内容を表示

プロンプトボックス右の送信ボタンを押します。

Screenshot 2024-10-25 at 11.53.33.png

これで、指示に従ってSQLが下のエディタに挿入されます。承認を押して確定します。ここで、生成AIの性質上、期待しない結果が出てくることがあること、自分でやりたいことに応じて編集可能であることを説明します。

Screenshot 2024-10-25 at 11.54.06.png

エディタ左上の 実行(1000) ボタンを押してSQLを実行します。

Screenshot 2024-10-25 at 11.55.47.png

取得結果が表示されます。上記の1000は取得件数を1000件に絞っていることを意味しています。

Screenshot 2024-10-25 at 12.50.03.png

実行ボタンの右の下向き矢印を展開してLIMIT 1000のチェックを解除すると全件取得することになりますが、ここでは解除しません。

Screenshot 2024-10-25 at 12.50.52.png

またアシスタントを呼び出します。シンプルなSQLをベースにより複雑なSQLの構築をアシスタントに指示します。

上の結果を見ると、注文日がOrderDate、売り上げがSalesであることがわかります。これらのカラムに対して処理を行います。以下のプロンプトを入力します。

OrderDateをyyyy-mm、Salesの合計

これによって、月毎のSalesの合計を計算するSQLが生成されるはずです。

Screenshot 2024-10-25 at 12.59.22.png

前と同じように承認して実行します。

Screenshot 2024-10-25 at 13.00.18.png

期待した通りに動いていますが、よく見ると並び順がメチャクチャです。さらにアシスタントに修正させましょう。

OrderDateの小さい順

Screenshot 2024-10-25 at 13.01.29.png

これで並び順も綺麗になりました。ここまで、SQL自体は一行も書いていません。すべて日本語でアシスタントに指示することで集計処理を実現しています。

Screenshot 2024-10-25 at 13.01.50.png

グラフの作成

ここまではいい感じに進んでいますが、表形式のデータを見ていても味気ないのでグラフを作成します。未加工の結果の右にある + をクリックし、可視化を選択します。

Screenshot 2024-10-25 at 13.01.50.png
Screenshot 2024-10-25 at 13.04.21.png

可視化の設定画面が開くので、Visualization typeLineを選択します。

Screenshot 2024-10-25 at 13.05.21.png

X columnOrderDateを選択します。

Screenshot 2024-10-25 at 13.06.32.png

Y columnsの下のAdd columnをクリックします。

Screenshot 2024-10-25 at 13.07.17.png

TotalSalesを選択し、その右がSum(合計)になっていることを確認します。これで、右側に売上の推移を示す折れ線グラフが表示されるはずです。右下の保存をクリックします。

Screenshot 2024-10-25 at 13.08.28.png

ダッシュボードの作成

SQLエディタの下部に作成したグラフが表示されます。これでグラフを作成することができましたが、ここまで来たらダッシュボードにして共有したいと考えることでしょう。なので、ここからダッシュボードを作成します。

上で追加したグラフのタイトルの右側の下向き矢印をクリックしてメニューを展開します。ダッシュボードに追加を選択します。

Screenshot 2024-10-25 at 13.16.15.png

ダッシュボードの作成ダイアログが表示されます。

Screenshot 2024-10-25 at 13.17.21.png

必要に応じてダッシュボードの名称を変更し、追加するグラフを選択します。クエリーを保存して作成をクリックします。

Screenshot 2024-10-25 at 13.18.26.png

クエリー(とクエリーから作成したグラフ)の保存先を聞かれるので、場所を選択して保存します。

Screenshot 2024-10-25 at 13.19.11.png

これでダッシュボードのドラフトが作成されます。

Screenshot 2024-10-25 at 13.19.25.png

ドラッグでグラフの位置やサイズを変更することができます。グラフの部品を選択すると、右側に設定画面が表示されます。

Screenshot 2024-10-25 at 13.21.32.png

ここでは、フィルターを追加してみます。特定の期間にフォーカスするために活用できます。画面下のツールバーの一番右のアイコンをクリックします。

Screenshot 2024-10-25 at 13.21.32.png

フィルターウィジェットの配置場所が選択できるようになるので、好きな場所に配置します。

Screenshot 2024-10-25 at 13.22.42.png

配置したらサイズを調整します。

Screenshot 2024-10-25 at 13.23.47.png

右側に設定画面が表示されていますので、ここで設定を行います。

  • 複数の値を選択できるように、単一値から複数の値に変更します。
  • フィルタリングの対象となるフィールド(列)を選択します。フィールドの右の + をクリックして、OrderDateを選択します。これで、OrderDateにフィルターを適用できるようになります。

Screenshot 2024-10-25 at 13.25.15.png

このように2011年のデータのみにフォーカスすることができます。

Screenshot 2024-10-25 at 13.26.34.png

ダッシュボードの公開

ここまでダッシュボードの設定を行ってきましたが、このダッシュボードは下書きの状態です。他のユーザーが参照できるようにするには、ダッシュボードを公開する必要があります。

画面右上の公開ボタンをクリックします。

Screenshot 2024-10-25 at 13.28.03.png

公開設定のダイアログが表示されます。

Screenshot 2024-10-25 at 13.28.42.png

まず、一番上の資格情報です。これは、ダッシュボードを参照する際に誰の資格情報を用いるのかを設定するものです。

  • デフォルトの資格情報を埋め込むは、ダッシュボードを作成しているあなたの資格情報をダッシュボードに埋め込むことを選択します。これは、仮に参照ユーザーがダッシュボードでアクセスしているテーブルにアクセス権を持っていなかったとしても、ダッシュボードを作成したあなたがアクセス権を持っていれば、そのユーザーはダッシュボードを経由してそのテーブルデータを参照できることを意味します。プロトタイピングや機密性の低いデータを取り扱っている際にはこちらのモードでも大きな問題はありません。
  • しかし、機密性の高いデータを取り扱っており、厳密な権限管理を実現したいのであれば、もう一つの認証情報を埋め込まないを選択すべきです。これによって、ダッシュボードの参照者自身の権限でテーブルにアクセスすることを強制できます。

Screenshot 2024-10-25 at 13.34.56.png

公開をクリックすると、公開するダッシュボードにアクセスできるユーザーを選択する画面に遷移します。どのユーザー、グループにどのような権限を与えるのかを設定します。

Screenshot 2024-10-25 at 13.35.46.png

設定したら右上の✖︎をクリックします。公開状態のダッシュボードに遷移します。

Screenshot 2024-10-25 at 13.38.04.png

下書きに戻るには、画面上部中央のドロップダウンから下書きを選択します。

Screenshot 2024-10-25 at 13.38.36.png

ここまでで、以下を実施してきました。

  • CSVファイルを取り込んでテーブルを作成
  • アシスタントを活用したテーブルへの問い合わせ
  • グラフ、ダッシュボード、フィルタの作成、ダッシュボードの公開

このような取り組みをもっと簡単にできないでしょうか?そこで、Genieの出番です。魔神の力を借りましょう。

AI/BI Genie

サイドメニューからGenieにアクセスします。画面右上のNewをクリックします。

Screenshot 2024-10-25 at 13.42.58.png

Genieとやり取りするには、Genieスペースという部屋を作成します。ここで、Genieが分析に行う際に参照するテーブルなどを設定します。

スペースの名前、SQLの実行で使用するSQLウェアハウス、そしてテーブルを設定します。テーブルは前のステップで使用したものと同じテーブルを選択します。

Screenshot 2024-10-25 at 13.45.59.png
Screenshot 2024-10-25 at 13.46.27.png

画面右下のSaveをクリックすると、あなたのGenieスペースが作成されます。

右下のプロンプトボックスに問い合わせを入力することで、Genieが分析を行なってくれます。

月別の売り上げの推移

Genieは対話型で動作します。質問が不明瞭な場合にはGenieから質問されることもあります。やり取りを通じて分析結果を取得します。

Screenshot 2024-10-25 at 13.49.23.png

集計結果などデータを取得した際には、その下にクイックにグラフを作成するためのボタンが表示されます。折れ線グラフをクリックします。

Screenshot 2024-10-25 at 13.50.35.png

SQLエディタを使用した際には少なくとも10分以上要した作業が今回は数分で完了しました。

また、GenieにはAI Playgroundで触れたシステムプロンプト相当の機能もあります。画面右の指示のアイコンをクリックします。ここに表示されるボックスに指示を入力することで、Genieの挙動をカスタマイズすることができます。

例えば、以下のような指示文を入れます。

- あなたは売り上げデータの日本人の専門家です。質問に対して日本語で回答します。
- 結果は必ず1000で割ってください。

こうすることで、あなたのやりたいことに合わせたGenieを活用できるようになります!

Screenshot 2024-10-25 at 13.54.48.png
Screenshot 2024-10-25 at 13.55.49.png

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?