初めてDatabricks AI/BIダッシュボードを触ってみた

# はじめに
入社９日目でDatabricks AI/BIダッシュボードを作成しました。
Databricksを触ったことも知識も無い状態でしたが、ダッシュボードの作成にチャレンジしたのでその手順を共有します。

# 作成したダッシュボード
以下のようなダッシュボードを作りました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/00bd7a9e-fc8a-f230-0429-95a5e87eae6a.png)


# 利用したデータ
顧客からの問い合わせに関するサンプルデータを使用しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/742754ef-8fea-a412-f17c-a6242b7e5b48.png)

Databricksが提供する自然言語を用いたデータ分析が出来るGenieという機能を使って、
テーブルの説明を解説してもらいました。
> caseテーブルは顧客からの問い合わせやサポートリクエストの情報を管理するためのオブジェクトです。以下のカラムがあります：
> * Id [string] [primary key]: ケースの一意識別子
> * IsDeleted [boolean]: 削除フラグ
> * MasterRecordId [string]: マスターレコードのID
> * CaseNumber [string]: ケース番号
> * ContactId [string]: 関連する取引先責任者のID
> * AccountId [string]: 関連する取引先のID
> * AssetId [string]: 関連する資産のID
> * ParentId [string]: 親ケースのID
> * SuppliedName [string]: 提供された名前
> * SuppliedEmail [string]: 提供されたメールアドレス
> * SuppliedPhone [string]: 提供された電話番号
> * SuppliedCompany [string]: 提供された会社名
> * Type [string]: ケースの種類
> * Status [string]: ケースのステータス
> * Reason [string]: ケースの理由
> * Origin [string]: ケースの発生源
> * Subject [string]: ケースの件名
> * Priority [string]: ケースの優先度
> * Description [string]: ケースの説明
> * IsClosed [boolean]: クローズフラグ
> * ClosedDate [timestamp]: クローズ日
> * IsEscalated [boolean]: エスカレーションフラグ
> * OwnerId [string]: ケースの所有者のID
> * CreatedDate [timestamp]: 作成日
> * CreatedById [string]: 作成者のID
> * LastModifiedDate [timestamp]: 最終更新日
> * LastModifiedById [string]: 最終更新者のID
> * SystemModstamp [timestamp]: システムモデスタンプ
> * ContactPhone [string]: 取引先責任者の電話番号
> * ContactMobile [string]: 取引先責任者の携帯電話番号
> * ContactEmail [string]: 取引先責任者のメールアドレス
> * ContactFax [string]: 取引先責任者のFAX番号
> * Comments [string]: コメント
> * LastViewedDate [timestamp]: 最終閲覧日
> * LastReferencedDate [timestamp]: 最終参照日
> * Product2Id__c [string]: 関連する製品のID


# 作成の目標
今回は問合せデータから下記情報を確認出来るよう作成します。
- 優先度の高い問合せの確認
- ケースのステータスごとの抽出
- ケースの種類

# 実施手順
データの登録をしました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/12199c53-edb2-12a1-6618-b8b8ff7266cf.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/d1b9943d-1632-3982-d40a-f364dc2acd61.png)

必要情報が表示されるよう、右の項目から表示したいものを選択して作成します。
下記矢印(Add a Visualization)を選択すると作成が出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/7f9c71bf-3752-1274-6728-49f4ec3c4859.png)
必要情報が表示されるよう、右の項目から表示したいものを選択して作成します。
下記矢印(Add a Visualization)を選択すると作成が出来ます。
画面右側のWidget内で下記内容にてそれぞれ作成しました。
- Visualizationで[counter]を選択し、Valueを[count]で設定
- Visualizationで[Bar]を選択し、X axisを[status] Y axisを[count] [Labels]を表示に設定
- Visualizationで[Bar]を選択し、X axisを[priority] Y axisを[count] [Labels]を表示に設定
- Visualizationで[table]を選択しColumnsにて必要な情報を選択して表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/34182d4e-3942-6ed0-9a72-548d0d66427c.png)
この設定によりグラフやテーブルで可視化出来るようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/d34497b8-32cb-4701-ea7e-a13f3d7e9a5b.png)

データから必要な情報のみを確認する為、フィルターを使用して抽出を可能にします。
複数のフィルターで併せて抽出することも可能です。
赤矢印(Add a filter)を選択し右側Widgetでfilterを作成します。
下記内容のフィルターを作成しました。
- Fieldsに[case.Status]を選択
- Fieldsに[case.Priority]を選択
- Fieldsに[case.Type]を選択
この設定により作成の目標に上げていた情報の抽出が可能になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/4c2955b6-feee-e994-7e30-70f3d19c9ffa.png)
試しにステータスをクローズに変更したところ、クローズのみのデータ抽出が出来ました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951420/f55e2f32-79b4-6122-8345-6eaa145818aa.png)


# まとめ
主に下記内容を意識して作成しました。
・データの表示方法
・情報の抽出

Databricksダッシュボードの作成を実施しましたが、
コードを打ち込むこともなく初心者でも作成することが出来ました。
フィルターや表示方法などを組み合わせることで、わかりやすく情報を確認出来ることが可能でした。