「1時間で学ぶ」Lookerによるデータ探索

## この記事について
本記事は社内で実施したLookerのExplore操作を学ぶハンズオン研修の内容をまとめたものです。

もともとTableauユーザであった筆者がLookerでできる可視化を一通り触れるようになるため「最初に知りたかった！」と思う操作概要を作成しました。

Exploreが定義済みの状態（画面操作のみでグラフ作成ができるよう裏側のデータ構造を定義済みの状態）からLook（グラフ単体）やダッシュボードを作成していくことを前提としています。

BI自体はじめてという方は詳しい方のサポートを受けながら試してみてください。

## この記事の対象者
- LookerでのダッシュボードやLookの作成のやり方を大まかに知りたい方
- 社内ユーザ向けにダッシュボードやLook作成に必要な知識をざっくりカバーした研修資料を作りたい方
- Lookerの使い方について日本語で学びたい方

LookMLの開発方法については触れません。

## この記事で学ぶこと
複数のLooker学習コンテンツの調査やこれまでの業務利用から利用頻度が高く、特に学ぶ必要があるトピックを以下のように定義しました。

- Explore操作に必要な前提知識
- Explore画面までの遷移方法、画面の見方
- メジャー・ディメンションの追加と集計・可視化の実行
- フィルタ・ピボット
- 表計算
- グラフ・表の種類の変更
- グラフ・表の見栄え変更
- Look（グラフ単体）・ダッシュボードの作成と保存


トピックレベルで概要を把握しておくことで操作に困った際にも調べるキーワードのあたりがつけやすくなると考えています。

## （超ざっくり）Lookerとは
https://ja.looker.com/

- BI（Business Intelligence）ツールの一つ
- 各種DBに接続してグラフや複数のグラフを集めたダッシュボードを作ることができる
- LookMLというモデリング言語を利用して自動的にSQLを生成してデータを取得する
- 全ての指標をLookMLで定義し一元管理できる
- LookMLはGitで履歴管理が可能

DB上のデータを集計・可視化できるだけでなく、みんなが自由に集計項目を定義して微妙に異なる集計定義が大量生産！ということが起こりづらいのがLookerの大きな魅力だと考えています。

## 最低限覚えるべき用語集
Lookerで可視化をする上で最低限知っておくべき用語・概念です。

こちらにはざっくりした説明を書いています。詳細は[こちら](https://docs.looker.com/ja/data-modeling/learning-lookml/lookml-terms-and-concepts)

- View：テーブルまたはテーブルを加工した派生テーブルへの参照
- Explore：データ探索の対象単位、Viewを１つ以上結合して作られる（SQLのユーザ向け：SQL文のFROM句部分）
- ディメンション：グループ化可能な項目で分析の切り口となります（SQLのユーザ向け：SQL文のGROUP BY）
- メジャー：集計関数（合計、カウント、平均など）を使用する項目です（SQLのユーザ向け：SQL文のCOUNT、SUM、AVG、MIN、MAXなどのSQL集計関数を使用するフィールド）

ディメンションとメジャーの違いについて、
**製品名**、**製品モデル**、**製品価格**はディメンション
**売上アイテム数（カウント）**、**売上総額（合計）** はメジャーです。
単に数値＝メジャーでない点には注意してください。

用語の中でも「View」と「Explore」は言葉による説明だけでは実感が湧きづらいと思うので、一度説明を読んだ後は実際に操作に移った方が理解が早いです。

## Explore画面への遷移方法
LookerではExploreページがデータ探索の出発点になります。

探索する対象のデータをExploreと呼んだり、可視化のための画面のことをExplore画面と呼んだりするため少々ややこしいです。
ここではExplore画面へ遷移するパターンを３つ紹介します。

画面のスクショについては英語版はQwiklabsの学習環境（スクショ掲載に問題がないことは確認済）、日本語版は社内の環境で撮っています。
画面に表示される項目は保持する権限やバージョンにより異なるためご注意ください。

### 1から作成する場合
まっさらな状態からグラフを作成する手順です。
画面左上の「Explore」を選択するとModel（ここでは単にフォルダくらいの認識でOK）ごとにExploreがまとめられているので探索したいExploreをクリックします。
![Top画面1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/e1c1c41e-63ca-c4c7-2a16-86a3587009a6.png)

![Top画面2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/7b44ec2c-d4d6-5935-487e-e7ae296e96e9.png)

### 既存のダッシュボード内のグラフを編集する場合
すでに作成済みのグラフを編集して新しいグラフを作成する場合の手順です。
作成済みのダッシュボードから探索したいタイル（四角で囲われた領域）の右上の３点ボタンをクリックしEdit（日本語版は「ここから探索」）を押下します。
![Sample_Dashboard.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/c89ef66a-726c-bcd9-0244-e580e50ae1d6.png)


### ダッシュボードに空のタイルを追加する場合
特定のダッシュボードに新しいグラフを追加したい場合の手順です。
ダッシュボード編集画面の右上にあるAdd Tile（日本語版は「タイルの追加」）からVisualization（日本語版は「可視化」）をクリックします。
![Add_Tile.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/8025f7fe-df29-6b9d-cf0e-7f8df1847858.png)

## Explore画面の見方
データ探索の出発点となるExplore画面です。画面のどこに何があるのかを理解しましょう。
「フィルター」と「ビジュアライゼーション」については折り畳まれた状態で表示されますが、左側にある▽マークを押すと展開されます。
![Explore画面_1208.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/c3ab3f78-a24f-1dea-9cb5-ae5586785c2c.png)


1. 選択したExploreに含まれるViewの一覧が表示される。展開するとViewに含まれるディメンション、メジャーの一覧が表示される
2. ディメンション・メジャーの上にカーソルをオーバレイするとピボットとフィルタ、情報ボタンが出現する
3. フィルタに入れたいディメンション・メジャーの設定後このスペースでフィルタ操作ができる
4. 可視化に使用したいディメンション・メジャーの選択後「ビジュアライゼーション」エリアに表やグラフが表示され、黒い帯の上にあるアイコンから好きな表示形式に変更できる
5. 「編集」右横の歯車マークからグラフの色、軸の変更、リファレンスラインの設定など様々なカスタマイズができる
6. 可視化に使用したいディメンション・メジャーの選択後集計結果が表示される。フィルタ、ピボットへの追加やビジュアライゼーションの非表示、ソートなどの設定もできる
7. 表計算を設定し、データエリアに表示されたディメンション・メジャーを使用した計算式を設定できる
8. ExploreやViewを定義するLookMLを確認可能（SQLがわかる方ならLookMLを全く知らない状態でもある程度理解できます）
9. 設定内容を元にSQLを発行して集計を実施する。このボタンを押さないと結果が表示されないので注意

他にもこの画面から集計用に実際に発行しているSQLの閲覧などが可能です。

## Look&ダッシュボードを作成する
「この記事で学ぶこと」の項目で挙げた技法を全て使えるよう２種類のグラフを作成しLookまたはダッシュボードとして保存します。
ここではよくあるデータに当てはまるような形で説明しているためぜひ社内のデータに当てはめて実践してみてください。

### 時系列データを用いた折線グラフ作成
使用する技法：メジャー・ディメンションの追加、フィルタ・ピボット、グラフ・表の種類の変更、グラフ・表の見栄え変更、Look・ダッシュボードの作成と保存

「特定期間の××別の▲▲数」を折線で表示させ、グラフの色・頂点の変更をおこないます。
設定ボタンの位置がわからない方は上記の「Explore画面の見方」を併せて確認してください。

以下、作成の流れです。

- 適切なディメンション・メジャーを選択する
- 「実行」ボタンを押下して集計を実施し、ビジュアライゼーションを表示する
- 日付のディメンションではディメンショングループから使いたい項目を選ぶ（LookMLで年月日、年月、曜日など任意の日付項目のバリエーションを設定できます。）
- 特定期間のみを表示するため、必要な日付項目に「フィルタ」設定を実施する
- 「××別」すなわちディメンションごとに折線グラフを分けて表示するため「ピボット」を設定する
- ビジュアライゼーションの編集画面（ビジュアラーゼーションのエリアの右側にある歯車マーク）からグラフの見栄えを変更（色や頂点の変更）したり、リファレンスラインを追加したりする。項目別にどのようなことができるか一通り触ってみると理解が早いです。

下図は「『2020年1年間』の『購入者の国別』の『月次売上合計額』」を集計した画面です。
「ピボット」したことによってCountyのディメンション内の各項目ごとに列になり、国別の集計が行われている様子がわかります。
![スクリーンショット 2021-12-08 20.36.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/fd37951d-3bbb-8b55-11db-24eb6bb17e55.png)

私がTableauと比較してLooker独特だなと思った点は以下です。

- 実行するとDataエリアに集計した結果が表示され確認できる
- ディメンション別の集計を実施したい場合に「ピボット」を用いる
- Explore画面では実行ボタンを押さないと集計が行われない（Tableauでも自動更新を止めることはできる）
- 表示形式にSingle Value（単独の一つ数字を見せる）を選んだ場合にDataエリアの表の一番右上の数値が表示される（集計結果の中からどの部分がビジュアライゼーションに表示されるかが最初戸惑いました。）


### 表計算の活用
使用する技法：表計算（時系列データを用いた折線グラフ作成で使用したものを除く）

表計算ではディメンションやメジャーを用いて新しい指標を作成することができます。
ここでは２つのメジャーに対して表計算を利用して「××率」を計算し、テーブル形式で表示します。

事前準備として使用したいメジャーを選択し「データ」領域に表示させた上で「実行」を押下し集計させておきます。

![スクリーンショット 2021-12-04 22.08.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/271b0e02-28a4-c23e-9128-37bf0cd1e57c.png)

計算式は```${ビュー名.メジャー名}/${ビュー名.メジャー名}```のような形で記載します。
入力補助があるので楽に入力できます。右上の「Default Formatting」と記載されたプルダウンから表示形式を変更することも可能です。

「データ」エリア内に存在するデータでしか表計算できない（集計実行前に表計算で項目を使用しようとするエラーになる）ため注意が必要です。

下図は「年間の飛行機のフライトキャンセル率」を集計した画面です。

![スクリーンショット 2021-12-08 20.57.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/23df61a3-e4b9-b640-34c3-f95dc4f80cba.png)

「データ」エリア内に存在するデータでしか表計算できない、というルールがあるため計算に利用する「フライトキャンセル数」と「フライトの総数」が「データ」エリアに表示されています。
一方で「ビジュアライゼーション」にも「フライトキャンセル数」と「フライトの総数」が表示されてしまうと肝心の「キャンセル率」が潰れて見えなくなってしまいます。

そのような時は隠したいディメンションの右上の歯車マークからHide from Visualizationを選択するとビジュアライゼーションで非表示にできます。

![スクリーンショット 2021-12-08 21.02.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/ff0972cb-2e5a-8e37-15d7-edfe3521b97d.png)

キャンセル率のみを表示することができました。
![スクリーンショット 2021-12-08 21.04.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/4c6d308d-94e7-4bdb-19e6-9507271f91d1.png)




### Lookやダッシュボードに保存する
Explore画面右上の「実行」横の歯車マークを押下すると保存ボタンが出てくるのでその後の画面で保存場所を選択の上保存します。
![保存方法.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201765/3f07b5d0-d93c-c521-6ce2-c4670939ca90.png)


## お疲れ様でした！
ここまでで今回の学習は完了です！
高頻度で使うものについては網羅したつもりですが、まだまだ扱っていない可視化の技法はたくさんあります。
あとはドキュメントを読むなどのインプットと実践を通じたアウトプットでできることを増やしていってください！

## さらに学びたい方へ
執筆時点（2021/12/10）では英語のみとなりますが、体系的に学びたい方におすすめなコンテンツを２つ紹介します。
### Qwiklabs
実環境でLookerを触りながら学べるQwiklabsのLooker関連コースがおすすめです。
執筆時点（2021/12/10）では無料でした！
[Exploring Data with Looker](https://www.qwiklabs.com/quests/165)（本記事の内容に近いです）
[Understanding LookML in Looker](https://www.qwiklabs.com/quests/170)（LookMLによる開発方法について学べます）

### Looker Connect
Data Consumer、LookML Developerの他にAdmin（管理者）向けコンテンツもあるのが特徴です。
動画中心で学びます。
https://connect.looker.com/

昨日（12/9）のアドベントカレンダーでがっつり紹介されていました↓

https://community.looker.com/%E3%82%B3%E3%83%A9%E3%83%A0-103/%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%82%A2%E3%82%BB%E3%83%83%E3%83%88-looker-connect-%E3%81%AE%E3%81%94%E7%B4%B9%E4%BB%8B-viewer-explore-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%90%91%E3%81%91-28697