ビッグデータを支える技術を読んだ
ビッグデータを支える技術を技術評論社様から御恵贈いただいたので、レビューを書きます。
個人的に、著者の西田さんとは一度お会いしたことがあります。(先方は覚えてらっしゃらないでしょうが。)いかなごの釘煮を頂いた事を今でも覚えています。
西田さんは2008年にGoogleを支える技術という本を出版され、そちらの方は私も購入して読んだ記憶があります。思えば、技評の「支える技術」シリーズはGoogleを支える技術から始まったような気がします。
ビッグデータを支える技術は、ある種、Googleを支える技術の続編といえるかもしれません。まだ当時はHadoopを中心としたデータ処理のエコシステムは完成したとは言えない状態でしたが、あれから9年が経ち、Hiveがリリースされ、Prestoがリリースされ、あの頃思い描いていたものとは少し違う気もしますが、ともかく、それなりの大規模データであっても分析できる環境がGoogleの外でも構築できるようになってきましたし、実際に色んな所で使われています。
あの頃思い描いていたのとは少し違う、という個人的な疑問は、結局分析に使うのは全部SQLライクななにかなのか、という点にあります。そういう意味では、自分の中では、Sparkの方が思い描いていたステキな分散処理のサムシングに近いのですが、SparkはSparkで、同僚が使っているところを見ると、まだまだ発展途上のソフトウェアで、結構しんどい印象があります。
話が少しずれましたが、本書に書いてある話は、一言で表現するならば「データを集めて集計するにはどうするか」だけです。それだけで283ページの本です。この本には、どういう解析をすると効果的なのかとか、どういうところに気をつけてシステムを設計すればいいのか、みたいなことは書いてません。(書いてたらたぶん3倍ぐらいにページ数が膨らんでしまうでしょう。)単に、集めて集計する、ということが、システムが大規模になるとどれだけ難しいのかということが、ここからもわかります。
もっとも、よく考えてみればだいたいの物事と言うのはそんな感じで、電池と電球をつないで電気を流すのは小学生の実験でもやりますが、それを大規模に行う発電システムと送電システムは複雑さのかたまりと言ってもいいぐらい複雑です。スケールが大きくなると、物事はだいたいなんでも話がややこしくなるものなのでしょう。 本書は、カタログ的にいろんな技術の触り方について解説をしていて、それはそれでよいのです(特に、Prestoについての解説が日本語で読める本というのはたぶんこれまでなかったと思います)が、各種のソフトウェアについて深く掘り下げた別の本がない、という点を残念に思います。日本の技術書市場の広さを考えると、これからも、それぞれを深く掘り下げた本が出てくるのはなかなか難しいのかな、という気もしますが、GPUを支える技術みたいなマニアックな本まで出してしまう技評さんになら、そういう本を期待してもいいんでしょうか。
最近は深層学習ブームのせいで、うちもAIやるんや、みたいな会社が多くなってきてる印象がありますが、正直、その大半は地に足がついてません。それよりは、AIに背を向けて地道にデータ分析をしようという方が、ビジネスとしては良さそうに思います。
終わり方がよくわからなくなってきましたが、「我が社もビッグデータ分析や!」みたいなことを社長が言いだした、でもそういう分野には詳しくないんだけどどうしよう、みたいなときにはこの本を読むととても良いでしょう。データ分析は魔窟と言って良いぐらい複雑な分野なので、この1冊でオールオッケーというわけにはいきませんが、地図なしで荒野をさまようよりは、地図を持って荒野をさまよったほうが良いでしょう。生き残る確率が上がります。