[Looker]Content Validatorを使って作成したグラフのエラーをあぶり出してみる #looker

2020.09.23

LookerはBIツールのため、主たる機能としてグラフを作成してユーザーに共有することができます。

しかし、グラフの参照先のmodelファイルやviewファイルの更新を行っていると、exploreやfileldの名称を変更した場合に、急にグラフが見れなくなってしまうことがあります。

本ブログではこういったトラブル発生時に原因究明と対策実施に役に立つ、「Content Validator」を紹介します。

Content Validator とは

「Content Validator」とは、LookMLで記述されたmodel名・explore名・view名・field名と、これらを用いて作成したグラフやダッシュボードを照らし合わせ、名称の整合性が取れずエラーになっている場合に、そのエラーを検出した上で名称の置換などの対策まで実施することができる機能です。

文章だけだとわかりづらい点もあると思うため、実際の例を次章の「試してみた」で説明します。

試してみた

想定ケース

元々、products.viewという名称のviewファイルに「brand」というfieldを定義して、下記のようにLook(グラフ)を1つ作成していたとします。

ここで、「brandじゃなくてmeigaraにグラフ上の名称を変更してくれ!」と指示を受けて、products.view上のdimensionをmeigaraに変更してしまいました。

すると、なんということでしょう、brandごとの棒グラフだったLookがただの1本の棒になってしまいました。

なぜこんなエラーが起きるのか?

Lookerの仕様として「modelファイル」と「Look・Dashboard」は別々で定義されているからです。

まず、filedの名称がbrandの時にLookを作成したため、最初は下図のような状態でした。Lookはbrandを参照するように定義されています。

しかし、brandをmeigaraに名称変更してしまうと、下図のような状態になります。

Look側はbrandを参照することしか定義されていないため、meigaraに変更されたことがわからず、エラーを出力した上でおかしなグラフを表示してしまいます。

Content Validatorを使ってエラーをあぶり出す

ここでContent Validatorの出番です!Content Validatorを使うことで、今回の事象のようなエラーを検出することができます。

Content Validatorは、Developタブの中に存在しています。

Content Validatorを起動すると、下図のような画面になります。

「Validate」を押すことで、現在エラーが発生しているLook、Dashboardをまとめて表示することができます。

すると、エラーが検出できました!

※下図は一部白地に加工しています。

対策案

続いて、エラーを検出したのはいいがどうやって直すか、という対策の話に移ります。例として2パターン以下に記します。

その1:Look側の参照先を「meigara」に修正する

この場合は、Content ValidatorのReplace機能を用いると簡単に対応可能です。

修正したいエラーの一番右側、"Action"列にある「Replace」を押します。

すると、下図のようなポップアップが表示されます。

  • Filed name:名称を変更したいfield名を入力
  • Replacement Field Name:変更後のfield名を入力

これらを入力後、「Replace Field Name」を押します。

この後、表示がおかしくなってしまったLookを再度確認すると、Meigaraに表記が変更されたうえで、問題なくグラフが描画されていることが確認できました!

その2:Lookの編集画面で「Custom Axis Name」を変更する

本事例において元々の指示は、「brandじゃなくてmeigaraにグラフ上の名称を変更してくれ!」という内容でした。

そのためLook上の表記だけでも変更できれば、この指示の要望は満たしています。

実際には、該当Lookの編集画面上で、右上のEDITからX軸のオプションを開き、Custom Axis Nameを「megara」に変更してあげればOKです。

最後に

いかがでしたでしょうか。

今回検証した例では影響があったグラフが1つだけであったためインパクトが小さいと思いますが、1つのmodelファイルから何十個もグラフやダッシュボードをすでに作成している場合は、このContent Validatorを用いて一括でエラーが発生しているコンテンツを出力できるため、とても便利な機能だと私は感じています。

ぜひ、Content Validatorを活用してみてください!