SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
NoSQLどう活かす?	
  
今日から使えるCouchbaseシステムアーキテクチャ	
  
デザインパターン集	
  
	
  
Couchbase	
  Japan,	
  Solutions	
  Engineer	
  河村康爾	
  
©2015	
  Couchbase	
  Inc.	
   2	
  
Couchbase,	
  by	
  the	
  numbers	
  
§ 300
§  EMPL OY EE S
500+
C U S TO M E R S
100%
OPEN SOURCE
©2015	
  Couchbase	
  Inc.	
   3	
  
Top	
  Use	
  Cases	
  
Profile Management Personalization 360o Customer View Internet of Things
Content
Management
Catalog Real Time Big Data Digital
Communication
Mobile Applications
High Availability Caching
©2015	
  Couchbase	
  Inc.	
   4	
  
典型的なシステムアーキテクチャ	
  
©2015	
  Couchbase	
  Inc.	
   5	
  
Couchbase	
  Serverクラスタ	
  
典型的なシステムアーキテクチャ	
  
サーバApp	
  クライアント	
  
App	
  
Couchbase	
  SDK	
   Couchbase	
  Server	
  ノード	
  
主要な開発言語をサポート:	
  
Java,	
  Scala,	
  Go,	
  .NET,	
  Node.js,	
  C,	
  PHP,	
  Ruby	
  
	
  
クラスタトポロジを理解する、	
  
スマートなクライアント	
  
	
  
3つのデータアクセスインタフェース:	
  
キーアクセス、Viewクエリ、N1QLクエリ	
  
©2015	
  Couchbase	
  Inc.	
   6	
  
Couchbase	
  Serverクラスタ	
  
典型的なシステムアーキテクチャ	
  
サーバApp	
  クライアント	
  
App	
  
Couchbase	
  SDK	
  
既存DBMS	
  
Couchbase	
  Server	
  ノード	
  
Memcached互換のAPI	
  
既存データベースへのアクセス負荷を軽減	
  
保存データには有効期限を設定可能	
  
メインフレームやレガシーシステムの手前
に配置されるケースも多い	
  
レプリケーション、ディスクへの永続化、
リバランスなどの機能でHAなキャッシュス
トレージとして利用	
  
もちろん、メインのデータベースとしても
利用可能	
  
©2015	
  Couchbase	
  Inc.	
   7	
  
Couchbase	
  Serverクラスタ	
  
典型的なシステムアーキテクチャ	
  
サーバApp	
  クライアント	
  
App	
  
サーバApp	
  
・・・	
   ・・・	
  
Couchbase	
  Server	
  ノード	
  
サーバApp	
  
Couchbase	
  SDK	
  
既存DBMS	
  
ロードバランサ	
  
Couchbase	
  Server	
  ノード	
  
ビジネス、システムの成長に
合わせてスケール	
  
ノードをクラスタに追加しリ
バランスすることで無停止で
のデータベース拡張が可能	
  
サーバメンテナンス、アップ
グレードの際も停止する必要
はない	
  
©2015	
  Couchbase	
  Inc.	
   8	
  
Couchbase	
  Serverクラスタ	
  
典型的なシステムアーキテクチャ	
  
サーバApp	
  クライアント	
  
App	
  
サーバApp	
  
・・・	
   ・・・	
  
Couchbase	
  Server	
  ノード	
  
サーバApp	
  
Couchbase	
  SDK	
  
既存DBMS	
  
CDN	
  
ロードバランサ	
  
Couchbase	
  Server	
  ノード	
  
Couchbase	
  Server最大の利点は低レイテンシ、
高スループットの高性能	
  
1件のMaxサイズは20MBだが、特性を活か
すため	
  <	
  1MBを推奨	
  
画像やビデオなど大きなオブジェクトは
CDNやS3などのストレージに配置し、その
メタデータをCouchbaseに保存して高速に参
照できるようにするのが一般的	
  
©2015	
  Couchbase	
  Inc.	
   9	
  
Couchbase	
  Serverクラスタ	
  
典型的なシステムアーキテクチャ	
  
サーバApp	
  クライアント	
  
App	
  
サーバApp	
  
・・・	
   ・・・	
  
Couchbase	
  Server	
  ノード	
  
サーバApp	
  
Couchbase	
  SDK	
  
既存DBMS	
   分析	
  
プラットフォーム	
  CDN	
  
ロードバランサ	
  
Couchbase	
  Server	
  ノード	
  
Couchbaseでクリックストリームなどのオン
ラインデータを収集し、SparkやHadoopな
どの分析基盤に渡し、大規模な分析を行う	
  
また、TableauなどのBIツールからODBCド
ライバ経由での分析も可能	
  
これらの分析結果をCouchbaseに保存し、イ
ンタラクティブなアプリケーションで活用
する	
  
©2015	
  Couchbase	
  Inc.	
   10	
  
データセンタ	
  1	
  
Couchbase	
  Serverクラスタ	
  
典型的なシステムアーキテクチャ	
  
データセンタ	
  2	
  
サーバApp	
  クライアント	
  
App	
  
サーバApp	
  
・・・	
   ・・・	
  
Couchbase	
  Server	
  ノード	
  
サーバApp	
  
Couchbase	
  SDK	
  
DNS	
  
ロードバランサ	
  
サーバApp	
  
既存DBMS	
   分析	
  
プラットフォーム	
  
Couchbase	
  Server	
  
クラスタ	
  
CDN	
  
ロードバランサ	
  
Couchbase	
  Server	
  ノード	
  
単一クラスタ内のレプリケー
ションに加え、クラスタ間、
データセンタ間のレプリケー
ション	
  (XDCR)	
  をサポート	
  
DR対策や、データローカリ
ティ、オンライン/分析クラ
スタの分離など利用方法は
様々	
  
©2015	
  Couchbase	
  Inc.	
   11	
  
Couchbase	
  integrates	
  with	
  the	
  Big	
  Data	
  ecosystem	
  
©2015	
  Couchbase	
  Inc.	
   12	
  
Couchbase	
  Serverを理解し	
  
3つのインタフェースを使い分けよう	
  
©2015	
  Couchbase	
  Inc.	
   13	
  
データモデル	
  
Couchbase	
  Server	
  クラスタ	
  
バケット:	
  music_app	
  
キー	
   バリュー	
  
user::a49e2577-­‐f257-­‐47c2-­‐
ab0b-­‐63a6dc5f4919	
  
{“name”:	
  “Foo”,	
  
	
  “email”:	
  “foo@example.com”,	
  
	
  “favariteGenres”:	
  [“jazz”,	
  “rock”]}	
  
genre::jazz	
   {“desc”:	
  “演奏の中にブルー・ノート、シンコペー
ション…”}	
  
バケット:	
  log_events	
  
・・・	
  
・・・	
  
©2015	
  Couchbase	
  Inc.	
   14	
  
バケットとvBucket	
  
Couchbase	
  Server	
  クラスタ	
  
バケット:	
  music_app	
  
バケット:	
  log_events	
  
・・・	
  
vb-­‐0	
   vb-­‐1	
   vb-­‐2	
   vb-­‐1023	
  
・・・	
  vb-­‐3	
  
key-­‐1	
   key-­‐2	
   key-­‐3	
   key-­‐4	
   key-­‐5	
   key-­‐6	
   key-­‐7	
   key-­‐m	
   key-­‐n	
  
hash(key)	
  
©2015	
  Couchbase	
  Inc.	
   15	
  
データ分散:	
  オートシャーディング、レプリカ	
  
Couchbase	
  Serverクラスタ	
  
ノード1	
  
Act	
  
Rep	
  
vb-­‐1	
  
vb-­‐4	
  
アプリケーション	
  
Couchbase	
  SDK	
  
クラスタマップ	
  
・・・	
  
vb-­‐3	
  
vb-­‐5	
  
・・・	
  
ノード2	
  
Act	
  
Rep	
  
vb-­‐2	
  
vb-­‐5	
  
・・・	
  
vb-­‐1	
  
vb-­‐6	
  
・・・	
  
ノード3	
  
Act	
  
Rep	
  
vb-­‐3	
  
vb-­‐6	
  
・・・	
  
vb-­‐2	
  
vb-­‐4	
  
・・・	
  
①	
  
②	
  
	
  	
  	
  	
  //	
  ①アプリケーションコードからSDKを利用しクラスタへ接続	
  
	
  	
  	
  	
  cluster	
  =	
  CouchbaseCluster.create(“ノード1”,	
  “ノード2”);	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  //	
  SDKの内部でCouchbase	
  Serverノードに接続し	
  
	
  	
  	
  	
  	
  	
  	
  	
  //	
  クラスタマップを取得	
  
	
  	
  	
  	
  	
  	
  	
  	
  node	
  =	
  connect(nodeAddress);	
  
	
  	
  	
  	
  	
  	
  	
  	
  clusterMap	
  =	
  node.getClusterMap();	
  
	
  
	
  	
  	
  	
  //	
  ②バケット内のドキュメントにアクセス	
  
	
  	
  	
  	
  bucket	
  =	
  cluster.openBucket("バケット名");	
  
	
  	
  	
  	
  doc	
  =	
  bucket.get("ドキュメントID");	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  //	
  SDKの内部でドキュメントIDからvBUcketIDを計算	
  
	
  	
  	
  	
  	
  	
  	
  	
  vBucketId	
  =	
  hash(docId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  //	
  クラスタマップを利用し、	
  
	
  	
  	
  	
  	
  	
  	
  	
  //	
  vBucketを担当するCouchbase	
  Serverノードを取得	
  
	
  	
  	
  	
  	
  	
  	
  	
  node	
  =	
  clusterMap.get(vBucketId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  doc	
  =	
  node.sendGetRequest(docId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  return	
  doc;	
  
©2015	
  Couchbase	
  Inc.	
   16	
  
リバランス	
  
Couchbase	
  Serverクラスタ	
  
ノード1	
  
Act	
  
Rep	
  
vb-­‐1	
  
vb-­‐4	
  
アプリケーション	
  
Couchbase	
  SDK	
  
クラスタマップ	
  
・・・	
  
vb-­‐3	
  
vb-­‐5	
  
・・・	
  
ノード2	
  
Act	
  
Rep	
  
vb-­‐2	
  
vb-­‐5	
  
・・・	
  
vb-­‐1	
  
vb-­‐6	
  
・・・	
  
ノード3	
  
Act	
  
Rep	
  
vb-­‐3	
  
vb-­‐6	
  
・・・	
  
vb-­‐2	
  
vb-­‐4	
  
・・・	
  
③クラスタマップが更新され、トポロジの変化に追従	
  
ノード4	
  
Act	
  
Rep	
  
vb-­‐4	
  
vb-­‐…	
  
・・・	
  
vb-­‐6	
  
vb-­‐…	
  
・・・	
  
ノード5	
  
Act	
  
Rep	
  
vb-­‐5	
  
vb-­‐…	
  
・・・	
  
vb-­‐4	
  
vb-­‐…	
  
・・・	
  
②リバランスを実行	
  
①ノードをクラスタに追加/削除	
  
©2015	
  Couchbase	
  Inc.	
   17	
  
3つのデータアクセスインタフェース	
  
Couchbase	
  Server	
  ノード	
  
アプリケーション	
  
Couchbase	
  SDK	
  
N1QL	
  
クエリエンジン	
  
JSON用SQL、宣
言型クエリ言語の
N1QL	
  
View	
  
クエリエンジン	
  
差分MapReduceに
よるマテリアライ
ズドView	
  
マネージドキャッシュ	
  
最も原始的かつ高性
能なキーアクセス	
  
©2015	
  Couchbase	
  Inc.	
   18	
  
Couchbase	
  Server	
  
ノード	
  
・・・	
  
DCPキュー	
  
キーアクセス:	
  RAM,	
  Disk,	
  DCP	
  
ディスク	
  
クライアントアプリケーション	
  
マネージドキャッシュ	
  
doc-­‐1	
   doc-­‐N	
  doc-­‐10	
  
doc-­‐1	
   doc-­‐N	
  
・・・	
  
・・・	
   doc-­‐10	
  
・・・	
  
・・・	
  
ディスクキュー	
  
2	
  
2-­‐1	
  
2-­‐2	
  
1	
  
set	
  get	
   get	
  
doc
-­‐N	
  
doc
-­‐N	
  
doc
-­‐N	
  
ok	
  
キャッシュ	
  
ミス	
  
©2015	
  Couchbase	
  Inc.	
   19	
  
IoT:	
  センサーデータ	
  
©2015	
  Couchbase	
  Inc.	
   20	
  
View:	
  Map	
  Reduce	
  集計に強い	
  
Map	
  
function	
  (doc,	
  meta)	
  {	
  
	
  	
  if(doc.tp	
  !==	
  "sd")	
  return;	
  
	
  	
  var	
  ts	
  =	
  dateToArray(doc.ts);	
  
	
  	
  for(var	
  prop	
  in	
  doc.vals){	
  
	
  	
  	
  	
  if(doc.vals.hasOwnProperty(prop)){	
  
	
  	
  	
  	
  	
  	
  var	
  v	
  =	
  doc.vals[prop];	
  
	
  	
  	
  	
  	
  	
  if(v	
  &&	
  isNaN(v)){	
  
	
  	
  	
  	
  	
  	
  	
  	
  emit([doc.gi,	
  prop,	
  v].concat(ts),	
  1);	
  
	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
Reduce	
  
_count	
  
©2015	
  Couchbase	
  Inc.	
   21	
  
N1QL:	
  SQL	
  for	
  Documents	
  
大規模データの中から、検索条件で	
  
小、中規模に絞り込んで利用すると吉	
  
インデックスの貼り方はRDBMSと同様	
  
アドホックなクエリが可能	
  
©2015	
  Couchbase	
  Inc.	
   22	
  
シングルノードタイプ、3つのサービス	
  
Couchbase	
  Server	
  ノード	
  
Data	
  Service	
  
マネージドキャッシュ	
  
ディスク	
  
ストレージ	
  View	
  
インデックス	
  
Query	
  Service	
  
Index	
  Service	
  
GSI	
  
インデックス	
  
プロジェクタ	
  
N1QL	
  
クエリエンジン	
  
アプリケーション	
  
Couchbase	
  SDK	
  
レプリケーション	
  
View	
  
クエリエンジン	
  
©2015	
  Couchbase	
  Inc.	
   23	
  
Couchbase	
  
Server	
  ノード	
  
Index	
  Service	
  
GSI	
  
インデックス	
  
Multi	
  Dimensional	
  Scalability	
  
アプリケーション	
  
Couchbase	
  Server	
  ノード	
  
Query	
  
Service	
  
Couchbase	
  Server	
  ノード	
  
Data	
  Service	
  
Couchbase	
  Server	
  ノード	
  
Data	
  Service	
  
Couchbase	
  Server	
  ノード	
  
Query	
  
Service	
  
Couchbase	
  
Server	
  ノード	
  
Index	
  Service	
  
GSI	
  
インデックス	
  
N1QLクエリエンジン	
  Couchbase	
  SDK	
  
Couchbase	
  Server	
  ノード	
  
Data	
  Service	
  
マネージド	
  
キャッシュ	
  
View	
  
インデックス	
  
©2015	
  Couchbase	
  Inc.	
   24	
  
モバイル	
  
©2015	
  Couchbase	
  Inc.	
   25	
  
NoSQL	
  Use	
  Cases	
  —	
  Mobile	
  
Database Requirements:
Allow online /
offline support
(Mobile)
Real-world Enterprise Example:
RyanAir rewrote its
mobile app to provide a
better user experience,
reduce network
bandwidth costs, and
support offline operation.
Scale to support a
expanding customer base
(Thousands to Millions of Users)
Allow different
customer data models
(E.g., purchases, profile, feedback)
Application Features:
Get users with the
highest scores
Browse product
catalogs offline
Ingest telemetry data in
remote locations for IoT
©2015	
  Couchbase	
  Inc.	
   26	
  
Couchbaseモバイルを利用したシステムアーキテクチャ	
  
データセンタ	
  
ロードバランサ	
  
モバイルApp	
  
Couchbase	
  Lite	
  
Sync	
  Gateway	
  
ブラウザApp	
  
PouchDB	
  
Couchbase	
  Serverクラスタ	
  
Couchbase	
  Server	
  ノード	
  
Couchbase	
  Server	
  ノード	
  
・・・	
  
・・・	
  
Sync	
  Gateway	
  
©2015	
  Couchbase	
  Inc.	
   27	
  
まとめ	
  
©2015	
  Couchbase	
  Inc.	
   28	
  
データセンタ	
  1	
  
Couchbase	
  Serverクラスタ	
  
典型的なシステムアーキテクチャ、おさらい	
  
データセンタ	
  2	
  
サーバApp	
  クライアント	
  
App	
  
サーバApp	
  
・・・	
   ・・・	
  
Couchbase	
  Server	
  ノード	
  
サーバApp	
  
Couchbase	
  SDK	
  
DNS	
  
ロードバランサ	
  
サーバApp	
  
既存DBMS	
   分析	
  
プラットフォーム	
  
Couchbase	
  Server	
  
クラスタ	
  
CDN	
  
ロードバランサ	
  
Couchbase	
  Server	
  ノード	
  
©2015	
  Couchbase	
  Inc.	
   29	
  
是非こんな要件に活用されたし	
  
§  ビジネスの成長に合わせ無停止でのデータベース拡張、運用	
  
§  既存システムの性能改善にHAキャッシュストレージとして導入	
  
§  キャッシュエンジンとデータベースを一体化したストレージとして利用し
システムの複雑性を軽減し、サーバ台数、運用コストを削減	
  
§  最大の武器はサブミリ秒の低レイテンシ、秒間数十万〜数百万の高スルー
プット、メタデータの格納に威力を発揮、コンテンツは外部ストレージへ	
  
§  豊富なコネクタ(Kawa,	
  Hadoop,	
  Spark	
  …	
  etc)でバックエンドの分析基盤へ
データ連携、分析結果を保存しオンラインで利用	
  
§  複数データセンタ、リージョンでデータを同期し、DR対策、データロー
カリティ向上	
  
§  オフライン耐性を持つモバイルアプリケーションの開発	
  
©2015	
  Couchbase	
  Inc.	
   30	
  
Couchbaseを利用したシステム成功の秘訣	
  
§  クラスタトポロジを理解するスマートなクライアントSDKライブラ
リ	
  
§  キーアクセス、View	
  (MapReduce)、N1QLの特性を理解した使い分
けが重要	
  
§  柔軟なスキーマを活かすのはアクセスパターンを考慮した適切な
データモデリング	
  
§  データストレージ、N1QLクエリ実行、GSIインデックス管理など、
異なるワークロードを個別にスケールできる	
  
§  運用開始時点のクラスタサイジング、継続的なモニタリングと拡
張がシステム運用成功の鍵	
  
©2015	
  Couchbase	
  Inc.	
   31	
  
お知らせ	
  
©2015	
  Couchbase	
  Inc.	
   32	
  
公式トレーニング	
  
©2015	
  Couchbase	
  Inc.	
   33	
  
JCBUG:	
  コミュニティに参加しよう!	
  
©2015	
  Couchbase	
  Inc.	
   34	
  
ドキュメント翻訳も一緒にやりましょう!!	
  
©2015	
  Couchbase	
  Inc.	
   35	
  
Thank	
  you.	
  
	
  
couchbasejp@couchbase.com	
  

Más contenido relacionado

La actualidad más candente

Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase Japan KK
 
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...Insight Technology, Inc.
 
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersDb tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersHiroaki Kubota
 
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...Masahiro Tomisugi
 
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Akira Shimosako
 
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...Insight Technology, Inc.
 
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版Akira Shimosako
 
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~Michio Koyama
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaSjunichi anno
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Masayuki Ozawa
 
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことKentaro Matsui
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...Funada Yasunobu
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSAkira Shimosako
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたSunao Tomita
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料dcubeio
 
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexKoji Shinkubo
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1Takano Masaru
 
Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化Takekazu Omi
 

La actualidad más candente (20)

Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611
 
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
 
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
 
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersDb tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
 
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
 
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
 
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...
 
Ad設計
Ad設計Ad設計
Ad設計
 
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
 
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaS
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPS
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
 
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortex
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1
 
Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化
 

Similar a 今日から使えるCouchbaseシステムアーキテクチャデザインパターン集

Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるKazunori Hamamoto
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)NTT DATA Technology & Innovation
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe APImaruyama097
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APImaruyama097
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理Oshitari_kochi
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Hirano Kazunori
 
非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室Daisuke Masubuchi
 
20140927 azure pack_slideshare
20140927 azure pack_slideshare20140927 azure pack_slideshare
20140927 azure pack_slideshareOsamu Takazoe
 
20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and moreTakayoshi Tanaka
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会samemoon
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignRyuji TAKEHARA
 
dstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモdstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモdstn
 
Moot2013 moca ver0.3
Moot2013 moca ver0.3Moot2013 moca ver0.3
Moot2013 moca ver0.3科 黄
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows AzureMicrosoft
 

Similar a 今日から使えるCouchbaseシステムアーキテクチャデザインパターン集 (20)

Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみる
 
ShizuokaITpro_Azure
ShizuokaITpro_AzureShizuokaITpro_Azure
ShizuokaITpro_Azure
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe API
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
 
XDev2010 WindowsAzure
XDev2010 WindowsAzureXDev2010 WindowsAzure
XDev2010 WindowsAzure
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary
 
非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室非公式PaaS勉強会~新宿d社会議室
非公式PaaS勉強会~新宿d社会議室
 
Sql azure入門
Sql azure入門Sql azure入門
Sql azure入門
 
20140927 azure pack_slideshare
20140927 azure pack_slideshare20140927 azure pack_slideshare
20140927 azure pack_slideshare
 
20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
20110406aws accenture
20110406aws accenture20110406aws accenture
20110406aws accenture
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
dstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモdstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモ
 
Moot2013 moca ver0.3
Moot2013 moca ver0.3Moot2013 moca ver0.3
Moot2013 moca ver0.3
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
 

Más de Couchbase Japan KK

Couchbase live tokyo 2015 ryanair事例紹介
Couchbase live tokyo 2015 ryanair事例紹介Couchbase live tokyo 2015 ryanair事例紹介
Couchbase live tokyo 2015 ryanair事例紹介Couchbase Japan KK
 
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL CouchbaseモバイルソリューションCouchbase Japan KK
 
NoSql for your Digital Economy Business
NoSql for your Digital Economy BusinessNoSql for your Digital Economy Business
NoSql for your Digital Economy BusinessCouchbase Japan KK
 
Couchbase Mobile MiniHack 20150407
Couchbase Mobile MiniHack 20150407Couchbase Mobile MiniHack 20150407
Couchbase Mobile MiniHack 20150407Couchbase Japan KK
 

Más de Couchbase Japan KK (6)

CBJUG Meetup June 10th
CBJUG Meetup June 10thCBJUG Meetup June 10th
CBJUG Meetup June 10th
 
Couchbase live tokyo 2015 ryanair事例紹介
Couchbase live tokyo 2015 ryanair事例紹介Couchbase live tokyo 2015 ryanair事例紹介
Couchbase live tokyo 2015 ryanair事例紹介
 
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
 
NoSql for your Digital Economy Business
NoSql for your Digital Economy BusinessNoSql for your Digital Economy Business
NoSql for your Digital Economy Business
 
Couchbase Mobile MiniHack 20150407
Couchbase Mobile MiniHack 20150407Couchbase Mobile MiniHack 20150407
Couchbase Mobile MiniHack 20150407
 
Couchbase CM 20150407
Couchbase CM 20150407Couchbase CM 20150407
Couchbase CM 20150407
 

今日から使えるCouchbaseシステムアーキテクチャデザインパターン集

  • 2. ©2015  Couchbase  Inc.   2   Couchbase,  by  the  numbers   § 300 §  EMPL OY EE S 500+ C U S TO M E R S 100% OPEN SOURCE
  • 3. ©2015  Couchbase  Inc.   3   Top  Use  Cases   Profile Management Personalization 360o Customer View Internet of Things Content Management Catalog Real Time Big Data Digital Communication Mobile Applications High Availability Caching
  • 4. ©2015  Couchbase  Inc.   4   典型的なシステムアーキテクチャ  
  • 5. ©2015  Couchbase  Inc.   5   Couchbase  Serverクラスタ   典型的なシステムアーキテクチャ   サーバApp  クライアント   App   Couchbase  SDK   Couchbase  Server  ノード   主要な開発言語をサポート:   Java,  Scala,  Go,  .NET,  Node.js,  C,  PHP,  Ruby     クラスタトポロジを理解する、   スマートなクライアント     3つのデータアクセスインタフェース:   キーアクセス、Viewクエリ、N1QLクエリ  
  • 6. ©2015  Couchbase  Inc.   6   Couchbase  Serverクラスタ   典型的なシステムアーキテクチャ   サーバApp  クライアント   App   Couchbase  SDK   既存DBMS   Couchbase  Server  ノード   Memcached互換のAPI   既存データベースへのアクセス負荷を軽減   保存データには有効期限を設定可能   メインフレームやレガシーシステムの手前 に配置されるケースも多い   レプリケーション、ディスクへの永続化、 リバランスなどの機能でHAなキャッシュス トレージとして利用   もちろん、メインのデータベースとしても 利用可能  
  • 7. ©2015  Couchbase  Inc.   7   Couchbase  Serverクラスタ   典型的なシステムアーキテクチャ   サーバApp  クライアント   App   サーバApp   ・・・   ・・・   Couchbase  Server  ノード   サーバApp   Couchbase  SDK   既存DBMS   ロードバランサ   Couchbase  Server  ノード   ビジネス、システムの成長に 合わせてスケール   ノードをクラスタに追加しリ バランスすることで無停止で のデータベース拡張が可能   サーバメンテナンス、アップ グレードの際も停止する必要 はない  
  • 8. ©2015  Couchbase  Inc.   8   Couchbase  Serverクラスタ   典型的なシステムアーキテクチャ   サーバApp  クライアント   App   サーバApp   ・・・   ・・・   Couchbase  Server  ノード   サーバApp   Couchbase  SDK   既存DBMS   CDN   ロードバランサ   Couchbase  Server  ノード   Couchbase  Server最大の利点は低レイテンシ、 高スループットの高性能   1件のMaxサイズは20MBだが、特性を活か すため  <  1MBを推奨   画像やビデオなど大きなオブジェクトは CDNやS3などのストレージに配置し、その メタデータをCouchbaseに保存して高速に参 照できるようにするのが一般的  
  • 9. ©2015  Couchbase  Inc.   9   Couchbase  Serverクラスタ   典型的なシステムアーキテクチャ   サーバApp  クライアント   App   サーバApp   ・・・   ・・・   Couchbase  Server  ノード   サーバApp   Couchbase  SDK   既存DBMS   分析   プラットフォーム  CDN   ロードバランサ   Couchbase  Server  ノード   Couchbaseでクリックストリームなどのオン ラインデータを収集し、SparkやHadoopな どの分析基盤に渡し、大規模な分析を行う   また、TableauなどのBIツールからODBCド ライバ経由での分析も可能   これらの分析結果をCouchbaseに保存し、イ ンタラクティブなアプリケーションで活用 する  
  • 10. ©2015  Couchbase  Inc.   10   データセンタ  1   Couchbase  Serverクラスタ   典型的なシステムアーキテクチャ   データセンタ  2   サーバApp  クライアント   App   サーバApp   ・・・   ・・・   Couchbase  Server  ノード   サーバApp   Couchbase  SDK   DNS   ロードバランサ   サーバApp   既存DBMS   分析   プラットフォーム   Couchbase  Server   クラスタ   CDN   ロードバランサ   Couchbase  Server  ノード   単一クラスタ内のレプリケー ションに加え、クラスタ間、 データセンタ間のレプリケー ション  (XDCR)  をサポート   DR対策や、データローカリ ティ、オンライン/分析クラ スタの分離など利用方法は 様々  
  • 11. ©2015  Couchbase  Inc.   11   Couchbase  integrates  with  the  Big  Data  ecosystem  
  • 12. ©2015  Couchbase  Inc.   12   Couchbase  Serverを理解し   3つのインタフェースを使い分けよう  
  • 13. ©2015  Couchbase  Inc.   13   データモデル   Couchbase  Server  クラスタ   バケット:  music_app   キー   バリュー   user::a49e2577-­‐f257-­‐47c2-­‐ ab0b-­‐63a6dc5f4919   {“name”:  “Foo”,    “email”:  “foo@example.com”,    “favariteGenres”:  [“jazz”,  “rock”]}   genre::jazz   {“desc”:  “演奏の中にブルー・ノート、シンコペー ション…”}   バケット:  log_events   ・・・   ・・・  
  • 14. ©2015  Couchbase  Inc.   14   バケットとvBucket   Couchbase  Server  クラスタ   バケット:  music_app   バケット:  log_events   ・・・   vb-­‐0   vb-­‐1   vb-­‐2   vb-­‐1023   ・・・  vb-­‐3   key-­‐1   key-­‐2   key-­‐3   key-­‐4   key-­‐5   key-­‐6   key-­‐7   key-­‐m   key-­‐n   hash(key)  
  • 15. ©2015  Couchbase  Inc.   15   データ分散:  オートシャーディング、レプリカ   Couchbase  Serverクラスタ   ノード1   Act   Rep   vb-­‐1   vb-­‐4   アプリケーション   Couchbase  SDK   クラスタマップ   ・・・   vb-­‐3   vb-­‐5   ・・・   ノード2   Act   Rep   vb-­‐2   vb-­‐5   ・・・   vb-­‐1   vb-­‐6   ・・・   ノード3   Act   Rep   vb-­‐3   vb-­‐6   ・・・   vb-­‐2   vb-­‐4   ・・・   ①   ②          //  ①アプリケーションコードからSDKを利用しクラスタへ接続          cluster  =  CouchbaseCluster.create(“ノード1”,  “ノード2”);                    //  SDKの内部でCouchbase  Serverノードに接続し                  //  クラスタマップを取得                  node  =  connect(nodeAddress);                  clusterMap  =  node.getClusterMap();            //  ②バケット内のドキュメントにアクセス          bucket  =  cluster.openBucket("バケット名");          doc  =  bucket.get("ドキュメントID");                    //  SDKの内部でドキュメントIDからvBUcketIDを計算                  vBucketId  =  hash(docId);                  //  クラスタマップを利用し、                  //  vBucketを担当するCouchbase  Serverノードを取得                  node  =  clusterMap.get(vBucketId);                  doc  =  node.sendGetRequest(docId);                  return  doc;  
  • 16. ©2015  Couchbase  Inc.   16   リバランス   Couchbase  Serverクラスタ   ノード1   Act   Rep   vb-­‐1   vb-­‐4   アプリケーション   Couchbase  SDK   クラスタマップ   ・・・   vb-­‐3   vb-­‐5   ・・・   ノード2   Act   Rep   vb-­‐2   vb-­‐5   ・・・   vb-­‐1   vb-­‐6   ・・・   ノード3   Act   Rep   vb-­‐3   vb-­‐6   ・・・   vb-­‐2   vb-­‐4   ・・・   ③クラスタマップが更新され、トポロジの変化に追従   ノード4   Act   Rep   vb-­‐4   vb-­‐…   ・・・   vb-­‐6   vb-­‐…   ・・・   ノード5   Act   Rep   vb-­‐5   vb-­‐…   ・・・   vb-­‐4   vb-­‐…   ・・・   ②リバランスを実行   ①ノードをクラスタに追加/削除  
  • 17. ©2015  Couchbase  Inc.   17   3つのデータアクセスインタフェース   Couchbase  Server  ノード   アプリケーション   Couchbase  SDK   N1QL   クエリエンジン   JSON用SQL、宣 言型クエリ言語の N1QL   View   クエリエンジン   差分MapReduceに よるマテリアライ ズドView   マネージドキャッシュ   最も原始的かつ高性 能なキーアクセス  
  • 18. ©2015  Couchbase  Inc.   18   Couchbase  Server   ノード   ・・・   DCPキュー   キーアクセス:  RAM,  Disk,  DCP   ディスク   クライアントアプリケーション   マネージドキャッシュ   doc-­‐1   doc-­‐N  doc-­‐10   doc-­‐1   doc-­‐N   ・・・   ・・・   doc-­‐10   ・・・   ・・・   ディスクキュー   2   2-­‐1   2-­‐2   1   set  get   get   doc -­‐N   doc -­‐N   doc -­‐N   ok   キャッシュ   ミス  
  • 19. ©2015  Couchbase  Inc.   19   IoT:  センサーデータ  
  • 20. ©2015  Couchbase  Inc.   20   View:  Map  Reduce  集計に強い   Map   function  (doc,  meta)  {      if(doc.tp  !==  "sd")  return;      var  ts  =  dateToArray(doc.ts);      for(var  prop  in  doc.vals){          if(doc.vals.hasOwnProperty(prop)){              var  v  =  doc.vals[prop];              if(v  &&  isNaN(v)){                  emit([doc.gi,  prop,  v].concat(ts),  1);              }          }      }   }   Reduce   _count  
  • 21. ©2015  Couchbase  Inc.   21   N1QL:  SQL  for  Documents   大規模データの中から、検索条件で   小、中規模に絞り込んで利用すると吉   インデックスの貼り方はRDBMSと同様   アドホックなクエリが可能  
  • 22. ©2015  Couchbase  Inc.   22   シングルノードタイプ、3つのサービス   Couchbase  Server  ノード   Data  Service   マネージドキャッシュ   ディスク   ストレージ  View   インデックス   Query  Service   Index  Service   GSI   インデックス   プロジェクタ   N1QL   クエリエンジン   アプリケーション   Couchbase  SDK   レプリケーション   View   クエリエンジン  
  • 23. ©2015  Couchbase  Inc.   23   Couchbase   Server  ノード   Index  Service   GSI   インデックス   Multi  Dimensional  Scalability   アプリケーション   Couchbase  Server  ノード   Query   Service   Couchbase  Server  ノード   Data  Service   Couchbase  Server  ノード   Data  Service   Couchbase  Server  ノード   Query   Service   Couchbase   Server  ノード   Index  Service   GSI   インデックス   N1QLクエリエンジン  Couchbase  SDK   Couchbase  Server  ノード   Data  Service   マネージド   キャッシュ   View   インデックス  
  • 24. ©2015  Couchbase  Inc.   24   モバイル  
  • 25. ©2015  Couchbase  Inc.   25   NoSQL  Use  Cases  —  Mobile   Database Requirements: Allow online / offline support (Mobile) Real-world Enterprise Example: RyanAir rewrote its mobile app to provide a better user experience, reduce network bandwidth costs, and support offline operation. Scale to support a expanding customer base (Thousands to Millions of Users) Allow different customer data models (E.g., purchases, profile, feedback) Application Features: Get users with the highest scores Browse product catalogs offline Ingest telemetry data in remote locations for IoT
  • 26. ©2015  Couchbase  Inc.   26   Couchbaseモバイルを利用したシステムアーキテクチャ   データセンタ   ロードバランサ   モバイルApp   Couchbase  Lite   Sync  Gateway   ブラウザApp   PouchDB   Couchbase  Serverクラスタ   Couchbase  Server  ノード   Couchbase  Server  ノード   ・・・   ・・・   Sync  Gateway  
  • 27. ©2015  Couchbase  Inc.   27   まとめ  
  • 28. ©2015  Couchbase  Inc.   28   データセンタ  1   Couchbase  Serverクラスタ   典型的なシステムアーキテクチャ、おさらい   データセンタ  2   サーバApp  クライアント   App   サーバApp   ・・・   ・・・   Couchbase  Server  ノード   サーバApp   Couchbase  SDK   DNS   ロードバランサ   サーバApp   既存DBMS   分析   プラットフォーム   Couchbase  Server   クラスタ   CDN   ロードバランサ   Couchbase  Server  ノード  
  • 29. ©2015  Couchbase  Inc.   29   是非こんな要件に活用されたし   §  ビジネスの成長に合わせ無停止でのデータベース拡張、運用   §  既存システムの性能改善にHAキャッシュストレージとして導入   §  キャッシュエンジンとデータベースを一体化したストレージとして利用し システムの複雑性を軽減し、サーバ台数、運用コストを削減   §  最大の武器はサブミリ秒の低レイテンシ、秒間数十万〜数百万の高スルー プット、メタデータの格納に威力を発揮、コンテンツは外部ストレージへ   §  豊富なコネクタ(Kawa,  Hadoop,  Spark  …  etc)でバックエンドの分析基盤へ データ連携、分析結果を保存しオンラインで利用   §  複数データセンタ、リージョンでデータを同期し、DR対策、データロー カリティ向上   §  オフライン耐性を持つモバイルアプリケーションの開発  
  • 30. ©2015  Couchbase  Inc.   30   Couchbaseを利用したシステム成功の秘訣   §  クラスタトポロジを理解するスマートなクライアントSDKライブラ リ   §  キーアクセス、View  (MapReduce)、N1QLの特性を理解した使い分 けが重要   §  柔軟なスキーマを活かすのはアクセスパターンを考慮した適切な データモデリング   §  データストレージ、N1QLクエリ実行、GSIインデックス管理など、 異なるワークロードを個別にスケールできる   §  運用開始時点のクラスタサイジング、継続的なモニタリングと拡 張がシステム運用成功の鍵  
  • 31. ©2015  Couchbase  Inc.   31   お知らせ  
  • 32. ©2015  Couchbase  Inc.   32   公式トレーニング  
  • 33. ©2015  Couchbase  Inc.   33   JCBUG:  コミュニティに参加しよう!  
  • 34. ©2015  Couchbase  Inc.   34   ドキュメント翻訳も一緒にやりましょう!!  
  • 35. ©2015  Couchbase  Inc.   35   Thank  you.     couchbasejp@couchbase.com