分析SQL知らなすぎ / 2021年9月11日
最近 BigQuery 業が再開しSQLを書く機会が出てきたのだけど、あまりのSQLの知識の無さにヤバさを感る。Web エンジニアの一般的な業務 SQL 知識では、いわゆるデータストレージとして SQL を使うケースが圧倒的に多く、CRUD 操作関係、インデクス + explain 等を使った SQL 実行計画最適化、シンプルな join、batch を書くときデータ処理、ぐらいに知識が偏っている。また ORM を使っていると SQL を書かずともいい感じに勝手に SQL が構築されるため、そもそも SQL を手で書くことが少なくなる。
1DBあたりのデータ量がせいぜい数十GBの世界の業務では困らないし、簡易な分析タスクでは SQL で取得した結果をプログラミング言語で簡単にいじれるため困る事が少ない。が、いわゆるビッグデータに対してはSQL上で全てできてしまったほうが圧倒的に短時間でリソース効率が良い事が多い。そんなビッグデータ + 分析タスクを SQL でしようとすると SQL の知識が偏っていたために筋の悪い SQL を書いて困ることになる(というかなっている)。また日本のWeb界隈で人気な MySQL が最近の 8.0 まで window 関数に対応していなかったこともあり、そもそも window 関数を雰囲気でしか使えないヤバさ(SQL分析業をしている人からしたら、window 関数解ってないってマジ?というぐらいのヤバさであろう)がある。
というわけで分析系SQLの知識を補おうと、目次を読んで知らないことが多そうだった達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへを読み出す。のっけから CASE式で行と列をtransposeや!みたいな内容で、そもそもCASE式を知らなかったし、マジ便利じゃんという内容。背景となる考え方もきちんと説明してて面白いなぁ。
朝散歩して海辺で朝食。土曜朝のため釣りをしている人が多く、アジがわりと釣れていた。
昼間、新生活に向けて家電や家具を見に近所をブラブラ、徒歩圏内にほとんどある便利さを改めて噛みしめる。今の家の家具は、短期に一時的に住むものだからと、必要最低限を満たす安い家具・家電で揃えたのだけど、それらをある程度は書い直す予定。安く買った家具で圧倒的にコストパフォーマンスが良くて気に入っていたのはIKEAの980円サイドテーブルのLACK。値段相応のチープさはあれど、シンプルだし軽い(動かしやすい)しで大活躍だった。
新しい部屋に何を置こうかとあれこれ考えて楽しい。最近はカメラ周辺機材を買うことも減ってしまい、あんまりお金を使う機会がないから、お金をかけるタイミングではパーッと使い経済を回したい。