$ make life

とあるセキュリティエンジニアのちらしの裏

【読書感想文】BigQueryではじめるSQLデータ分析 GA4 & Search Console & Googleフォーム対応

はじめに

セキュリティエンジニアとして仕事をしている中で、直近数年はSQLを利用する機会が非常に増えた。しかしながら、開発者としてのキャリアを通っていないため、自分自身にはデータベースに関する知識はそこまで多くない。もう少し正確にいうと、SQLインジェクションのTipsや対策など、非常に限定した場面で生きるSQLの知識しか持っておらず、SQLの本来の価値である検索や分析といった観点での勉強はほとんどしたことがなかった。そのため、常に各クエリはSQL習いたてのような人が書くものであった。流石にこの状況を打開した方が良いなと思い重い腰を上げて勉強しようと思って本を探していた。今の時代AIがSQLをほぼ書いてくれるが、恥ずかしい話、そのクエリの妥当性を評価できるスキルが自分にはなかった。このスキルを習得するために下記の本を選んで勉強した。今最も使っている環境がBigQueryなので、少し前の本ではあるが、自分にぴったりの本であった。Google Analyticsなどは特段使っていないのでそこら辺は軽く流した程度。 book.impress.co.jp

学んだこと

かなり初歩的なところから学び直したというのもあるが、主に自分がちゃんと勉強しなおせて良かったと思ったのは下記のトピックたち

  • テーブルの結合
  • 仮想テーブル、ビュー
  • サブクエリ
  • データの縦持ち/横持ち
  • 代表的な関数
  • ウィンドウ関数

特にテーブルの結合に関しては、かなり初歩的ではあるものの、毎回LEFT OUTER JOINとRIGHT OUTER JOINって何だったけな...みたいなことを思いながら毎回調べたりしていたし、self joinやcross joinに関しては存在すら知らなかった。また、サブクエリなどはもちろん見たことはあったが自分で能動的に使う機会はそこまでなかったため確認ドリルを通して、感覚的に使いたいケースを学ぶことができた。また、データの縦持ち・横持ちという話題やウィンドウ関数という概念は、初見のものだったため非常に興味深かった。これらが使えるとより細かい調査を行うことができそうだなというイメージが湧いた。

おわりに

Google Analyticsなどの分析を業務でするわけではないが、セキュリティエンジニアとしてのログ調査という意味でも実質やることは同じで(もちろんよく実装する処理は異なるかもしれないが)、そういった際に非常に役立つ話が多かったし、自分の不勉強さを痛感した1冊だった。そういう面でも非常に良い本だった。また、この本を通して、具体的なSQLの書き方に慣れたり思い出したりすることができたというのも収穫の1つであるが、1番の収穫は「しっかり腰を据えて、求められている自分にとって少し難しいクエリをどう実装していくかを頭で考える」ということができたことだったと思う。自分のように、SQLまぁわかるっちゃわかるけど、わからないっちゃわからないみたいな、開発キャリアを経ていないセキュリティエンジニアやセキュリティアナリストにはお勧めできる1冊だなと感じた。