Lookerベスト・プラクティス:LookML開発 べき&べからず集 #looker
Lookerではトピック毎のベストプラクティスを個別にドキュメントやナレッジベースとしてまとめています。当エントリではその中から、『LookML開発における"べき&べからず集』についてご紹介したいと思います。
目次
LookML: Dos (べき集)
まずは「Dos(べき集)」について、LookMLを使う場合には踏襲すべきポイントとなります。
結合(joins)には、relationshipパラメータを定義しよう
このパラメータを使うことにより、Looker内でメトリックが適切に集約されます。デフォルトでは、Lookerは、関係が定義されていない結合に対してmany_to_oneの結合関係を使用します。
派生テーブルを含む「全てのビュー内」で主キーを定義しよう
全てのビューは、データベースから直接または派生しているかどうかに関わらず、主キーを含む必要があり、Lookerが特定のレコードを識別出来るように、主キーは一意の値とする必要があります。また、主キーは単一の列または列を連結したものであり、テーブルまたは派生テーブルにおける一意の識別子となっている必要があります。
スペースにおけるディメンション、メジャー、及びその他のLookMLオブジェクトには全て小文字とアンダースコアを使おう
labelパラメータは、名称フィールドの追加の書式設定に使用出来ます。また、ViewやExplore、モデル名の外観のカスタマイズにも使用出来ます。
永続派生テーブル(PDT)の生成を調整&基礎となるETLプロセスでキャッシュを探索させるために、データグループ(datagroups)を使おう
データグループ(datagroups)を使用してスケジュールをトリガーし、最新のデータを受信者に送信するように出来ます。
参考:
LookML: Don'ts (べからず集)
ついで「Don'ts(べからず集)」。こちらは逆に「LookMLを使う際に"やってはいけない"、推奨出来ない」メソッドとなります。代替案も提示されているので、扱いには気を付けて臨みたいところです。
Explore内でビューの名前を変える際に、fromパラメータを使ってはならない
代わりに、view_labelを使うようにしましょう。
fromパラメータとview_labelの違いについては、以下ドキュメントをご参照ください。
fromパラメータは主に以下の状況で使用するべきです。
- 多相結合(同じテーブルを複数回結合する)を使う時
- 自己結合(テーブルをそれ自体に結合する)を使う時
- 拡張ビューのスコープを変更し、元のビュー名に戻すようなケース
ディメンショングループ名に「date(日付)」または「time(時間)」という文字を使ってはならない
Lookerは、各タイムフレームをディメンショングループ名の最後に追加します。つまり、created_dateという名前のディメンショングループは、created_date_date、created_date_monthといったフィールド名になります。この名称ルールを踏まえて、ディメンショングループ名にはそういった時制の部分を省く形、createdを使用するだけにします。この形を取ることで、created_date、created_monthなどのフィールドが作成されるようになります。
結合(join)内で書式設定されたタイムスタンプを使ってはならない
任意の日付または時間フィールドの結合には、これの代わりにraw timeframeオプションを使います。これを使うことで、結合述部にキャストとタイムゾーン変換が含まれなくなります。
まとめ
というわけで、Lookerにおける『LookML べき&べからず集』のご紹介でした。
LookMLはLookerに関する設定諸々を管理・制御出来る仕組みである一方、色々な事が出来てしまうのでその使い方を誤ってしまう可能性もなくはありません。Lookerサイドでこの様なノウハウが共有されていることで、Looker開発者も誤用→辛い思いをしなくて済むようになるので嬉しいところですね。LookMLに関するベストプラクティスはこの他にも幾つか展開されていますので、引き続きご紹介して行ければと思います。