頼んだピザが固くなった頃に

技術の話を書く。動画配信全般・邦ロックとショートボブの女の子が好き

クエリテンプレートは悪

2020年は私にとってもエンジニアリング以外で学ぶことの多い一年でもあった。そんな経験談を何日かに分けて話していく。

皆さんはクエリテンプレートを知っているだろうか? 簡単にいうと, 下のようなクエリのstartとendに取得したい日付の期間を入力してくださいといった任意の情報を取得加工できるようなクエリの雛形のことを指す。

#StandardSQL

SELECT
date,
COUNT(DISTINCT user_id) AS dau
FROM
table
WHERE
date  BETWEEN "start" AND "end"
GROUP BY 1

よく分析者が不足してるから非分析者のために「クエリテンプレート」を作ってあげようという話が出ると思う。別にそこまでは間違っていない。 問題はそのクエリテンプレートの利用者がクエリを理解せずに使っているケースだ。   また、その「クエリテンプレート」は将来的にメンテし続ける必要があり作成者もしくはクエリをわかってる人に対する永遠の運用負荷になる可能性がある。 そういったこともあって基本的に「クエリテンプレート」は悪だと私は思ってる。

分析者の負担を減らすために作ったクエリテンプレートが分析者の負担を増やすという。

クエリテンプレートを作るぐらいなら、Looker やtableau, Google spreadsheetでも良い. BIツールによって可視化レポート作成する方が100倍良いと思うし、特定の人しか必要としない非汎用的なデータを参照したい・扱いたい場合・案件ならクエリを習得するしかないと思う。

メルカリさんを筆頭にクエリ教育に力を入れている企業文化は本当に良い。 webtan.impress.co.jp

クエリを暗記するな。現場からは以上です。