25
Couchbase server 入門 1時間で話したい内容を10分にまとめました

Couchbase server入門

Embed Size (px)

Citation preview

Couchbase server 入門1時間で話したい内容を10分にまとめました

Question?

Couchbaseが使われている 有名なプロダクトといえば?

A. ポケモンGO

利用企業には有名企業が多数eBay Symantec Adobe 他多数 も利用顧客です。

Couchbaseは 新世代の

デファクトスタンダード

質問

JSONを知っていますか?

SQLを書けますか?

両方できるあなたは すでにCouchbase使いです。

もしかしたら Couchbase Masterかも?

CouchbaseはこんなDB

CouchDB、Membase、Memcachedの3つを統合したプロダクトで、「開発者がリラックスして、カウチソファに座っているようにデータベースの設計・構築・運用ができるように」というCouchDBの思想を引き継ぎつつ、 Simple (シンプル) Fast (高速性) Elastic (柔軟) をコンセプトにして作られている。

最小構成でいいのなら

パッケージ落として、インストールするだけで完了!! mac brew cask install couchbase-server-community

RHEL/CentOS rpm --install couchbase-server-version.rpm

Debian/Ubuntu dpkg -i couchbase-server-version.deb

minimumな設定でいいなら、これだけでもう動く。

簡単すぎて逆に怖い

前職インフラ担当談

ドキュメント指向データベース

Key-Value OR ドキュメントストア Couchbaseはドキュメントストアとして動作する。 Valueはシンプルなデータ型のデータでも連想配列、JSON形式などでもOK。 ドキュメントをそのまま保存できるので、JSON形式で保存するのが推奨。

スキーマフリー 予めCouchbaseでスキーマ定義をする必要はない。 RDBSのようなDB migrationがいらない。 すべてプログラム側で管理できる。 ドキュメント毎に異なるスキーマの設定もできる。 なのに、インデックスを設定できる

SQL規格に準拠したN1QL例1. 右記のデータに対して下記のクエリで リクエストする

{ "results": [ { "tutorial": { "age": 46, "children": [ { "age": 17, "fname": "Aiden", "gender": "m" }, { "age": 2, "fname": "Bill", "gender": "f" } ], "email": "[email protected]", "fname": "Dave", "hobbies": [ "golf", "surfing" ], "lname": "Smith", "relation": "friend", "title": "Mr.", "type": "contact" } } ] }

SELECT children[0].fname AS cname FROM tutorial WHERE fname='Dave'

結果1.{ "results": [ { "cname": "Aiden" } ] }

キャッシュ機構よく使われるものは、メモリに乗りそうじゃないものがディスクに保存される設計。 DBの負荷を下げるためのキャッシュを用意する必要がなくなる。

マネージドキャッシュ

ディスク

Doc1

Doc1Doc2

Doc3

Doc3

ディスクキュー

レプリケーション キュー

他ノードとのレプリケーションは メモリ to メモリ

APP

えっ、まだ使ってないの? と言われる前にぜひ!!

使ってる言語のSDKって 用意されてるの?

安心してください。 入ってますよ!!

公式サポートしてる言語とプラットフォーム一般的に使われてる言語やプラットフォーム用のライブラリやSDKは公式で用意されています。 ElasticSearchなどのプラグインも用意されています。

一般的に使われてる言語のClient/SDKは公式でカバー

RustやScalaはまだだけど..

ここまでの話は Couchbase serverの話だけ

しかもほんのさわり程度

Couchbaseの全体像Couchbase Server 高速、柔軟でハイパフォーマンスなデータベース Couchbase Lite デバイス上で動く簡易版DB。開発言語と同じ言語で作られている Couchbase Sync Gateway Couchbase LiteとCochbase ServerをつなぐGateway同期時にデータが競合した場合の解決なども行ってくれる

開発ドキュメント読んだほうがはやくね?

(´・ω・`;)

http://www.couchbase.com/ https://forums.couchbase.com/

続きはWEBで