オープンソース徹底活用 Slim3 on Google App Engine for Java

概 要

Google App Engineに特化したフレームワーク「Slim3」を使ってBigtableを使いこなすための技術書です。Google App Engineは、SQLなどのリレーショナルデータベース(RDB)ではなく、膨大なデータを扱うのに適したKVS(Key Value Store)型データベースのBigtableを採用しています。本書では、Bigtableを使いこなせるようになるために、Slim3の設計哲学から、Google App Engineのデータストア、Low Level APIでのアクセス方法、データストアの操作、開発環境のTips、設計のテクニックなどを解説しています。サンプルコードのダウンロードサービス付き。

著者 ひが やすを(著・監)、小川信一
価格 本体2600円(税別)
ISBN 978-4-7980-2699-2
発売日 2010/7/29
判型 B5変
色数 1色
ページ数 280
CD/DVD
対象読者 中級
シリーズ オープンソース徹底活用
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

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

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

サポート

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

サポート情報へのリンク

目次

Chapter 1 クラウドの本質とGoogle App Engineの制限

1-1 クラウドの本質とは

1-2 リソース共有率を高める仕組み

1-3 スケールアウトする理由

1-4 spin-upに気をつけろ

Chapter 2 Slim3の設計哲学

2-1 Less is more

Chapter 3 Bigtable

3-1 Bigtableとは

3-2 Bigtableのデータ構造

3-3 Bigtableへのアクセス

3-4 タブレット

3-5 まとめ

Chapter 4 Google App Engineのデータストア

4-1 Bigtableとの違い

4-1-1 履歴機能やcolumn familyは使用できない

4-1-2 スキャン機能が拡張される

4-1-3 ACID性の保証される単位が拡張される

4-1-4 自動的に複数のスキャンを実行できる

4-1-5 カインド

4-2 カインド、エンティティ、キー、エンティティグループ

4-2-1 カインド

4-2-2 エンティティ

4-2-3 キー

4-2-4 エンティティグループ

4-3 プロパティ

4-3-1 プロパティ

4-3-2 リストプロパティ

4-3-3 プロパティのソート順

4-4 インデックス

4-4-1 ビルトインインデックス

4-4-2 カスタムインデックス

4-4-3 リストプロパティに対するインデックス

4-4-4 nullとmissing

4-5 クエリ

4-5-1 クエリの仕組み

4-5-2 ソート、フィルタ

4-5-3 単純なクエリ

4-5-4 マージジョイン

4-5-5 INとNOT_EQUAL

4-5-6 複雑なクエリ

4-5-7 エンティティのキーだけを返すクエリ

4-5-8 祖先キーだけを指定するクエリ

4-6 エンティティ、インデックスはどのように保存されるか

4-6-1 エンティティデータ

4-6-2 カインドインデックス

4-6-3 シングルプロパティインデックス

4-6-4 カスタムインデックス

4-6-5 カスタムインデックスの定義

4-6-6 自動採番用のID

4-7 トランザクション

4-7-1 書き込み時のライフサイクル

4-7-2 トランザクションの分離レベルと読み込み整合性

4-8 設計の注意点

4-8-1 制限と注意点

4-8-2 更新要件とエンティティグループ

4-8-3 検索要件と非正規化

Chapter 5 Low Level APIによるデータストアの操作

5-1 Low Level API

5-1-1 Low Level APIの良い点

5-1-2 Low Level APIの悪い点

5-2 ソースコードを実行して学習するための準備

5-2-1 JavaとEclipseをインストールする

5-2-2 プロジェクトを準備する

5-2-3 ソースコードを試すための基本ルール

5-3 Key

5-3-1 Keyオブジェクトを作成する

5-3-2 Keyのエンコード文字列表現

5-3-3 Keyクラスの機能

5-4 Entity

5-4-1 Entityオブジェクトを作成する

5-4-2 プロパティを設定・取得する

5-4-3 プロパティの

5-4-4 プロパティをまとめて操作する

5-4-5 Entityクラスのその他の機能

5-5 DatastoreService

5-5-1 データストアに保存する

5-5-2 データストアから取得する

5-5-3 データストアから削除する

5-5-4 事前にKeyのid値を自動採番する

5-5-5 データストア操作のタイムアウト

5-6 Query

5-6-1 Queryオブジェクトを作成する

5-6-2 フィルタ条件を設定する

5-6-3 ソート順を設定する

5-6-4 Ancestorクエリを使用する

5-6-5 エンティティのキーだけを取得する

5-6-6 結果を取得する

5-6-7 カーソルを使う

5-7 Transaction

5-7-1 Transactionを使用する

5-7-2 Transaction処理中の制限

5-8 エンティティ同士の関連

5-9 DatastoreServiceConfig

5-9-1 処理時間の上限

5-9-2 読み込み時の整合性

5-9-3 暗黙のトランザクション

Chapter 6 Slim3によるデータストアの操作

6-1 Slim3の特徴

6-1-1 高速

6-1-2 Global Transaction

6-1-3 タイプセーフ

6-1-4 リッチなテスト環境

6-1-5 その他の特徴

6-2 Slim3を学習するための準備

6-3 Model

6-3-1 Modelアノテーション

6-3-2 Attributeアノテーション

6-3-3 Metaクラス

6-3-4 Modelを使う

6-4 関連

6-4-1 片方向1対1

6-4-2 双方向1対1

6-4-3 片方向多対1

6-4-4 双方向1対多

6-4-5 双方向多対多

6-5 Polymorphic Model

6-6 Datastore

6-6-1 Key関連

6-6-2 Put、Get、Delete

6-6-3 UniqueValue

6-7 Query

6-7-1 クエリオブジェクトを作成する

6-7-2 フィルタ条件を設定する

6-7-3 ソート順を設定する

6-7-4 結果の取得

6-7-5 インメモリ処理

6-7-6 カーソル

6-8 Transaction

6-8-1 Local Transaction

6-8-2 Global Transaction

6-8-3 Global Transactionの仕組み

6-8-4 Global Transactionのルール

Chapter 7 開発環境のTips、設計のテクニック

7-1 appcfgコマンド

7-2 Production環境でJUnit実行

7-3 SDKやGoogle Plugin for Eclipseのバージョンアップ

7-3-1 新しいSDKを入手、インストールする

7-3-2 新しいSDKを適用する

7-3-3 SDKを適用した際の注意点

7-4 データストアの設計でよく使われるテクニック

7-4-1 スキーマバージョン

7-4-2 ビルトインインデックスの抑制

7-4-3 エンティティの分割

7-4-4 更新対象エンティティの分散

7-4-5 TaskQueueを使った非同期更新

PR

秀和システム