Orchestrate DBaaS入門

Preview:

DESCRIPTION

社内勉強会で発表したものを再編集しました。

Citation preview

ORCHESTRATEDBaaS 入門

DBaaS とは — DataBase as a Serviceクラウドサービスでオンラインで提供されるデータベース。利用者はシステムを構築管理する手間と負担が減り、データ量に応じて規模を柔軟に拡張できる。データベース運用は管理が煩雑とされ、負担軽減の効果は大きい。

DBaaS の例• Amazon RDS

• Amazon DynamoDB

• Cloudant

• MongoHQ

• Orchestrate

WHAT IS ORCHESTRATE

One API for search, key/value, graph, and events.

Orchestrate unifies multiple databases through a simple REST API. It runs as a service (you store your data with us!) and supports queries like full-text search, events, graph, and key/value.

日本語の解説が少なすぎ…Techcrunchに翻訳記事が2つ、他ニュースサイトに数件

有志の解説記事は探した限り皆無

嘘でしょ

仕方ないので訳します

検索・key/value・グラフ・イベントを1つのAPIでOrchestrateは1つのシンプルなREST APIで複数のDBを統合します。これはクラウドサービスとして利用でき、テキスト検索、イベント、グラフ、key/valueのようなクエリをサポートします。

ORCHESTRATEのスゴい所

OrchestrateはDBを跨ぐ

どんなデータ処理でも単一のAPI呼び出しで済ませられる。Orchestrate側がMongoDBやCouchDBなどもっとも適切なNoSQLデータベースを選択する。(開発者は意識しなくて良い)

とにかく使ってみよう

ありがたいことに、 ドキュメントは充実している

https://orchestrate.io/docs

key/valueデータをGET

$ curl -XGET https://api.orchestrate.io/v0/people/0 -u 'access_token'

{"name":"Taro","height":175,"weight":65,"age":23}

検索はこんな感じ

$ curl -XGET https://api.orchestrate.io/v0/people?query=height:160 -u 'access_token'

{"count":1,"total_count":1,"results":[{"path":{"collection":"people","key":"5","ref":"46d655562040ca7e","reftime":1391890950920},"value":{"name":"Yuki","height":160,"weight":57,age:22},"score":0.19104281067848206,"reftime":1391890950920}]}

https://github.com/orchestrate-io/orchestrate.js

公式がNode.jsクライアントもちゃんと出しています

さっきの検索をNodeでやると

var db = require('orchestrate')(process.env.ORCHESTRATE_TOKEN);

db.newSearchBuilder().collection('people').query('height:160').then(function (result) {

console.log(result.body);}).fail(function (error) { console.log(error);});

まとめ

かなりシンプルに使える• どんなDBが動いてるのとか考えなくていい

• Node.js, Ruby, Python, Java, Go なら公式がクライアントを出してるので安心

• PHPでもなんでもHTTPSリクエストしてJSONをパースできればOK

• 位置情報もいけるので最近っぽいことができる

DBaaS として• 2014年2月にローンチされたばかりでこれからどうなるかはわからない

• コード資源は使えないので新しいことやるとき向け?

THANK YOU FOR LISTENING!