あいぽんプログラマー

Iphoneを持っていますが、主にAndroid開発についての記事を書いています

「10年戦えるデータ分析入門」の感想

こんにちはgoya813です。
最近データエンジニア的な仕事をやるようになって、色々情報収集していたらクックパッドの青木峰郎さんの スライド「DWHに必要なこと〜1人で始めるCIO〜」を見つけ、そちらで紹介されていた本書に興味を持ち読み始めました。

著者について

著者の青木峰郎さんは現在はクックパッドに所属しており、ビッグデータ分析システム「たべみる」のアーキテクチャ設計から開発などをおこなっています。
本書以外にも「ふつうの〜」シリーズの本を出版されていたり、OSS界隈でも元Rubyコミッターであったりと幅広い分野で活躍されている方です。

要約

本書はSQLを使ったデータ分析と、そのためのデータ分析基盤構築について書かれた本です。
本の内容としては2部構成になっており
1部はプランナー向けにSQLというのはどういうものか、なぜ良いの、どうやって使うのかについて。
2部はエンジニア向けにデータ分析基盤の構築・運用方法についてとなっています。

印象に残った章

今回は特に印象に残った第8章と第11章、第13章について感想を書いていきます。

第8章

第8章は「ウィンドウ関数」について書かれている章です。 本書の中ではウィンドウ関数について

ウィンドウ関数(window function)は「分析関数」とも呼ばれる関数です。 たいへんざっくり言うと、group by節で作ったグループの中の行を見ながら、集約せずに計算することができます。

と説明しています。著者も「これだけだとまったく分からない」と書いていましたが、 僕も正直最初はまったく分からず、これがなんで分析関数と呼ばれるのだろうと思っていました。

しかし、この後にウィンドウ関数を使った「デシル分析」「時系列データの処理」などの具体的な例をクエリ交えての説明されており、そちらを読んでいくにつれて

  • なぜウィンドウ関数が分析関数と呼ばれるのか
  • なぜSQLでデータ分析をやるのか

がわかる章でした。

第11章

第11章は「データ分析基盤構築」について書かれている章です。

最近業務で「DWH」「データマート」という単語をよく聞くのですが、人によって違う認識を持っており、「何が正確なんだ!」と頭を悩ましていました。
そんな「DWH」「データマート」について本書では歴史と重要なポイントがまとめられているためとてもスッキリしました。
第2部は比較的エンジニア向けの内容となっていますが、個人的には第11章はエンジニアだけじゃなくプランナーの方にも読んでいただきたい章でした。

第13章

第13章は「SQLのバッチを作成するための仕組み」について書かれた章です。
僕も最近OLTPのRDBに溜まったデータを分析しやすい形に整形する仕事をやっていたので、まさに必要としていた情報でした。
データ整形をSQLでやる上での重要な考え方から、実際にどうやるのか、管理する為のソフトウェアについてなど全体をカバーしていたのでとても勉強になりました。
また

  • データを整形する際のクエリは細かく分解
  • 冪等性を持ったクエリにする

など、こうしたほうがいいだろうなと思ったことも書かれており、 自分の考えは悪くなかったんだなと安心できてよかったです。

SQLのテストもまさにどうしようかなと思っていたところだったので、 実際に設計・開発をする際に参考となる章でした。

最後に

本書はSQLを使ったデータ分析や基盤構築について深く書いているというよりは、なぜSQLなのか、データ分析の全体像はどうなるのかが多く書かれています。そのため、エンジニアとプランナー間の共通認識として活用できる本なのかなと感じました。