[Looker] extendsをきちんと理解する #looker

[Looker] extendsをきちんと理解する #looker

2021.08.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Lookerオブジェクトを継承できるextendsは、何が嬉しくて、どう使うのかをご紹介します。

extendsとは?

extendsは、viewとexploreに書けるパラメータです。extendsで指定したviewまたはexploreを継承します。

extendsの何が嬉しいのか?

身近な例で言うと、以下のようなことはないでしょうか?

データベースの各テーブルに共通してある項目(modified_atなど)をそれぞれのviewで管理していませんか?メンテナンスが煩雑に感じることはありませんか?そのような場合、共通項目を別のviewファイルにまとめておいて、それを複数のviewで継承することで、まとめた項目のメンテナンスを一括管理できてしまいます。

このように、一度定義した項目を再定義しないで済むので、コードを複数の場所で使いまわしたいときに非常に便利です。(コードの再利用性が高まるというわけです。嬉ぴよ)

あとは、LookMLダッシュボードもextendsすることができます。

LookMLダッシュボードの一番の難点はレイアウトの煩雑さです。そこで、あらかじめ数種類のLooKMLダッシュボードのレイアウトを用意しておき、新しいダッシュボードを作る際には用意したレイアウトから合うものを使用するといった、LookMLダッシュボードでダッシュボードを管理する場合のユースケースが挙げられます。

extendsの使い方

extendsは単体で使う分には、記述も動きも非常にシンプルですが、exploreで使用する際には注意する点があるので、このことについて重点的にご紹介します。(viewはさらさらっと)

extends (for view)

まずは、includeパラメータでextendsで指定するviewファイルを指定して、extends先のviewファイルでも参照できるようにします。

次に、viewにextendsパラメータで継承したいviewを指定して完了です。

例えば、上図のようにextention_order_itemsviewというプロジェクトに存在しないviewを定義しても、プロジェクトにきちんと存在しているorder_itemsviewを継承しているので、下図の通りExploreにフィールドが表示されます。

extends (for explore)

exploreでのextendsもviewと同様、継承したいexploreをextendsパラメータで指定するだけです。

extended_order_itemsという存在しないviewを定義して、きちんと存在するorder_itemsviewを元にしたexploreを継承したので、Exploreの画面の上では瓜二つのExploreが出来上がりました。

exploreでextendsを使う際の注意点

先程の例では、order_itemsexploreにview_name: order_itemsと定義しています。view_nameパラメータは、exploreに明示的に参照するviewを定義できるパラメータです。

こちらを明示的に定義しておかないと、extends先でオブジェクト名が変わってしまうことによるエラーの原因になってしまいます。

上の例のコードでextendsの動きとともに順を追って説明します。

extendsされると、まず、extendsで指定されたexploreがコピーされます。

次に、extends先のexploreをコピーしたexploreにマージします。この際に起こるコンフリクトではextends先に記述されているものが優先されます。

この時にview_nameを定義していないと、継承先のexploreでjoinするのに指定していたorder_items.user_idが参照できないviewとしてエラーになってしまいます。

しかし下図の通り、明示的にview_nameでorder_itemsを参照するように定義しておくと、explore名が変わっても参照先が定義されているのでエラーになりません。

extention: required

共通するviewのフィールドをまとめておく時など、extendsする用途以外では使用しない場合があります。その際には、extention: requiredを定義しておくと開発者ではないユーザーには表示されません。

まとめ

extendsについて理解できましたか?

LookMLを開発していて、ここの記述をもう少しシンプルにできないかな?という時には、extendsが使えないか考えてみてください!


データ分析基盤ならCSAにおまかせください!

クラスメソッドでは、データ分析に関わる皆様の作業コストを削減し、分析アクションを促進・効率化・自動化するためのデータ分析基盤「カスタマーストーリーアナリティクス」を提供・展開しています。興味をお持ち頂けた方は下記バナーをクリックし、詳細をご覧頂けますと幸いです。(各種問い合わせも承っております)

データ分析基盤を最短1ヶ月で導入可能


また、現在クラスメソッドでは毎週無料の相談会を開催しています。データ分析基盤の構築から、BIツール、データ統合など、ビッグデータ分析の導入や活用、技術についてお気軽にご相談ください。

データ分析相談会

この記事をシェアする

データ分析基盤を最短1ヶ月で導入できる

関連記事