Lookerの構成要素の関係性を把握する #looker

Lookerでメニューに従いプロジェクトを作成すると、Looker内部では設定内容に基づいて作業に必要な要素を「LookML」という独自の設定言語・設定ファイルの形で自動生成します。ユーザーは自動生成された各種定義ファイルを元に定義を追加したり、作業を行っていく形となるのですが、概念や考え方について理解を深めておくと後の作業も捗ると思いますのでこのエントリではその辺の「学習記録・理解内容」をブログとして書き留めておきたいと思います。

目次

 

LookMLの概念を学ぶ

こちらについては日本語で解説されているドキュメントが既にありますので、まずはこちらの内容に目を通してください。

 

Model / Explore / Join

構成要素の種類などについてざっくり把握できたところで、上記構成図の左側、Model/Explore/Joinの内容について見ていきます。

LookMLを作成すると、接続情報に基づいてLookMLで幾つかの要素が作成されます。最上位概念となる『LookML Project』は[Develop]メニューから辿れる箇所に一覧表示されています。

また、LookML配下に存在する『モデル(Model)』は[Explore]メニュー配下に一覧表示されます。そして、モデル配下には、探索可能な要素として『Explore』がこれもまた一覧の形で表示され、アクセス可能な形となっています。要素間の関係性を含めるとこんな感じです。

ウィザードに従う形でLookMLプロジェクトを作成すると、Lookerは所定のデータベーススキーマ内に存在するテーブル情報を解析し、1つのテーブルを1つの『ビュー(View)』として定義し、それらをラップする形で『Explore』を定義します。このままの形であればユーザーは表示されたExplore、イコール定義されたViewを探索に利用出来るのですが、ユーザーとしては複数のテーブルを結合した情報を1つのテーブルとして扱いたいというケースも早々に出てくるかと思います。そんな時に利用出来るのが『結合(Join)』の概念です。

結合(Join)の設定はExplore上で利用可能となっており、SQLでJOIN句を使うイメージで様々な条件・設定による結合が可能となっています。詳細は以下ドキュメントをご参照ください。(※別途エントリを改めて実践内容をご紹介したいと思います)

当セクションに於ける要素のリファレンスページは以下。それぞれ実に様々な設定が可能な形になっていますね。全てを追うのは文字数を相当数費やさなければならないため、適宜深掘りエントリ等でご紹介出来ればと思います。

 

Views / Dimensions / Measures / Field Sets

冒頭構成要素の真ん中に位置する要素群。Lookerで所定の操作を行うと、Lookerは内部で対象テーブルの情報をViewとして解析し、データ型などに応じた形でテーブルカラム要素を「ディメンション」と「メジャー」に振り分けます。Lookerではこのカラム要素生成、必要最低限のものしか作成しません(存在するカラムを置き換えたメジャー・ディメンションを用意するだけ)。なので生成された要素以外の項目が欲しい場合は別途作成する必要があります。

「Field Sets」は、Looker上でユーザーがデータにドリルダウンした後にどのフィールドを表示するかを指定するために用います。ドリルダウンに関する詳細はドリルダウン - LookMLの用語と概念の項、また関連パラメータの情報は以下ドキュメントをご参照ください。

Looker上に於ける「Explore」と「ビュー(View)」については、上記構成図上では関連性が無いように見えますが、実際には以下の様な関連性がある、という事を一旦ここで整理しておきたいと思います。

  • ExploreとViewは連動して作成されるが、イコールという訳ではない。
  • Exploreの定義の中で複数のViewを"結合"という形で定義することが可能。
  • 実際のテーブル項目内容はView内部で定義されており、Exploreではその内容をユーザーが探索出来る様に設定しているラッパー的な要素に過ぎない。
  • Looker上でユーザーがテーブルの情報を扱えるようにするためには、Exploreで対象となるビュー(群)を定義して初めて有効となる。
  • ちなみにExploreはユーザに提供する分析画面の枠組みを指定しているイメージとなり、直接的にはテーブルと関係がある訳ではない。

また、設定情報ベースでのExplore/View/実テーブルの関連性については以下の流れで連動出来ている形となります。

  • 「View」と「実テーブル」の関連性:View内部で『sql_table_name: cmdevio.t_blogposts』の形でスキーマ名・テーブル名を指定している事で連動。
  • 「Explore」と「実テーブル」の関連性:ここの関連性は無い。
  • 「Explore」と「View」の関連性:『explore: t_blogposts』と『view: t_blogposts』の名称で一致している事で連動。

 

LookML Dashboards / Visualizations

Exploreを元にしてユーザーが作成する可視化のパーツを「Look」、それらの集合体として作成した要素を「ダッシュボード」としてLookerでは利用することが出来ます。

作成した定義は以下の様な形でLookML設定ファイルとして保存されます。(※下記例はトレーニングの際にご用意頂いた別データソースを元にしたサンプルです)

また、ダッシュボードは、Visualizationを組合せて表示していますが、Lookだけではなく、Dashboard上で直接Visualizationパーツも追加する事も可能です。

 

まとめ

という訳で、LookerのLookMLで定義される各種要素の概念について学んだ内容のご紹介でした。こうして見てみると意外とLookML、範囲が広いですし奥も深そうです。体系立てて学んで行く事でLookerの奥深さ、便利さを最大限享受出来そうな気がしますので、焦らず1つずつ、物事を理解して進めていこうと思います。