RDB技術者のためのNoSQLガイド

概 要

かつてNoSQLは最先端の技術でしたが、いまでは使って当たり前の技術になっています。AmazonやMicrosoftなどの大手ベンダも、NoSQLの商用製品やクラウドサービスを続々登場させ、エンタープライズでの利用が激増しています。本書は、一般のRDBエンジニアを対象に、NoSQLの基礎知識とエンタープライズ視点での活用方法を解説したテキストです。NoSQLの代表プロダクトの最新情報や想定されるユースケースを多数掲載しています。

著者 河村康爾、北沢匠、佐伯嘉康、佐藤直生、原沢滋、平山毅、李昌桓、渡部徹太郎(監)
価格 本体3400円(税別)
ISBN 978-4-7980-4573-3
発売日 2016/2/25
判型 A5
ページ数 568
CD/DVD
ダウンロード
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

第1章 前提

1-1 この本で伝えたいこと

1-1-1 NoSQLというバズワードの実態を理解

1-1-2 エンタープライズ視点のNoSQL活用方法

1-1-3 NoSQLの最新情報

1-2 想定する読者

1-3 本書の構成

第2章 イントロダクション

2-1 RDBだけだと辛くないですか?

2-1-1 RDBはデファクトスタンダード

2-1-2 SIerのエンジニアにとってのデータベースの経験

2-1-3 業務データを扱うだけでは不十分になってきている

2-1-4 RDBだけでは立ちいかない

2-1-5 RDBが適さない身近なエピソード

2-1-6 RDB以外を知ることが重要

2-1-7 これまでのまとめ

2-2 NoSQLとは

2-2-1 NoSQLはバズワード

2-2-2 KVS,ドキュメントDB,グラフDBの違い

2-2-3 NoSQLがバズワードになった背景

2-3 NoSQLにすると嬉しいこと・辛いこと

2-3-1 アプリケーション開発者にとって

2-3-2 データベース管理者にとって

2-3-3 マネージャや経営者にとって

2-4 よくあるNoSQLの勘違い

2-4-1 「バッチが高速になる」は勘違い

2-4-2 「トランザクションが高速になる」は勘違い

2-4-3 「ビッグデータを分析できる」は勘違い

2-4-4 「非構造データが効率的に扱える」は正確ではない

2-4-5 「RDBから置き換えると速くなる」は正確ではない

2-4-6 「オープンソースしかない」は昔の話

2-4-7 「スキーマがない」は昔の話

2-4-8 「SQLが使えない」は昔の話

第3章 データベースの中のNoSQLの位置づけ

3-1 データベースを分類する2つの軸

3-1-1 重視する性能による分類軸

3-1-2 性能拡張モデルによる分類軸

3-2 データベースの4つのエリア

3-2-1 RDB(OLTP)

3-2-2 RDB(DWH)

3-2-3 Hadoop(HDFS+MapReduce)

3-2-4 KVS

3-2-5 ドキュメントDB

3-2-6 グラフDB

3-3 RDB(OLTP)とKVS/DocDBの違い

3-3-1 RDB(OLTP)は強い整合性

3-3-2 強い整合性を保ったまま性能をスケールするのは困難

3-3-3 KVS/DocDBでは3つの工夫で性能をスケールさせている

3-3-4 CAPの定理

3-4 HadoopとKVS/DocDBの違い

3-4-1 Hadoop(HDFS+MapReduce)の動作

3-4-2 Hadoopと比較したときのKVS/DocDBの動作

3-4-3 4つのデータベースの比較表

3-5 4つのエリアを超えて成長するデータベース達

3-5-1 応答が速くSQLを使えるHadoop

3-5-2 集計できるKVS/DocDB

3-5-3 SQLを使えるNoSQL

3-5-4 JSONを格納するRDB(OLTP)

3-5-5 スケールアウトするRDB(DWH)

3-5-6 オペレーションも分析もできるRDB(DWH)

3-5-7 まとめ

第4章 データモデルごとのNoSQLプロダクト紹介

4-1 データモデルの種類

4-1-1 データモデルの説明

4-1-2 複雑度比較

4-1-3 データ間の関連度とスケーラビリティ比較

4-2 データモデル毎のプロダクトの紹介

4-2-1 キーバリューモデルを採用するプロダクト

4-2-2 ワイドカラムモデルを採用するプロダクト

4-2-3 ドキュメントモデルを採用するプロダクト

4-2-4 グラフモデルを採用するプロダクト

第5章 NoSQLの代表プロダクト紹介を読む前に

5-1 紹介するプロダクトの選定基準

5-1-1 データモデルの中で広く使われていること

5-1-2 国内のサポート体制が整っているもの

5-2 プロダクト紹介の観点

第6章 Redis

6-1 概要

6-2 データモデル

6-2-1 データ型

6-2-2 永続化

6-3 API

6-3-1 クエリの実行例

6-3-2 利用できるクエリ

6-3-3 アプリケーションからの通信手段

6-3-4 部分的トランザクション

6-4 性能拡張

6-4-1 Redis Clusterのシャーディング

6-4-2 クエリの分散

6-4-3 リシャーディング

6-4-4 Redis Clusterのレプリケーションによる読み取り負荷分散

6-4-5 ハッシュタグを用いたRedus Cluster上での複数キー操作

6-5 高可用

6-5-1 レプリケーションによる可用性向上

6-5-2 フェイルオーバ

6-5-3 非同期レプリケーションによるデータのロスト

6-5-4 永続化していないマスターのリカバリ時の注意点

6-6 運用

6-6-1 バックアップ

6-6-2 監視

6-6-3 稼働統計

6-6-4 バージョンアップ

6-7 セキュリティ

6-7-1 パスワード認証

6-7-2 コマンドのリネーム・無効化

6-7-3 暗号化

6-8 出来ないこと

6-8-1 条件検索や集計などの処理が存在しない

6-8-2 ロールバック機能が存在しない

6-8-3 厳密な一貫性の担保

6-8-4 セキュリティ機能に乏しい

6-9 主なバージョンと特徴

6-10 国内のサポート体制

6-11 ライセンス体系

6-12 効果的な学習方法

6-13 その他

6-13-1 Redis Clusterの詳細

6-13-2 シャーディングとレプリケーションを組み合わせ

第7章 Cassandra

7-1 概要

7-1-1 Cassandraの特徴

7-1-2 Cassandraのユースケース

7-1-3 OSS版と商用版

7-2 データモデル

7-2-1 Cassandraオブジェクト

7-3 API

7-3-1 Cassandra Query Language(CQL)

7-3-2 Cassandraのドライバ/コネクタ

7-3-3 軽量トランザクション

7-3-4 バッチ分析

7-3-5 外部Hadoopのサポート

7-3-6 データの検索

7-3-7 分析と検索に対応したワークロードの管理

7-3-8 高速な書き込みと読み込み

7-4 性能拡張

7-4-1 クラスタアーキテクチャの概要

7-4-2 Cassandraのクラスタ、データセンタ、ノード

7-4-3 データの分散

7-4-4 クエリの分散

7-5 高可用

7-5-1 レプリケーションの基礎

7-5-2 マルチデータセンタとクラウドという選択

7-5-3 レプリケーション係数とクエリの整合性レベル

7-6 運用

7-6-1 クエリツール、管理ツール

7-6-2 バックアップとリカバリ

7-6-3 パフォーマンス管理

7-6-4 データの移行

7-7 セキュリティ

7-7-1 認証

7-7-2 権限管理

7-7-3 暗号化

7-7-4 データの監査

7-8 出来ないこと

7-9 主なバージョンと特徴

7-10 国内のサポート体制

7-11 ライセンス体系

7-12 効果的な学習方法

7-12-1 Cassndraの技術マニュアル

7-12-2 Cassandra トレーニング

7-12-3 Cassandraの技術情報、不具合情報

第8章 HBase

8-1 概要

8-2 データモデル

8-3 API

8-3-1 テーブルの作成

8-3-2 データの格納

8-3-3 データの参照

8-3-4 データの更新

8-3-5 データの削除

8-3-6 テーブルの削除

8-3-7 APIについての補足

8-3-8 部分的トランザクション

8-4 性能拡張

8-4-1 HBaseクラスタのコンポーネント

8-4-2 データの分散とクエリの分散

8-5 高可用

8-6 運用

8-6-1 データのバックアップとリストア

8-6-2 監視と稼働統計

8-6-3 バージョンアップ

8-7 セキュリティ

8-7-1 データへのアクセス制御

8-7-2 操作記録

8-7-3 暗号化

8-8 出来ないこと

8-9 主なバージョンと特徴

8-10 国内のサポート体制

8-11 ライセンス体系

8-12 効果的な学習方法

第9章 Amazon DynamoDB

9-1 概要

9-1-1 概要

9-1-2 特徴

9-2 データモデル

9-2-1 アトリビュートのデータ型

9-2-2 DynamoDB JSON

9-2-3 キー

9-2-4 インデックス

9-2-5 DynamoDB Stream

9-3 API

9-3-1 APIとCRUD

9-3-2 アプリケーションから利用する

9-3-3 低レベルAPIと高レベルAPI

9-4 性能拡張

9-4-1 結果整合性

9-4-2 スループット、キャパシティーユニット

9-4-3 パーティション

9-5 高可用

9-5-1 レプリケーション、フェイルオーバ

9-5-2 クロスリージョンレプリケーション

9-6 運用

9-6-1 監視

9-6-2 バックアップ

9-7 セキュリティ

9-7-1 セキュリティの考え方

9-7-2 通信暗号化

9-7-3 アクセスコントロール

9-7-4 監査

9-8 出来ないこと

9-9 国内のサポート体制

9-10 効果的な学習方法

9-11 その他

9-11-1 バージョンと利用料

第10章 MongoDB

10-1 概要

10-1-1 MongoDBの主な特徴

10-2 データモデル

10-2-1 格納するデータの階層

10-2-2 格納できるデータ型

10-2-3 JSONのスキーマの事前チェック(ドキュメントバリデーション)

10-3 API

10-3-1 Mongoクエリ言語の概要

10-3-2 CRUDのサンプル

10-3-3 CRUDの特徴

10-3-4 集計

10-3-5 アプリケーションからの使い方

10-3-6 インデックス

10-4 性能拡張

10-4-1 シャーディングによる性能拡張

10-4-2 セカンダリ読み込みによる読み込み負荷分散

10-5 高可用

10-5-1 レプリケーションの概要

10-5-2 フェイルオーバ

10-5-3 セカンダリの種類

10-5-4 書き込み台数指定クエリ

10-6 運用

10-6-1 バックアップ

10-6-2 ヒューマンエラー対策(遅延レプリケーション)

10-6-3 監視・稼働統計

10-6-4 バージョンアップ

10-6-5 MongoDB Ops Manager

10-7 セキュリティ

10-7-1 通信暗号化

10-7-2 データ暗号化

10-7-3 アクセスコントロール

10-7-4 監査

10-8 出来ないこと

10-9 主なバージョンと特徴

10-9-1 バージョンのつけ方

10-9-2 主なバージョンとその機能

10-10 国内のサポート体制

10-11 ライセンス体系

10-12 効果的な学習方法

10-13 その他

10-13-1 便利な機能一覧

第11章 Couchbase

11-1 概要

11-1-1 Couchbaseという言葉

11-1-2 Couchbase Serverの主な特徴

11-2 データモデル

11-3 API

11-3-1 データへのアクセス方法

11-3-2 クライアントライブラリの各API実行サンプル

11-4 性能拡張

11-4-1 データ分散

11-4-2 データアクセスの分散

11-4-3 リバランスによる無停止でのクラスタ伸縮

11-5 高可用

11-5-1 クラスタ内レプリケーション

11-5-2 物理構成を意識したレプリケーション

11-5-3 複数クラスタ間のレプリケーション(XDCR)

11-6 運用

11-6-1 バックアップ

11-6-2 監視・稼働統計

11-6-3 バージョンアップ

11-7 セキュリティ

11-7-1 通信暗号化

11-7-2 管理者ユーザ、LDAP連携

11-7-3 監査ログ

11-8 出来ないこと

11-9 主なバージョンと特徴

11-9-1 バージョンの振り方

11-9-2 主なバージョンとその機能

11-10 国内のサポート体制

11-11 ライセンス体系

11-12 効果的な学習方法

11-13 その他

11-13-1 モバイルソリューション

11-13-2 便利な機能

11-13-3 ロードマップ

11-13-4 Couchbase Serverアーキテクチャ詳細

第12章 Microsoft Azure DocumentDB

12-1 概要

12-1-1 Microsoft Azure

12-1-2 Microsoft Azureのデータベース関連のサービス

12-1-3 Microsoft Azure DocumentDB

12-1-4 DocumentDBを使ってみよう

12-1-5 Azureの他の機能との連携

12-2 データモデル

12-2-1 リソースモデル

12-2-2 データモデル

12-3 API

12-3-1 REST API

12-3-2 クライアントSDK

12-3-3 インデックス

12-3-4 SQLクエリ(DocumentDB SQL)

12-3-5 ストアドプロシージャ、トリガ、UDF(ユーザ定義関数)、

トランザクション

12-3-6 文字列の検索

12-4 高可用

12-4-1 高可用性のためのアーキテクチャ

12-4-2 整合性レベルとレプリケーション

12-4-3 クライアントからの接続

12-5 性能拡張

12-5-1 コレクション

12-5-2 パーティション分割

12-5-3 パーティション分割に対応したアプリケーションの開発

12-5-4 .NET SDK を使用したパーティション分割

12-6 運用

12-6-1 管理と監視

12-6-2 バックアップ/リストア

12-7 セキュリティ

12-8 出来ない事

12-9 国内のサポート体制

12-10 効果的な学習方法

第13章 Neo4j

13-1 概要

13-1-1 グラフDBに向いている処理

13-1-2 グラフDBに向いていない処理

13-2 データモデル

13-2-1 グラフを構成する要素

13-2-2 グラフデータの格納形式

13-2-3 グラフデータモデル

13-3 API

13-3-1 Cypherクエリ

13-3-2 アプリケーションからのアクセス方法

13-4 性能拡張

13-4-1 HAクラスタによる処理性能向上

13-4-2 キャッシュシャーディングによる処理性能向上

13-5 高可用

13-5-1 HAクラスタのアーキテクチャ

13-5-2 システム構成

13-6 運用

13-6-1 バックアップ

13-6-2 リストア

13-6-3 バルクロード

13-6-4 監視

13-6-5 ログ出力

13-6-6 稼働統計

13-7 セキュリティ

13-8 出来ないこと

13-9 国内のサポート体制

13-10 主要バージョンと特徴

13-10-1 Neo4jのエディション間の比較

13-10-2 ライセンス体系

13-11 効果的な学習方法

13-11-1 公式ドキュメント

13-11-2 ユーザ会

13-11-3 書籍

13-11-4 他の日本語の資料

第14章 想定されるNoSQLのユースケース

14-1 キャッシュ(Redis)

14-1-1 RDBのスケールアップ・スケールアウトによる対処

14-1-2 RedisによるWebアプリケーションキャッシュ

14-1-3 まとめ

14-2 IoT(モノのインターネット)基盤(Cassandra)

14-2-1 RDBを用いた場合の課題

14-2-2 NoSQLによる課題解決

14-3 メッセージ基盤(Cassandra)

14-3-1 なぜNoSQL向きなのか

14-3-2 NoSQLを用いたメッセージ基盤の具体例

14-3-3 まとめ

14-4 Hadoop連携(HBase)

14-4-1 RDBの課題

14-4-2 HBaseによる解決

14-4-3 HBaseとMapReduceアプリケーションの連携

14-5 モバイルアプリケーションに代表されるアプリケーションでの利用(DynamoDB)

14-6 AWSサービスとの連動性を意識した利用(DynamoDB)

14-7 ログ格納システム(MongoDB)

14-7-1 RDBだと大変

14-7-2 MongoDBだと楽

14-7-3 まとめ

14-8 ECサイトのカタログ管理(MongoDB)

14-8-1 RDBだと大変

14-8-2 MongoDBだと楽

14-8-3 まとめ

14-9 高速開発(MongoDB)

14-9-1 RDBだと大変

14-9-2 MongoDBだと楽

14-9-3 Webフレームワークに組み込まれるMongoDB

14-9-4 まとめ

14-10 業界横断型アプリ(MongoDB)

14-10-1 RDBだと大変

14-10-2 MongoDBだと楽

14-10-3 まとめ

14-11 Webアプリ(ユーザプロファイル/セッションストレージ)(Couchbase)

14-11-1 RDBで実現しようとした時の課題

14-11-2 Couchbaseによる解決

14-12 Webアプリ(オムニチャネル/パーソナライズ)(Couchbase)

14-13 データベースのグローバル展開/ディザスタリカバリ(Couchbase)

14-14 モバイルとサーバのデータ同期(Couchbase)

14-15 リアルタイム詐欺摘発システム(Neo4j)

14-15-1 概要

14-15-2 Neo4jによる解決

14-15-3 RDBでは実現が難しい

14-16 適材人材の検索システム(Neo4j)

14-16-1 概要

14-16-2 Neo4jによる解決

14-16-3 RDBでは実現が困難

14-17 経路計算システム(Neo4j)

14-17-1 概要

14-17-2 Neo4jによる解決

14-17-3 RDBでは非効率

第15章 NoSQLの選び方

15-1 データ処理の課題を見極める

15-1-1 NoSQLで解決するのが最適な課題はどれか?

15-1-2 NoSQLでは解決できないRDB(OLTP)の課題

15-1-3 NoSQLで解決するかわからないRDB(OLTP)の課題

15-1-4 NoSQLで解決が期待できるRDB(OLTP)の課題

15-2 高い処理性能を出すためのNoSQLの選び方

15-2-1 小規模なキーバリューならRedis

15-2-2 マルチデータセンタでどこでも書き込めるようにしたいならCassandraかCouchbase

15-2-3 MongoDBは柔軟なデータ分散やレンジ指定クエリを速くしたい場合

15-2-4 Hadoopと一緒ならHBase

15-2-5 クラウド上でのスケーラビリティ獲得ならばDynamoDBやMicrosoft Azure DocumentDBを検討

15-3 半構造データを処理しやすいNoSQLの選び方

15-3-1 ドキュメントDBはどれを選ぶべきか

15-4 その他の選定の観点

15-4-1 可用性の高いNoSQLの選び方

15-4-2 セキュリティの高いNoSQLの選び方

15-5 本書にないNoSQLを選ぶ時のポイント

15-5-1 ありがちな謳い文句に踊らされない

15-5-2 性能比較を当てにしない

15-5-3 最新ドキュメントを見る

PR

秀和システム