Looker Expression (lexp) を使ってみよう 動作環境の比較

2020.04.15

Looker Expression とは

Looker expressionとは、以下の4つの場面で使用される式です。

Table calculations (表計算)

概要

Exploreでクエリを実行した後の結果に対してその場で新たなクエリを実行できます。 青い列がDimension、オレンジの列がMeasure、緑の列がTable calculationです。

動作の注意点としては、上述の通りクエリが返された後に実行されるので、行制限をかけている場合はその行数で、かけていない場合には5,000行以上には対応していない点、フィルターされた値には使用できない点が挙げられます。

また、運用上の注意点として、公式ドキュメントでは次のように説明しています。

表計算は、通常のフィールドよりも作成するのが容易ですが、通常のフィールドほど制御するのが簡単ではありません。表計算は、組織の中の誰もが作成することができるので、「公式の」計算ではないかもしれません。Lookerの主な利点の1つは、信頼できる情報源が1つであることです。そのため、通常のフィールドにするか表計算にするかを決定するときには、このトレードオフを覚えておきましょう。

公式ドキュメントにもあるとおり、ビジネスユーザーが表計算を多用することはLookerを使用する大前提を崩してしまう恐れがあります。運用にあたっては何かしらの指針があると良いかもしれません。

使用方法

まず、Explore上で必要なFieldを選択して実行します。次に、データバーにあるCalculationsを選択します。

すると、画面中央にモーダルが出現します。

  1. 列名を入力
  2. Looker expressionを入力
  3. 数値のフォーマットを選択(上記画像ではUSDのtwo decimal placeを選択しています。)
  4. Save Table Calculations を選択

計算結果が表示されます。緑の列が表計算を実施した列です。

Custom fields (カスタムフィールド)

概要

カスタムフィールドは、表計算と同じくExplore上で新たなクエリを実行できる点では同じですが、いくつかの相違点があります。

相違点その1

  • 全てのユーザーが利用できるわけではない

カスタムフィールドを利用するには、Looker管理者にカスタムフィールドを利用する権限を付与してもらう必要があります。権限のないユーザーのExplore画面にはCustom Fieldsは表示されません。

権限あり

権限なし

相違点その2

  • 行が返される前にプロセスが実行される
    • フィルターされた値にも実行される
    • 全行に対して実行される(5,000行の縛りがない)

カスタムフィールドの名の通り、通常であればLooker開発者がDimensionsとMeasuresを用意したFieldsだけが選択可能ですが、カスタムフィールドを使用すればビジネスユーザーでもDimensionsやMeasuresを追加することができます。

表計算が実行されたクエリに対して新たなクエリを実行するのに対して、カスタムフィールドはDimensionsやMeasuresといったFieldsを追加するのでそもそもの動作が異なります。

使用方法

Custom Fieldsを開くとNEWボタンが現れますので、クリックします。

新たに追加したいFieldを選択します。(今回はCustom Dimensionを追加します。)

表計算の時と同様にモーダルが現れますので、必要事項を入力します。

  1. Field名を入力
  2. Looker expressionを入力
  3. 数値のフォーマットを選択(今回はDefault Formattingを選択しています。)
  4. Save を選択

新たなFieldが追加されました。

Custom filters (カスタムフィルター)

備え付けのフィルター機能ではできない要素でフィルタリングを行たい場合に使用します。

使用方法

フィルターバーを開くとCustom Filterが表示されるので、チェックを入れると、下図のようにエディタ画面が出現するので、Looker expressionを入力します。

後は実行するだけで、フィルターされた値が表示されます。

Data tests

テストパラメータのサブパラメータのassert(成立要件)でLooker Expressionを使用します。テストパラメータはmodelファイル・viewファイル・data_testファイルで使用できます。また、プロジェクトでdata testを必須として設定できるようです。

公式ドキュメントにあるNullがないかを確認するテストを実際に試してみます。

具体的には名前FieldにNullがないかをテストします。以下のコードをviewファイルに書き入れます。

test: name_is_not_null{
  explore_source: order_items {
    column: name { field: users.name }
    filters: {
      field: order_items.created_date
      value: "90 days"
    }
  }
  assert: first_name_is_not_null {
    expression: NOT is_null(${users.name}) ;;
  }
}

エディター上部のファイル名の横の▼を押すとRun LookML Testsが選択できるようになります。

テストが通ると以下の表示が出ます。

まとめ

Looker expressionが使用できる環境をご紹介しました。

これから順次様々なLooker expressionの紹介ブログを公開する予定です!