[Looker21.12新機能] dev_filters を使ってNDTでも開発時のクエリにフィルタをかける #looker

2021.08.24

先日公開した下記ブログで、SQL派生テーブル開発時にクエリにwhere句をつけて大きなクエリを自動で防ぐ方法をご紹介しました。

if prod if devを派生テーブルで使用うする場合、SQLのfrom句/where句にベタがきで記述するため、LookMLを使用した派生テーブル(NDT)では使用できませんでした。

しかし、NDTでも開発モードでクエリが回っている際にはフィルターをかけてくれるdev_filtersパラメータが、7月にリリースされたLooker21.12で登場しました!

本記事では新顔のdev_filtersパラメータの動作を確認します。

実践

ECサイトの管理Explore上でユーザーのライフタイムオーダー数を計算する派生テーブルをNDTで作成します。 ライフタイムオーダー数を出すので、本番であれば全データを対象に計算したいですが、開発では問題なくクエリが走っているかを確認できればいいので、期間を1ヶ月(30日)に設定します。

view: lifetime_order {
  derived_table: {
    explore_source: order_items {
      column: order_count {}
      column: id { field: users.id }
      dev_filters: [order_items.created_date: "30 days"]
    }
  }
  dimension: order_count {
    type: number
  }
  dimension: id {
    type: number
  }
}

開発モードSQL

開発モードではwhere句が生成されています。

本番モードのSQL

本番モードではwhere句は生成されていません。よしよし。

まとめ

新入りパラメータdev_filtersを使ってみました!これで安心してでかいテーブルでもNDTで開発できますね!