翔泳社の公式通販SEshopは全国送料無料!
ヘルプ 法人のお客様へ 新規会員登録 ログイン
SEshop

NoSQLプログラミング実践活用技法【PDF版】

長尾 高弘(翻訳) , 長尾 高弘(原著) , シャシャンク・ティワリ(著) , 中村 泰久(監修)

商品番号
131180
販売状態
発売中
納品形態
会員メニューよりダウンロード
発売日
2017年05月16日
ISBN
9784798131184
データサイズ
約19.6MB
制限事項
印刷可・テキストのコピー可
キーワード
プログラミング  SQL  NoSQL  電子書籍【PDF版】

4,180円(税込)(本体3,800円+税10%)
送料無料

380pt (10%)
ポイントの使い方はこちら

在庫あり

初回購入から使えるポイント500円分プレゼント

紙の書籍はこちら

※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。

  • ポスト
  • 本製品は電子書籍【PDF版】です。
  • ご購入いただいたPDFには、購入者のメールアドレス、および翔泳社独自の著作権情報が埋め込まれます。
    PDFに埋め込まれるメールアドレスは、ご注文時にログインいただいたアドレスとなります。
    Amazon Payでのお支払いの場合はAmazonアカウントのメールアドレスが埋め込まれます。
  • 本製品を無断で複製、転載、譲渡、共有および販売を行った場合、法律により罰せられる可能性がございます。
  • ご購入の前に必ずPDF利用案内をお読みください。

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

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

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

PDF版のご利用方法

  1. ご購入後、SEshopにログインし、会員メニューに進みます。
  2. ご購入電子書籍およびデータ > [ご購入電子書籍およびダウンロードデータ一覧]をクリックします。
  3. 購入済みの電子書籍のタイトルが表示されますので、リンクをクリックしてダウンロードしてください。
  4. PDF形式のファイルを、お好きな場所に保存してください。
  5. 端末の種類を問わず、ご利用いただけます。

第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 の仕様

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

関連商品

おすすめ特集

プログラミング入門書大特集

翔泳社のプログラミング書籍の中から、入門・初級者向けの書籍をピックアップ!

Linuxおすすめ本特集

【Linux本特集】入門~達人レベルまで!クラウド時代の必須知識Linuxを学ぶおすすめの本

ライティングおすすめ本

ライティングのスキルアップにおすすめの本。Webライティングやコピーライティングなど

マネー本特集

お金と経済の基礎知識から、資産形成・投資術、お金教育や介護まで。暮らしに役立つマネー本

インテリア本特集

おしゃれな部屋作りのヒントやインテリアの基礎知識、色使い、うつわや洋食器の知識まで、幅広い書籍をご紹介

事務職におすすめの本

Excel、日商簿記、業務の自動化を実現するRPAやPythonの技術など、事務職としてステップアップしたい人に!

特集をもっと見る