LookML DiagramでLookモデルを可視化しよう
投稿者:中島
本稿は Looker Advent Calender 2022の23日目の記事です。
こんにちは、日本情報通信の中島と申します。
今までSQLを書いたことがなく、BIツールを触るのも初めてだった私ですが、最近ではお客様環境にてLookMLを定義したりダッシュボードを作成することも多くなり、日々勉強の毎日を過ごしております。
さて今日はLookerマーケットプレイスで見かけた「LookML Diagram」という便利そうなコンテンツを利用してみたいと思います!
目次
- LookML Diagramとは?
- LookML Diagramの利用方法
- LookML Diagramの構成画面
a. 構成説明
b. Object Profiler
c. 結合関係 - 触ってみた感想
1.LookML Diagramとは?
大量のデータを扱っているとき、どのExploreにビューを追加したらいいのか、今どのように定義がされているのか、頭の中だけでLookMLオブジェクトの関係を理解することは、複雑で難しいです。
LookML Diagramでは、LookMLオブジェクト間のダイアグラムを生成することで、Lookモデルを視覚化するための構造や関係図を作成してくれます。
他にも以下のことが可能です。
- 間違ったロジックを見つけることができる
- クエリのパフォーマンス最適化
2.LookML Diagramの利用方法
MarketplaceからLookML Diagramアプリケーションをインストールします。
インストールが完了したら、Lookerメニュー画面の「Blocks」から「LookML Diagram」に移動しましょう。
(初期画面)
左上から見たいmodelとExploreを選択すると、ダイアグラムが生成されます。
以下全体の画面図と概要説明となります。
今回はECサイトデータのモデルを使用していきます。
①Settings
モデル(Choose a Model)・Gitブランチ(Currrnt Branch)・Explore(Select an Explore)を選択して、DiagramのSettingを行います。
Current Branchでは開発モードだとブランチを切り替えることができるので、様々なバージョンの Explore を比較できます。
(本番モードだと固定で「master」となっています)
②キャンバス
選択したExploreのLookMLオブジェクトがキャンバスに表示されています。
今回はorder_items(オーダー、アイテム、ユーザー関連)のExploreを選択しました。
「oreder_items」というExploreを中心に、フィールドが表示され、どのようにjoinしているかを把握できます。
③View Options
表示するフィールドを絞り込むことができます。
-
All fields…全てのフィールドを表示する
-
Fields with joins…結合されているフィールドだけ表示する
-
Hide hidden fields…有効にすると基のLookMLに「hidden:yes」を含むすべてのフィールドが非表示になる(デフォルトでは有効になっている)
他にもその下の「Views」の項目では、特定のビューを非表示にしたりすることで、ダイアグラムを自分の好きなようにカスタマイズすることができます。
3.LookML Diagramの構成画面
それでは実際にキャンバス画面内を見ていきましょう。
a.構成説明
①今回選択したExplore:order_items(オーダー、アイテム、ユーザー関連)は濃い青色で表示されます。
ビューの下にはフィールドのリストが表示されます。
②結合ビュー(inventory_itemsやrepeat_purchase_factsなど)は水色で表示されます。
ビューの下にはフィールドのリストが表示されます。
③ディメンションが表示されます。
④薄いオレンジ色でメジャーが表示されます。
⑤主キーはフィールドの右側に鍵マークが表示されます。
b.Object Profiler
Object Profilerでは選択したExplore、ビュー、フィールドの詳細を確認することができます。
例えばusersのageをクリックすると、DetailsとCodeの2つのタブが表示されます。
Detailsでは、View Name、Label、Distribution、Valuesの4つの項目が表示されます。
DistributionとValuesは、type:countを含むメジャーがあるビューの数値ディメンションの場合以下の結果が表示されます。(usersビューにはtype:countを含むメジャーがある、かつageはtype:numberなので数値ディメンション)
①Distribution:カウント値の分布を示す棒グラフのプレビューを表示する
- 最小(Min)の年齢が12歳
- 最大(Max)の年齢が101歳
- 平均年齢(Average)が38.686歳
- データ個数(Count)が30780個
棒グラフは、12歳~16歳のデータ個数が8030個あることを示しています。
②Values:カウント値のプレビューを表示
上からデータ個数が多い順に並んでいます。
16歳が一番多く、3056個あることを示しています。
Codeタブからは、選択したフィールドのLookMLの定義を確認することができます。
またObject Profilerでは、画面下側にある「Go to LookML」をクリックすると、実際に定義しているLookML画面に遷移することができるので、すぐに変更を加えることが可能です。
「Explore with Field」からはExplore画面に遷移することもできます。
c.結合関係
結合パスにカーソルを合わせクリックすると、結合の種類とどのように接続しているかを視覚化できます。
右側では、LookMLでの結合の定義が確認できます。
(下図の例でいうと、order_items から user_order_facts への many to one の結合とuser_id で結合をしていることが分かる)
4.触ってみた感想
Lookerを使い始めてまだモデルの関係性に慣れていなかったり、ビューにどのデータが入っていたっけな…といった人にこそおすすめしたい機能です。
ビューがどのように結合されているのかを一目で分かるので、新しいデータソースを追加するとき、どのExploreに結合すればいいかを判断する際に利用しやすいなと思いました。
マーケットプレイスには、まだまだ便利なコンテンツがたくさんあるのでもっと活用していきたいですね。
最後までお読みいただきいただきありがとうございました。