LoginSignup
2
2

More than 5 years have passed since last update.

この記事は Couchbase Advent Calendar 2015 の5日目の記事です。

CouchbaseのAdventCalendarなにでCouchbase Server側の話をしようかと思いましたが、今回はCouchbase Mobileの話をしたいと思います。

Couchbase Mobile

今回は登場するCouchbase MobileCouchbase ServerSync GatewayCouchbase Liteの3製品で構成されています。今回はその一部のCouchbase LiteをRaspberryPi上で動かしてみます。

Couchbase Liteとは?

話を始める前に。Couchbase Liteが何かというのはご存知でしょうか?Couchbase社が提供している製品の一つです。

Couchbaseはドキュメント指向のNoSQLデータベースです。Couchbase Liteというのはそれをモバイルに対して利用できるようにしたものです。Couchbase Liteはモバイルのローカル上にあるデータベースSQLiteをあたかもKey-Value形式のように使えるようにするものです。ですので、モバイルとは言え、高速なレスポンスが実現されています。

また、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-raspberry/raw/master/cbl.jar

ドキュメントの保存など

起動が完了したら、データベースの作成、ドキュメントの保存、Sync Gatewayとの同期を行う必要があります。こちらの手順についてはこちらのGithubのREAD MEに書いてありますのでそちらをお読みください。

Sync Gatewayの用意

Couchbase Serverがどこかで起動しているのなら、Couchbase Liteとデータを同期したいものです。データの同期を行うのにはSync Gatewayを準備する必要があります。同期の仕方はREAD MEの最後に書いてあります。

Sync Gatewayインストール手順

Sync GatewayのインストールはLinuxに対して行いました。

1. こちらのサイトからダウンロード。

$ wget http://www.couchbase.com/dl/releases/couchbase-sync-gateway/1.1.1/couchbase-sync-gateway-enterprise_1.1.1-10_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+"],
  "logFilePath": "/var/log/sync-gateway/sg.log",
  "verbose": true,
  "adminInterface": "0.0.0.0:4985",
  "databases": {
    "blog": {
      "server": "http://localhost:8091",
      "users": {
        "GUEST": {
          "disabled": false, "all_channels": ["*"], "admin_channels": ["*"]
        }
      },
      "bucket": "sync_gateway",
      "sync": `function(doc) {channel(doc.docType);}`
    }
  },
  "facebook": {
    "register": false
  }
}
$ ./sync_gateway -verbose=true sg-config.json >> sg.log 2>&1 &

このコンフィグはSync Gatewayにblogというデータベースを用意し、sync_gatewayというCouchbaseのバケットと同期を行います。serverはCouchbaseのIPを指定します。userssyncで同期する関する設定をおこいます。databasesには複数のデータベースを書くことができます。adminInterface0.0.0.0:4985を書くことにより、SyncGatewayのコンソールを見ることができます。

最後に

今回一切コードを書かずにCouchbase Liteを使ってみました。Raspberry Piも最近ではお手軽に入手可能なので、これらを使うことによってIoTプロジェクトが作りやすくなるかもしれません。ぜひ、みなさんも試してみてください。

また、Raspberry PiやCouchbase、Couchbase Liteを使って「こんなことがしたい」という方はご連絡ください。一緒にやっていきましょう。ご連絡お待ちしております。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2