db tech showcase

dbtsブログ

このエントリーをはてなブックマークに追加

【dbts2023 レポート】キャッシュとデータベースを組み合わせる煩わしさからの解放:マルチファンクション分散データベースCouchbaseのご紹介

データ管理
【dbts2023 レポート】キャッシュとデータベースを組み合わせる煩わしさからの解放:マルチファンクション分散データベースCouchbaseのご紹介

こんにちは、プロダクト開発本部の澁田です。db tech showcase 2023 3日目のA21のセッションである「キャッシュとデータベースを組み合わせる煩わしさからの解放:マルチファンクション分散データベースCouchbaseのご紹介」のレポートをお届けします。

セッション概要

「古くから使っているRDBMSを使ったシステムがあるが、このままのアーキテクチャではデータ量の増加に対応できない」、「長く使い続けてきたがそろそろバージョンアップしないといけないが、ライセンス、運用コストも考えて別のデータベースへの移行も検討したい」とRDBMSからの脱却をご検討されている方もいらっしゃるのではないでしょうか?ただ、RDBMSをやめてNoSQLにするとクエリ言語も異なるしトランザクションも利用できなくなってしまうし、アプリケーション側の改修も大きくなってしまうと躊躇されている方も多いと思います。本セッションでは、Couchbaseを使うとそれらの課題がどのように解決できるかについてご紹介をさせていただきます。

スピーカー名:Couchbase Inc. 岸田晴雄 様

はじめに

 初めに、「Couchbase」とはどのような製品であるかについてご紹介いたします。Couchbaseは、JSON形式でデータ格納するドキュメント型のNoSQLデータベースです。テーブルの定義はJSON形式で階層的に記述します。RDBMSでは予め定義された形式でしかデータを保存できませんが、ドキュメント型のNoSQLの場合、追加したいカラムなどをJSON形式で記述するだけで簡単にテーブルの定義を変更可能です。
 製品ラインナップとしては、管理・運用を気にせずにブラウザからアクセスし設定するクラウドデータベース「Couchbase Capella」、ユーザーのオンプレ環境でサーバーを立てて使用する「Couchbase Server」、オフラインファーストでモバイルデバイスへ組み込み可能な「Couchbase Mobile」の3種類があります。
 以下、セッションでお話いただいたCouchbaseの特徴の一部についてご紹介いたします。

1. 大量アクセスを高速に処理できる

 RDBMSでは、大量のユーザーとデータによるアクセスを高速化するために、Redisなどのインメモリデータベースをキャッシュ層として併用する構成をとることがあります。一方「Couchbase」では、アプリケーションからのアクセスは全てメモリ上で行われるため、キャッシュ層を使用せずに大量のアクセスを高速に処理することが可能です。
 セッションの中で、2023年にAltoros社が公開した調査※1を引用されており、「Couchbase Capella」、「MongoDB Atlas」、「Amazon DynamoDB」、「Redis Enterprise Cloud」の4種類のNoSQLデータベースについて、読み込み50%、更新50%の状態で、ノード数、及びレコード数を増やした場合におけるスループット(1秒間での処理回数)の向上が最も大きいのは「Couchbase Capella」であることをご紹介いただきました。

2. RDBMSの操作感のまま運用を開始できる

 CouchbaseはNoSQLでありながら、トランザクションにも対応していること、SQL++というANSI準拠のクエリ言語で操作可能であるなど、RDBMSに慣れたユーザーにとって少ない学習コストで運用を開始できる特徴があります。
 SQL++とは、ANSI準拠のSQLの構文に加えて、JSONの階層的なデータへアクセスするための構文をサポートしたクエリ言語です。SQL++とSQLの構文の比較はCouchbase社の公式ドキュメント※2にて記載されているのでぜひご確認ください。

3. データ分析やモバイルデバイスへの組み込みなど、多彩な機能を利用できる

 RDBMSでは、全文検索やデータ分析、モバイルデバイスへの組み込みなどの用途に合わせて他の製品との連携が必要な場合があります。一方Couchbaseでは、データベースとしての機能に加えて、全文検索機能やデータ分析、モバイルデバイスへの組み込み機能を1つの製品に組み込んでいます。使用可能な機能については、Couchbase社の公式サイト※3にて紹介されています。
 それぞれの機能は、ユーザーの用途に合わせて複数ノードに分散可能です。そのため、システム要件に合わせて、キーバリューストアと分析基盤を別々のノードに配置するなどにより負荷を分散することができます。

まとめ

  1. キャッシュ層を別途用意することなく、大量アクセスを高速に処理できる
  2. トランザクション対応や、クエリ言語SQL++により、RDBMSの操作感のまま運用を開始できる
  3. データ分析やモバイルデバイスへの組み込みなど多彩な機能を利用でき、システム要件に合わせて複数のノードに配置し負荷を分散できる

聴講した感想

 NoSQLというRDBMSとは異なる形式のデータベースであっても、クエリをなじみのある記法で書けるため、少ない学習コストでRDBMSから移行できる点が嬉しいと思いました。セッションの中で、同じ処理を通常のSQL、SQL++、MQL(MongoDB Query Language)の3つで比較をされており、SQLとSQL++が全く同じ構文で記述されていることに驚きました。
 また、マルチファンクションの1つであるモバイルデータベースの事例として、航空機内の機内サービスシステムの話が印象的でした。フライト中はモバイルデバイスに組み込まれたCouchbase間で同期をとり、空港に着陸しネットワークに接続可能となった際にサーバーと同期することにより、オフライン環境でも、複数のデバイスからのアクセスを処理できる仕組みがあることをご紹介いただきました。
 別日(12/6(水))ではありますが、当セッションのスピーカーである岸田様のA6 セッション「RDBMSからNoSQLへの移行を考えてみませんか?移行のポイントとメリットをご紹介」の中で、クラウドデータベース「Couchbase Capella」を使ったデモを実施いただいた際に、ブラウザから操作するUIが分かりやすくて、すぐに使い始めることができそうだと感じました。A6セッションではデータベース移行のデモがあるので、RDBMSからCouchbaseへの移行方法が気になる方はぜひアーカイブ配信をご視聴ください。

参考

※1 Couchbase Capella vs. MongoDB Atlas vs. Amazon DynamoDB vs. Redis Enterprise Cloud | Altoros, https://www.altoros.com/blog/couchbase-capella-vs-mongodb-atlas-vs-amazon-dynamodb-vs-redis-enterprise-cloud/ (参照 2023-12-19)

※2 SQL++ versus SQL | Couchbase Docs, https://docs.couchbase.com/server/current/learn/data/n1ql-versus-sql.html (参照 2023-12-19)

※3 What Is Couchbase | Couchbase Developer Portal, https://developer.couchbase.com/what-is-couchbase/ (参照 2023-12-19)

一覧に戻る