RaspberryPiでCouchbase Liteを動かしてみた
みなさん、こんにちは。KEYチームの矢納です。
技術ネタ第2弾!!「Couchbase LiteをRaspberry Piで動かしてみた」です。
過去記事の目次はこちらに移動しました。
Couchbase Liteとは?
みなさん、Couchbase Liteが何かというのはご存知でしょうか?Couchbase Liteというのは米Couchbase社が提供している製品の一つです。
Couchbaseはドキュメント指向のNoSQLデータベースです。Couchbase Liteではモバイルのローカル上にあるデータベース(SQLite)をあたかもKey-Value形式のように使えるようにしたものです。ですので、モバイルとは言え、高速なレスポンスが実現されています。
また、Couchbase Sync Gatewayと接続することにより、Couchabse Serverとの自動データ同期を可能とします。同期するデータも指定することができますので、モバイルのデータベース領域を食いつくす心配もありません。さらに、同期さえ済んでいれば、電波の通じないところでもネットワーク通信を行わないので、ネットにつながらなくてデータが取得できなくてイライラすることがなくなります。
どうやって Couchbase Lite を使うの?
Couchbase Liteで調べると、AndroidやiPhoneでの使い方は色々と紹介されています。AndroidやiPhoneで利用するには当然ですがある程度コーディングをする必要があります。ですが、Couchbase LiteにもREST APIが用意されているので、そちらを使ってコーディングなしでやりたいと思います。
色々と探っていたところこちらのGithubにありました。このサイトからcouchbase-lite-local.jarを実行するだけです。
ですが、2015/04/24時点、Sync Gatewayに対しての同期が正常に動作していませんでした。FacebookのJapan Couchabse Users Groupに質問したりして何とか解決することができました。
Couchbase Liteの起動
というわけで、実行するjarを作成しなおしてそのjarを実行するだけでCouchbase Liteの起動です。jarは私のGithubにおいてあります。そのうち、公式のほうが修正されると思いますので、そちらを待ちましょう。
wget用
$ wget https://github.com/Burning-Chai/couchbase-lite-sample/raw/master/couchbase-lite-local-new.jar
ドキュメントの保存など
起動が完了したら、データベースの作成、ドキュメントの保存、Sync Gatewayとの同期を行う必要があります。こちらの手順については私のGithubのREAD MEに書いてありますのでそちらをお読みください。
Sync Gatewayの用意
Couchbase Serverがどこかで起動しているのなら、Couchbase Liteとデータを同期したいものです。データの同期を行うのにはSync Gatewayを準備する必要があります。同期の仕方はREAD MEの最後に書いてあります。
Sync Gatewayインストール手順
Sync GatewayのインストールはLinuxに対して行いました。
1. こちらのサイトからダウンロード。
$ wget http://packages.couchbase.com/builds/mobile/sync_gateway/1.0.4/1.0.4-34/couchbase-sync-gateway-enterprise_1.0.4-34_x86_64.rpm
2. Sync Gatewayのインストール
$ sudo rpm -ihv couchbase-sync-gateway-enterprise_1.0.4-34_x86_64.rpm
3. コンフィグを指定しながらSync Gateway起動
$ cd /opt/couchbase-sync-gateway/bin/
$ vi sg-config.json
{
"log": ["REST", "REST+", "HTTP", "HTTP+", "Access", "Cache", "Shadow", "Shadow+", "CRUD", "CRUD+", "Changes", "Changes+", "JSON", "JSON+"],
"verbose": true,
"databases": {
"blog": {
"server": "http://localhost:8091",
"users": {
"GUEST": {
"disabled": false, "all_channels": ["*"], "admin_channels": ["*"]
}
},
"bucket": "sync_gateway",
"sync": `function(doc) {channel(doc.channels);}`
}
},
"facebook": {
"register": true
}
}
$ ./sync_gateway -verbose=true sg-config.json >> sg.log 2>&1 &
このコンフィグはSync Gatewayにblogというデータベースを用意し、sync_gatewayというCouchbaseのバケットと同期を行います。serverはCouchbaseのIPを指定します。usersやsyncで同期する関する設定をおこいます。databasesには複数のデータベースを書くことができます。
Sync Gatewayはログを出力しないので、リダイレクトを行ってログをファイルに書き込みます。
おわりに
今回一切コードを書かずにCouchbase Liteを使ってみました。Raspberry Piも最近ではお手軽に入手可能なので、これらを使うことによってIoTプロジェクトが作りやすくなるかもしれません。ぜひ、みなさんも試してみてください。
また、Raspberry PiやCouchbase、Couchbase Liteを使って「こんなことがしたい」という方はご連絡ください。一緒にやっていきましょう。ご連絡お待ちしております。
Email: yanou at atware.co.jp


























