データ抽出クエリチェック

「どうしたらデータ抽出の精度をあげられますかね?」

と2年目の後輩から質問を受けた。

社内のバックオフィス系のデータをPostgreSQLに蓄積&抽出する仕事をしていて、ビジネス部門の業務ユーザから○○データを抽出してほしいだったり、上長からも××データを抽出してほしいといった、データ利用者から依頼が来る。
一回データ結果を出して、データ利用者から結果違くない?と言われ、抽出条件が間違っていたり、データ抽出を複数回やり直すことがあり、このやりとりを減らしたいと思って質問をくれたよう。

役に立つかわからないが、自分がやっている確認方法を紹介した。

データ抽出クエリチェック方法

  • サンプルで何件かデータ抽出してデータを確認する
    • バックオフィス系のデータを扱っているため、自分のデータや自分の組織のデータを使って確認している。
    • group byしているクエリの場合は、group byを外した状態でデータを確認する。
  • サブクエリ部分を分割して確認する。
    • 何重にもサブクエリを書く時もあるので、その時は、最下層のサブクエリから結果を確認して、合っているか確認している。
  • 時間を置いて、クエリを見直す。
    • クエリを作成した後、テンションが上っている状態で冷静に振り返りができないことが多いので、1時間や翌日になってから再度クエリを見直している。
  • シンプルなクエリ(後から見直してわかりやすい・他人が見てもわかりやすいクエリ)を心がける。
    • 後から見て自分がわかりにくかったり、他人が見てわかりにくいクエリはミスしやすいので出来るだけシンプルなクエリを心がけている。
  • 各テーブルのデータ理解
    • ベースとして、テーブルの構造の理解、データの理解は必須。前提知識のこれが無いと上記のことが出来ていてもなかなか難しい。