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