NoSQLプログラミング実践活用技法

翔泳社(出版社) , 長尾高弘(訳) , shashank Tiwari(著) , 中村泰久(監修)

商品番号
126050
販売状態
発売中
納品形態
宅配便にてお届け
発売日
2012年05月17日
ISBN
9784798126050
判型
B5変
ページ数
432
刷・バージョン
1
キーワード
プログラミング  SQL  NoSQL

販売価格:¥4,104(税込)

送料無料 在庫あり

本体価格の10%をポイント還元(会員限定)

電子書籍を見る
  • このエントリーをはてなブックマークに追加
ほしい物リストに追加

ビッグデータ処理の技術要件:初歩からマスタリングまで

Webマーケティングで脚光を浴びる「ビッグデータ」。その背後で不可欠な技術要件である「NoSQL」の全体像を見通せる最強の概説書です。NoSQLの基礎から始まり、パフォーマンスのチューニングやアーキテクチャ上のガイドラインといった高度な話題まで踏み込んだ、NoSQLを学びたいすべてのエンジニアに有用な情報が凝縮されています。

【主な内容】●MapReduceベースのスケーラブルなデータ処理の基本 ●Hadoopを使ったサンプル ●HiveやPigといった高水準の抽象モデル ●Amazon Web ServicesとGoogle App Engineが提供するデータベースサービスに関する解説 ●Google、Amazon、Facebook、Twitter、LinkedInのスケーラブルなデータアーキテクチャ

第1部 さあ始めよう

1章 NoSQLとは何か、なぜ必要なのか

1.1 NoSQLの定義と基礎知識
 1.1.1 NoSQLの簡単な歴史と登場の経緯
 1.1.2 ビッグデータ
 1.1.3 スケーラビリティ
 1.1.4 MapReduce入門
1.2 ソート済み列指向データベース
1.3 キー/バリュー型データストア
1.4 ドキュメントデータベース
1.5 グラフデータベース
1.6 まとめ

2章 Hello NoSQL:最初の一歩

2.1 最初の味見:2つの単純なサンプルを試してみる
 2.1.1 単純な永続データセット:住みたい場所
 2.1.2 車のモデルとメーカーのデータを格納する
2.2 言語バインディングを操作する
 2.2.1 MongoDBのドライバ
 2.2.2 Thrift入門
2.3 まとめ

3章 NoSQLのインターフェイス、インタラクション

3.1 SQLでなければ何なのか
 3.1.1 データの格納とアクセス
 3.1.2 MongoDBにおけるデータの格納とアクセス
 3.1.3 MongoDBのクエリー
 3.1.4 Redisにおけるデータの格納とアクセス
 3.1.5 Redisのクエリー
 3.1.6 HBaseにおけるデータの格納とアクセス
 3.1.7 HBaseのクエリー
 3.1.8 Apache Cassandraにおけるデータの格納とアクセス
 3.1.9 Apache Cassandraのクエリー
3.2 NoSQLデータベースの言語バインディング
 3.2.1 言語を選ばないThrift
 3.2.2 Java用の言語バインディング
 3.2.3 Python用の言語バインディング
 3.2.4 Ruby用の言語バインディング
 3.2.5 PHP用の言語バインディング
3.3 まとめ

2部 NoSQLの基礎を学ぶ

 

4章 ストレージアーキテクチャの基礎

4.1 列指向データベースの操作
 4.1.1 リレーショナルデータベースでは表と列を使う
 4.1.2 列指向データベースとRDBMSの違い
 4.1.3 ネストされたキー/値ペアとしての列指向データベース
 4.1.4 Webテーブルのレイアウトを作る
4.2 HBase分散ストレージアーキテクチャ
4.3 ドキュメントデータベースの内部構造
 4.3.1 メモリマップトファイルへのデータの格納
 4.3.2 MongoDBのコレクションとインデックスの利用ガイドライン
 4.3.3 MongoDBの信頼性と持続性
 4.3.4 水平スケーリング
4.4 MemcachedとRedisのキー/バリュー型データストア
 4.4.1 Memcachedの内部構造
 4.4.2 Redisの内部構造
4.5 結果整合性データベース
 4.5.1 コンシステントハッシュ
 4.5.2 オブジェクトのバージョン管理
 4.5.3 ゴシップベースのメンバーシップとヒントハンドオフ
4.6 まとめ

5章 CRUD操作の実行

5.1 レコードの作成
 5.1.1 ドキュメントデータベースのレコード作成操作
 5.1.2 列指向データベースのレコード作成操作
 5.1.3 キー/値マップのレコード作成操作
5.2 データへのアクセス
 5.2.1 MongoDBのドキュメントへのアクセス
 5.2.2 HBaseのデータアクセス
 5.2.3 Redisのクエリー
5.3 データの更新と削除
 5.3.1 MongoDB、HBase、Redisでのデータの更新
 5.3.2 制限された不可分性とトランザクション完全性
5.4 まとめ

6章 NoSQLデータベースのクエリー

6.1 SQLとよく似ているMongoDBのクエリー
 6.1.1 MovieLensデータの格納
 6.1.2 MongoDBのMapReduce
6.2 HBaseなどの列指向データベースへのアクセス
 6.2.1  株価履歴データ
6.3 Redisのクエリー:詳説
6.4 まとめ

7章 データストアの設計変更と拡張の管理

7.1 ドキュメントデータベースの設計変更
 7.1.1 スキーマレスの柔軟性
 7.1.2 MongoDBへのデータのインポートとエクスポート
7.2 列指向データベースのスキーマ拡張
 7.2.1 HBaseへのデータのインポートとエクスポート
7.3 キー/バリュー型データストアでのデータの拡張
7.4 まとめ

8章 データセットのインデクシングとソート

8.1 データベースのインデックス
8.2 MongoDBのインデクシングとソート
8.3 MongoDBのインデックスの作成と活用法
 8.3.1 複合インデックス
 8.3.2 一意でスパースなインデックスの作成
 8.3.3 キーワードベースの検索とマルチキー
8.4 CouchDBのインデックスとソート
 8.4.1 CouchDBにおけるB木インデックス
8.5 Apache Cassandraのインデクシング
8.6 まとめ

9章 トランザクションとデータ完全性の管理

9.1 RDBMSとACID
 9.1.1 分離レベルと独立性の関係
9.2 分散ACIDシステム
 9.2.1 整合性
 9.2.2 可用性
 9.2.3 分断耐性
9.3 CAP定理の原理
 9.3.1 可用性を犠牲にするオプション
 9.3.2 分断耐性を犠牲にするオプション
 9.3.3 整合性を犠牲にするオプション
9.4 一部のNoSQL製品における整合性の実装
 9.4.1 MongoDBの分散整合性
 9.4.2 CouchDBの結果整合性
 9.4.3 Apache Cassandraの結果整合性
 9.4.4 Membaseの整合性モデル
9.5 まとめ

3部 NoSQLに熟達する

10章 クラウドのNoSQL(GAEとAmazon SimpleDB)

10.1 Google App Engineのデータストア
 10.1.1 GAE Python SDKのインストールとセットアップ
 10.1.2 PythonによるGAE用データモデリングの基礎
 10.1.3 クエリーとインデックス
 10.1.4 サポートされているフィルタとソート
 10.1.5 Java SDKのごく簡単な紹介
10.2 Amazon SimpleDB
 10.2.1 SimpleDBに触れてみる
 10.2.2 REST APIの使い方
 10.2.3 Javaを使ってSimpleDBにアクセスする
 10.2.4 Ruby、Pythonを使ってSimpleDBにアクセスする
10.3 まとめ

11章 MapReduceによるスケーラブルな並列処理

11.1 MapReduceの基本
 11.1.1 個々の銘柄の最高値を探す
 11.1.2 NYSE株価履歴データをCouchDBにロードする
11.2 HBaseのMapReduce
11.3 MapReduceの可能性とApache Mahout
11.4 まとめ

12章 Hiveによるビッグデータの分析

12.1 Hiveの基礎
12.2 再び映画の評価レコード
12.3 古きよきSQL
12.4 Hive QLの結合操作
 12.4.1 実行計画
 12.4.2 パーティションテーブル
12.5 まとめ

13章 データベースの内部構造

13.1 MongoDBの内部構造
 13.1.1 MongoDBのワイヤプロトコル
 13.1.2 ドキュメントの挿入
 13.1.3 コレクションへのクエリーの発行
 13.1.4 MongoDBのデータベースファイル
13.2 Membaseのアーキテクチャ
13.3 Hypertableの内部動作
 13.3.1 正規表現サポート
 13.3.2 ブルームフィルタ
13.4 Apache Cassandra
 13.4.1 ピアツーピアモデル
 13.4.2 ゴシップとアンチエントロピー
 13.4.3 高速書き込み
 13.4.4 ヒントハンドオフ
13.5 Berkeley DB
 13.5.1 ストレージの構成
13.6 まとめ

4部 NoSQLを極める

14章 どのNoSQL製品を選ぶべきか

14.1 NoSQL製品の比較
 14.1.1 スケーラビリティ
 14.1.2 トランザクション完全性と整合性
 14.1.3 データモデリング
 14.1.4 クエリーのサポート
 14.1.5 アクセスとインターフェイス
14.2 ベンチマークテストによるパフォーマンスの計測
 14.2.1 読み/更新で50/50
 14.2.2 読み/更新で95/5
 14.2.3 スキャン
 14.2.4 スケーラビリティテスト
 14.2.5 Hypertableテスト
14.3 開発の経緯に基づいた比較
14.4 まとめ

15章 データベースの併用

15.1 MySQLとNoSQLの併用
15.2 イミュータブルなデータストア
 15.2.1 Facebookのポリグロットパーシステンス
 15.2.2 データウェアハウスとビジネスインテリジェンス
15.3 WebフレームワークとNoSQL
 15.3.1 RailsでNoSQLを使う
 15.3.2 DjangoでNoSQLを使う
 15.3.3 Spring DataのNoSQLサポート
15.4 RDBMSからNoSQLへの移行
15.5 まとめ

16章 パフォーマンスチューニング

16.1 並列処理アルゴリズムの目標
 16.1.1 レイテンシを減らす意味
 16.1.2 スループットの向上
 16.1.3 線形スケーラビリティ
16.2 パフォーマンスに影響を与える数式
 16.2.1 アムダールの法則
 16.2.2 リトルの法則
 16.2.3 メッセージコストモデル
16.3 パーティション分割
16.4 異種混在環境でのスケジューリング
16.5 MapReduceのさらなるチューニング
 16.5.1 通信のオーバーヘッド
 16.5.2 圧縮
 16.5.3 ファイルのブロックサイズ
 16.5.4 並列コピー
16.6 HBaseコプロセッサ
16.7 ブルームフィルタ
16.8 まとめ

17章 ツールとユーティリティ

17.1 RRDtool
17.2 Nagios
17.3 Scribe
17.4 Flume
17.5 Chukwa
17.6 Pig
 17.6.1 Pigとのインターフェイス
 17.6.2 Pig Latinの基礎
17.7 nodetool
17.8 OpenTSDB
17.9 Solandra
17.10 HummingbirdとC5t
17.11 GeoCouch
17.12 Alchemy Database
17.13 Webdis
17.14 まとめ

付 録 NoSQL製品のインストールとセットアップ

A.1 Hadoopのインストールとセットアップ
 A.1.1 Hadoopをインストールする
A.1.2 シングルノードHadoopを設定する
A.1.3 擬似分散モードをセットアップする
A.2 HBaseのインストールとセットアップ
A.3 Hiveのインストールとセットアップ
 A.3.1 Hiveをセットアップする
 A.3.2 Hadoopの設定との関係
A.4 Hypertableのインストールとセットアップ
 A.4.1 HypertableディストリビューションをFHS準拠にする
 A.4.2 HypertableでHDFSを使うための設定
A.5 MongoDBのインストールとセットアップ
A.5.1 MongoDBをセットアップする
A.6 CouchDBのインストールとセットアップ
A.7 Redisのインストールとセットアップ
A.8 Cassandraのインストールとセットアップ
 A.8.1 Cassandraをセットアップする
 A.8.2 Cassandra用にlog4jをセットアップする
 A.8.3 ソースからCassandraをインストールする
 A.8.4 Couchbaseをインストール、セットアップする
A.9 Nagiosのインストールとセットアップ
 A.9.1 Nagiosをダウンロード、ビルドする
 A.9.2 Nagiosをセットアップする
 A.9.3 Nagios Pluginをコンパイル、インストールする
A.10 RRDtoolのインストールとセットアップ
索引

コラム目次

RDBMS の欠点
データサイズの数学
ディスクストレージとデータの読み書き速度
Thrift とは何か
なぜMongoDB とApache Cassandra だけなのか
MongoDB のデータディレクトリとポートをカスタマイズする
Apache Cassandraノードを実行するための基本設定
Redisサンプルについて
BSON はプロトコルバッファのようなものか
Redis がOS の仮想メモリスワッピングを使わないのはなぜか
一意なプライマリキー
MovieLens
クエリードキュメントのデータ型
垂直スケーリングの難点と分散コンピューティングの落とし穴
クラウドで利用できるリレーショナルデータベース
SimpleDB のリージョン
認証要求
Hive はリアルタイムクエリーのためのツールではない
BSON の仕様

書籍のサンプルなどのダウンロードは、翔泳社サイトへ移動いたしました。
ダウンロード

各種問い合わせは以下のリンクからご連絡ください

関連商品

先生のための小学校プログラミング教育がよくわかる本

販売価格:1,814円(税込)

2017.08.07発売

スラスラわかるPython

販売価格:2,484円(税込)

2017.08.03発売