Azureデータ分析入門 #5 【Databricks → Power BI Desktop】

## はじめに
Databricks の Spark クラスタを、デスクトップ版の Power BI に接続する方法をご紹介します。

#### 連載目次
[Azureデータ分析入門 #1 【はじめに】](https://qiita.com/Catetin0310/items/a7ab83069fec5352b535)
[Azureデータ分析入門 #2 【ツール比較 Excel編】](https://qiita.com/Catetin0310/items/d32c53305ab579d47950)
[Azureデータ分析入門 #3 【ツール比較 Azure Notebook編】](https://qiita.com/Catetin0310/items/ae3c5f3dca5b3315896d)
[Azureデータ分析入門 #4 【ツール比較 Databricks編】](https://qiita.com/Catetin0310/items/b6030d3ad0fde16e57ab)
[Azureデータ分析入門 #5 【Databricks → Power BI Desktop】](https://qiita.com/Catetin0310/items/eb8431f38a51641b0db1) → 本記事はこちら
[Azureデータ分析入門 #6 【CSVデータ → Power BI サービス】](https://qiita.com/Catetin0310/items/4af00df1f0af5feda1bb)
Azureデータ分析入門 #7 【AutoML でタイタニック号の生存者予測】


## Power BI
#### 概要
データストレージを接続したり、エクセルファイルを読み込んで加工すると、こんなダッシュボードや、
![What_800x450.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/16b52fbb-1f5c-1795-89ee-f456df6bd52f.png)

こんなレポートが、
![800x450_2x_Why_PBI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/64785b0f-0361-66ef-2bbf-2cae2d2a01e1.jpeg)

Excel のピボットグラフに近い操作感で作れて、
![provide_800_450.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/e3134d34-9f51-1cf5-5657-73abf7b812b2.gif)

以下の手段で共有できるプラットフォームが整備されてて、

- Web ブラウザ
- Android
- iOS

ビッグデータや AI サービスとの連携も抜群、というすごいやつです。

ピボットグラフと同じ用に作れると考えて触ると痛い目を見ますが、慣れればレポート作成や知識のシェアなどの効率化が跳ね上がりそうなツールです。

気になりますね? Windows PC 使いであれば、[こちら](https://powerbi.microsoft.com/ja-jp/desktop/)から Power BI Desktop をダウンロードできます。

マックユーザーでも、Microsoft アカウントを持っていれば Power BI サービスが使えます。[こちら](https://signup.microsoft.com/signup?sku=a403ebcc-fae0-4ca2-8c8c-7a907fd6c235&email=&ru=https%3A%2F%2Fapp.powerbi.com%3Fpbi_source%3Dweb%26redirectedFromSignup%3D1%26noSignUpCheck%3D1) から。ブラウザで動くので使用環境に左右されにくいのが嬉しい。

#### Power BI Desktop と Power BI サービス の違い

Power BI には、Power BI Desktop と Power BI サービス の二種があります。それぞれできることが異なるうえ、UI が違うので注意が必要。ざっくり切り分けると、

- Power BI Desktop → 開発環境
- Power BI サービス → レポート共有プラットフォーム

のイメージ。[公式ドキュメント](https://docs.microsoft.com/ja-jp/power-bi/service-service-vs-desktop)に分かりやすい図があったので引用します。

ちなみに Spark クラスタへの接続はデスクトップ版からしかできません (2019年9月現在)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/e130f2e9-831d-5cf3-5269-d45878f1d5bf.png)

SQL に慣れている人であれば、データの整形や集計列の追加は Power BI に読み込ませる前にやってしまい、Power BI では可視化やUXのデザインを、というスタイルが楽かもしれません。

## 手順
以下の3ステップ。

- アクセスポイントの確認
- アクセストークンの発行
- デスクトップ版 Power BI に Databricks を接続


#### アクセスポイントの確認
Clusters から使用しているクラスタをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/369ee619-cc45-afb4-eac0-65677151eea3.png)

Advanced Option をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/7a32b69a-4677-9b06-42c7-fcc90c87833e.png)

JDBC/ODBC をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/4300c4ba-0e55-c1ec-c2e4-d0484fb27c1e.png)

JBDC URL を参照。以下のようにセミコロンで各データが区切られています。①と②を組み合わせて、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/412eb670-dbde-2311-e023-9aa5a127fd3d.png)

文字列 ```https①②``` を作成し、メモ帳などにコピーしておきます。これが Power BI から Databricks へのアクセスポイントになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/ced120ab-fb64-7e99-74a6-6b8cdc32e84e.png)

もしクラスタが停止していたら、起動させておきましょう。
![2019-08-27_14h47_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/5df97329-4276-2927-b6f2-a5db067cbf73.png)

#### アクセストークンの発行
右上のユーザーアイコンから、User Setting をクリック
![2019-08-27_13h59_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/57795ac8-b3bb-9f5e-e88f-3d70eae69a7d.png)

Generate New Token をクリック
![2019-08-27_14h00_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/7f01c113-0758-2890-d309-acf415125309.png)

トークンの名称と有効期限を任意で入力し、Generate をクリック
![2019-08-27_14h00_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/e25591a3-1b98-bd7d-c074-1e95a380f6ac.png)

アクセストークンキーが発行されるので、これもメモ帳に保存しておき、Done をクリック。
※ここでコピーしたものを紛失するとトークンの使用ができなくなるので注意
![2019-08-27_14h01_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/d85afaaa-4c31-5e04-af98-c60fe7439ff7.png)

#### デスクトップ版 Power BI に Databricks を接続

- アクセスポイントの確認
- アクセストークンの発行とキーの確認

以上で Dataricks 側の準備が整いました。次は Power BI 側の設定を行います。

Power BI デスクトップ版をインストール、起動後、左上のデータの取得をクリック
![2019-09-19_10h46_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/d6912567-2d37-4f12-18b6-e9c01bf8f82e.png)

検索窓に Spark と入力、Spark を選択し、接続をクリック
![2019-09-19_10h46_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/8e69a1e2-3216-ddfe-008c-28eecb5e1949.png)

先ほど確認した**アクセスポイント**を入力、プロトコルは HTTP に、インポートは DirectQuery を選択し、OKをクリック
![2019-09-19_10h47_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/54e0ed78-f7dc-a70e-bb58-abc17daf5b15.png)

ユーザー名に **token** と入力、パスワードに先ほど控えておいた**アクセストークンキー**を入力し、接続をクリック
![2019-08-27_14h08_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/16039a04-bec8-3f61-fefe-4f9a21d1eaa6.png)

Databricks のテーブルが表示されるので、任意で選択、読み込みます。
![2019-09-19_11h38_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/a676c343-b0ed-5e51-10cc-510b5f06a219.png)

読み込みが完了するとこちらの画面に。取り込んだテーブルが右端に確認できます。これで接続は完了です。
![2019-09-19_11h39_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/b7f4cab0-973a-03ad-226b-89672eca8c81.png)

## まとめ
接続してはみたものの、今回のデータに対して Power BI Desktop から Spark クラスタを動かし、アドホックな分析をするというのは、いささかオーバースペックなように思います。

そこで次回は Webブラウザ上で Power BI サービスを開き、そこへCSVファイルをアップロードし、ダッシュボードの作成までやってみようと思います。お楽しみに!

## 参考サイト
[Power BI Desktop とは何ですか?](https://docs.microsoft.com/ja-jp/power-bi/desktop-what-is-desktop)
[Power BI とは？ - What is Microsoft Power BI? -](https://qiita.com/yugoes1021/items/091c1732ff4b6f108877)
[Power Query ってちょっと不思議なところがあるけど、知っておいた方がいいことがあるよという話をした。](https://qiita.com/PowerBIxyz/items/a98a991b301c071632dc)