スケーラブルリアルタイムデータ分析入門

―ラムダアーキテクチャによるビッグデータ処理

[cover photo]
TOPICS
Database
発行年月日
PRINT LENGTH
384
ISBN
978-4-87311-775-1
原書
Big Data
FORMAT
PDF
Print
4,180円
この商品は品切れ再入荷未定です

絶え間なく入ってくる大量のストリームデータをリアルタイムに処理・分析するために必要な概念とその実現手法を紹介します。任意のクエリに対応しながら、スケーラビリティと信頼性をどう担保するのか、障害発生時にデータを復旧しやすく、汎用的で拡張性や保守性の高いシステム設計を実現するには、どのようなデータモデルとアーキテクチャが必要なのか。データ分析を行うエンジニアが備えておくべき知識と情報について、従来のアーキテクチャが持つ問題を解消するために著者が開発した「ラムダアーキテクチャ」のデータモデルに沿って解説します。

目次

目次
まえがき

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 まとめ

索引