【4. ビジュアル作成編】Databricksで生データの加工から可視化まで一気通貫しておこなってみた

# はじめに
本記事は全4編によって構成されるうち、4つ目の記事となります。
[前回](https://qiita.com/Tsubasa-Koyama/items/730af8bf32008ba630c2)ではDatabricks SQLにて可視化のためのクエリを作成しました。
今回はクエリ実行によって得られたテーブルを可視化し、ダッシュボード上へ反映します。

# 全4編の概要
全4編かけてBacklogで記録されたCSVデータ(検証用に一部編集済み)を元に、ノートブック上でテーブルの加工を行い、Databricks SQL(Redash)を用いて可視化まで行っていきます。

[1. Delta形式のテーブル作成編](https://qiita.com/Tsubasa-Koyama/items/1a943ff8b265daa9953e)
[2. テーブルの加工編](https://qiita.com/Tsubasa-Koyama/items/b5953fb88b324a25ab29)
[3. SQLクエリ作成編](https://qiita.com/Tsubasa-Koyama/items/730af8bf32008ba630c2)
[4. ビジュアル作成編]()

Databricksを利用してデータ加工をしていきたいという方向けに、加工の流れを一気通貫してざっくりと理解していただくことを想定しております。
＊ただし一部複雑な加工や考え方が含まれていることご了承ください。

# 全4編のゴール
最終的なゴールはDatabricks SQLのダッシュボード上で以下のような要件を満たすグラフを作成します。
・日にちごとの残タスク数の推移を表示
・残タスクの数はプロジェクトごとに積み上げて表示
・グラフに表示する残タスク数を、タスクの保持者と難易度でパラメーター機能を用いて絞り込み可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/f9c5a17e-f63e-10dd-9a84-39127dcb1838.png)
# ビジュアルとダッシュボード作成
クエリを実行した後、画像にある赤枠の「Edit visualization」クリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/dffcefa9-cb0b-a951-ac55-779124d14435.png)
「Visualization type」からグラフの種類を選択します。
今回は棒グラフである「Bar」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/437da093-e354-e654-ed91-3f05a9943423.png)
設定を進めていきます。
「General」からX軸、Y軸のカラム、Group byするカラムを画像のように選択します。
X軸には時系列カラム、
Y軸には残タスク数を指定し、Group byでカテゴリーごとに合計値を出力されるようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/ee59cbe6-ccf7-8cb6-c5e6-cf13ce4c33ab.png)
しかし、これではまだ積み上げ棒グラフにはなりません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/e015dcfe-c73b-c081-58a8-4907bd420549.png)
「General」のままで先ほどよりもう少し下に「Stacking」という項目があり、「Stack」を選択すると名前ごとにタスクの完了数を積み上げてくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/370bff9f-919d-3636-5e8b-d8e716b922c5.png)
「X axis」、「Y axis」から軸の名前を変更することもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/80467dcf-e2df-ff3b-fdff-20ea452ab9a5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/e41a727e-7af6-e43e-032f-352be33a121d.png)
最後に「Save」をクリックしてビジュアルの完成です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/63e05b01-9bba-d9bf-0c55-9dc385bdef47.png)
完成したビジュアルをダッシュボードに張り付けます。
画像の赤枠から「Add to dashboard」を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/2773e340-0f5d-581e-c8bd-f4dced6434b7.png)
貼り付けたいダッシュボードを選択して「Add」をクリックします。
＊ない場合は「Create new dashboard」から新しくダッシュボードを任意の名前をつけて作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/8109f307-0c35-16be-5bde-ab7942dcf9f4.png)
ビジュアルを張り付けたダッシュボードを確認しましょう。
画像の赤枠から、対象のダッシュボードをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/fde119ef-ca4d-7130-b03d-d98885116c75.png)
作成したビジュアルをダッシュボード上で確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704291/db44e6ac-0b67-5a11-95f1-30e2b90ac25c.png)
# まとめ
これで「Databricksで生データの加工から可視化まで一気通貫して行ってみた」のすべての工程を終了しました。

本来これまで行ってきた加工から可視化までの処理を行うにはテーブルを保存、加工、可視化といった用途によってサービスを使い分ける必要があり、サービス間の連携に手間がかかることも少なくありませんでした。
複雑なデータ基盤によってはデータを扱う以前に問題が起こることも少なくなりません。

Databricksを使用することにより、上記の問題を解決してこれらの処理をPythonとSQLのみで簡単に同一環境で一貫して行うことができました。
さらに新しいデータが追加された際に、スケジューリングされた処理を行うことによりビジュアルを更新するような応用の仕方もあります。

分析、加工、可視化において、ぜひDatabricksを使用して大規模データを高速かつ自由に扱ってみてはいかがでしょうか。