内容紹介
スケーラブルで信頼性の高いリアルタイムデータ分析システムの理論と実装方法が理解できる!
絶え間なく入ってくる大量のデータをリアルタイムに処理・分析するストリームデータ処理を分散処理するための大規模データ処理システムを構築するために必要な概念とその実装手法を紹介します。大規模データ処理において、スケーラビリティと信頼性をどう担保するのか、サーバダウン時のデータ欠損を最小限に抑え、なおかつ保守性の高いシステム設計を実現するには、どのようなデータモデルとアーキテクチャが必要なのか、データ分析を行うエンジニアであれば、知っておくべき情報を提供します。
このような方におすすめ
学生、プログラマ、データ分析に関わるすべての人
目次
詳細目次
目次
まえがき
1章 ビッグデータを扱うための新しいパラダイム
1.1 本書の構成
1.2 伝統的なデータベースを使ったスケールの方法
1.3 NoSQLは万能薬ではない
1.4 第一原理
1.5 ビッグデータシステムに望まれる特性
1.6 完全増分型アーキテクチャにおける問題点
1.7 ラムダアーキテクチャ
1.8 最近の技術動向
1.9 例題アプリケーション:SuperWebAnalytics.com
1.10 まとめ
Ⅰ部 バッチ層
2章 ビッグデータのためのデータモデル
2.1 データの特性
2.2 事実ベースモデルでデータを表現する
2.3 グラフスキーマ
2.4 SuperWebAnalytics.comの全データモデル
2.5 まとめ
3章 ビッグデータのためのデータモデル詳説
3.1 シリアル化フレームワークを使う理由
3.2 Apache Thrift
3.3 シリアル化フレームワークの限界
3.4 まとめ
4章 バッチ層のデータストレージ
4.1 マスターデータ集合のストレージ要件
4.2 バッチ層向けストレージソリューションを選ぶ
4.3 分散ファイルシステムの動作方法
4.4 分散ファイルシステムを使ってマスターデータ集合を格納する
4.5 垂直分割
4.6 生まれつき低レベルな分散ファイルシステム
4.7 分散ファイルシステムの上にSuperWebAnalytics.comのマスターデータ集合を格納する
4.8 まとめ
5章 バッチ層のデータストレージ詳説
5.1 Hadoop分散ファイルシステムを使用する
5.2 Pailを使ったバッチ層でのデータストレージ
5.3 SuperWebAnalytics.comのマスターデータ集合を格納する
5.4 まとめ
6章 バッチ層
6.1 例題紹介
6.2 バッチ層での計算
6.3 再計算型アルゴリズム対増分型アルゴリズム
6.4 バッチ層のスケーラビリティ
6.5 MapReduce:ビッグデータ計算のためのパラダイム
6.6 MapReduceの本質
6.7 パイプ図:バッチ計算を考えるための高レベルな方法
6.8 まとめ
7章 バッチ層詳説
7.1 わかりやすい例
7.2 データ処理ツールの落とし穴
7.3 JCascalogとは
7.4 合成
7.5 まとめ
8章 バッチ層の例:アーキテクチャとアルゴリズム
8.1 SuperWebAnalytics.comバッチ層の設計
8.2 ワークフローの概要
8.3 新しいデータの取り込み
8.4 URLの正規化
8.5 ユーザーIDの正規化
8.6 ページ閲覧の重複を取り除く
8.7 バッチビューを計算する
8.8 まとめ
9章 バッチ層の例:実装
9.1 出発点
9.2 ワークフローの準備
9.3 新しいデータの取り込み
9.4 URLの正規化
9.5 ユーザーIDの正規化
9.6 ページ閲覧の重複を取り除く
9.7 バッチビューを計算する
9.8 まとめ
Ⅱ部 サービス層
10章 サービス層
10.1 サービス層の性能計測値
10.2 正規化/非正規化問題に対するサービス層の解決策
10.3 サービス層データベースの要件
10.4 SuperWebAnalytics.comのサービス層の設計
10.5 完全増分型アーキテクチャとの比較
10.6 まとめ
11章 サービス層詳説
11.1 ElephantDBの基本
11.2 SuperWebAnalytics.comのサービス層の構築
11.3 まとめ
Ⅲ部 速度層
12章 実時間ビュー
12.1 実時間ビューの計算
12.2 実時間ビューの格納
12.3 増分型計算の課題
12.4 非同期更新と同期更新
12.5 実時間ビューの有効期限
12.6 まとめ
13章 実時間ビュー詳説
13.1 Cassandraのデータモデル
13.2 Cassandraの使用
13.3 まとめ
14章 キューイングとストリーム処理
14.1 キューイング
14.2 ストリーム処理
14.3 高レベルの逐次ストリーム処理
14.4 SuperWebAnalytics.comの速度層
14.5 まとめ
15章 キューイングとストリーム処理詳説
15.1 Apache Stormでのトポロジーの定義
15.2 Apache Stormクラスターとデプロイ
15.3 メッセージ処理を保証する
15.4 SuperWebAnalytics.comでの時系列に並べた重複なし訪問者数の速度層の実装
15.5 まとめ
16章 マイクロバッチストリーム処理
16.1 1回保証セマンティクスの実現
16.2 マイクロバッチストリーム処理の中心的概念
16.3 マイクロバッチ処理のためのパイプ図の拡張
16.4 SuperWebAnalytics.comの速度層の仕上げ
16.5 直帰率分析の例を見直す
16.6 まとめ
17章 マイクロバッチストリーム処理詳説
17.1 Tridentの使用
17.2 SuperWebAnalytics.comの速度層の仕上げ
17.3 完全に耐障害性を備えたインメモリマイクロバッチ処理
17.4 まとめ
18章 ラムダアーキテクチャをより深く学ぶ
18.1 データシステムの定義
18.2 バッチ層とサービス層
18.3 速度層
18.4 クエリ層
18.5 まとめ
索引
続きを見る