0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

エッジコンピューティングを実現するCouchbase Mobile紹介:Sync Gatewayによるデータ同期におけるフィルタリング

Last updated at Posted at 2021-11-01

はじめに

Couchbase Mobileは、エッジコンピューティングを実現するデータプラットフォームであり、AndroidやiPhone(Swift, Objective-C)のようなスマートフォンやエッジデバイス用の組込データベースであるCouchbase Liteと、Couchbase Server、そしてそれらの間のデータの同期を実現する、Sync Gatewayから構成されます。

エッジコンピューティングを実現するCouchbase Mobile紹介:Sync Gatewayによるデータ同期におけるアクセス制御モデルでは、データ同期に参加するモバイル端末/ユーザーの観点からみたコントロールについて紹介しました。

本稿では、データ同期されるデータ(ドキュメント)の観点からみたコントロールについて紹介します。

Couchbase Mobileアプリケーション開発へのロードマップもご覧ください。

設定方法

Sync Gatewayは、同期プロセスをカスタマイズするためのJavaScript関数の使用をサポートしています。
次のいずれかの方法で設定することができます。

  • 構成ファイル内のインラインJavascript関数
  • 外部Javascriptファイル
  • 外部HTTP/HTTPSエンドポイント

3.0ベータより前は、構成ファイル内のインライン関数で設定が行われていました。
3.0ベータ以降、Javascript関数の構成は、管理REST APIを使用して行われます。

外部JavaScript関数をHTTPSエンドポイントでホストし、サーバーCA証明書と組み合わせたセキュアな接続を実現することができます。

関数定義

インラインJavaScript関数は、バックティックペア(``)で囲む必要があります。

//
{
  //  ... may be preceded by additional configuration data as required by the user ...
  "databases": {
    "getting-started-db": {
      "bucket": "getting-started-bucket", ①
      "import_docs": true,
      "num_index_replicas": 0, 
      "import_filter": `
        function(doc) { 
          if (doc.type != "mobile") { ②
            return false
          }
          return true
        }`,
      "sync": `function (doc, oldDoc) {
        if (doc.sdk) {
          channel(doc.sdk);
        }
      }`
    }
  }
  //  ... may be followed by additional configuration data as required by the user ...
}
//

①インポートフィルターを設定するバケット名。
②「type」プロパティが、「mobile」に等しいをドキュメントのみをインポートします。

最後に

インポートフィルターを、次のような目的で使うことが考えられます。

  • ドキュメントの種類に応じて、モバイルでの利用の必要有無を反映させる。
  • ドキュメントの作成年月日に応じて、モバイルでの利用の必要有無を反映させる。
  • アプリケーションが設定するフラグによって、インポート処理実行の必要性を反映させる。

上記にとどまらない、アプリケーションの要件に応じた、利用方法が実現できることは、フィルタリング機能が、JavaScript関数として提供されている利点といえるでしょう。

参考情報

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?