「ビッグデータを支える技術」を読んで良かったこと

ビッグデータを支える技術

仕事としてビッグデータに関わる機会が増えてきましたが、Hadoop エコシステムに関する情報やビッグデータ全般に関する初学者向けの情報は、特に日本語のものではあまり多くない印象を持っていました。

2017年9月 に発売されており気になっていた「ビッグデータを支える技術」をようやく購入・読了したので、その感想をメモします。

書籍「ビッグデータを支える技術」について

書籍の目的については前書きに以下のように書かれています。

これから「ビッグデータの技術を学ぼう」というエンジニアに向けて、最初に知っておくべき基本的なデータ概念を広く取り上げることを目的としています。

引用元:ビッグデータを支える技術

ビッグデータの基礎知識にはじまりデータ処理に使用されるソフトウェア(Apache Hadoop等)、ビッグデータを扱うためのテーブルやスキーマの設計の考え方、バッチ処理やストリーミング処理の特徴など、幅広い観点からの情報が記載されています。最終的にどのようにデータ処理を自動化していくかといったことがテーマになっています。

初学者が幅広い知識を得ることも目的とされていますが、ある程度ビッグデータに関わったことのある立場の人が読んでも知識の整理になる印象を受けました。

著者は本エントリ公開時点でトレジャーデータ(株)に所属されている 西田 圭介氏です。

目次は以下のとおりです。

  • 第1章 ビッグデータの基礎知識
  • 第2章 ビッグデータの探索
  • 第3章 ビッグデータの分散処理
  • 第4章 ビッグデータの蓄積
  • 第5章 ビッグデータのパイプライン
  • 第6章 ビッグデータ分析基盤の構築

書籍「ビッグデータを支える技術」を読んで良かった点

スモールデータとビッグデータの使い分けについて気付かされた

本書のテーマはビッグデータですが、ラップトップで扱えるようなデータについてスモールデータという形で表現されていました。言われてみればその通りなのですが、ビッグデータだけでなくスモールデータを効率的に扱い、両者を適材適所で使い分けることも重要であると改めて気づかされました。

Hive on MR / Hive on Tez / Presto や Impala の実行過程の違いがわかりやすく記載されていた

今まで Hive on Tez が MR の場合と比べ早い理由についてなんとなく理解していた程度でしたが、第 3 章の 3.1 では日本語での図解付きでその点が記載されており、理解が大変クリアになりました。

Presto や Impala の場合は Hive と根本的に仕組みが異なりますが、こちらも同じ章の丁度よい箇所で実行過程の違いが記載されていました。

冪等性を実現するための手法の概要が記載されていた

最近では Apache Kafka で exactly once が実装されたようですが、それ以外のメッセージング・ストリーム処理で使われる仕組みでは at least once セマンティクスが使用されることが多く、プロデューサー・コンシューマー側双方で重複が発生することは避けられません。本書を読む前からこのような状況に直面した経験があり、重複排除の方法を調査してはいたものの「本当にこの方法で良いのか」というのは頭の片隅にありました。

本書では第 4 章 4.2 で、発生した重複をどのように排除するかの手法や考慮点が紹介されており、その上でストリーミング処理を使用することを避けたほうが良い場合にも触れられていました。今までモヤっとしていた部分が非常にクリアになりました。

簡単な実践が記載されており Jupyter Notebook を使ったデータ処理のイメージが持てた

第六章では Twitter Streaming APIs や Jupyter Notebook や PySpark 等のアプリケーションを使った簡単な実践が記載されていました。Hive や Spark でのデータ処理は経験したことがありましたが、Jupyter Notebook は使ってみようと思いつつ使っていなかったので良い機会でした。

ビッグデータを支える技術 Jupyter Notebook

個人のパソコンでも動作可能なソフトウェアでの実践だったため、簡単な処理を動かすだけならそれほど敷居が高くないこともわかりました。

ちなみに書籍では各種ソフトウェアのインストール等は Mac 向けだったため、Windows を使っている私は Linux 仮想マシン上で実行しました。

おわりに

ビッグデータの蓄積から分析基盤まで、全体をわかりやすい表現・図解を交えて記載している書籍であったため、途中で詰まることなく 2 日で読み終えることができました。

初学者だけでなく Hive や Spark は使ったことがあるものの、ビッグデータ全般に関する知識をより身に着けたいという方にもお勧めできると思います。今後も手元に置いておきたくなる書籍でした。