バージョンアップ情報
RethinkDB情報
RethinkDBとは
RethinkDBはリアルタイムWebアプリケーション向けにゼロベースで設計されたオープンソースのドキュメント指向(JSON)データベースです。
当初RethinkDB社が開発およびサポートを行っていましたが、同社が2016年10月に業務継続が困難な状況に陥ったため、Cloud Native Computing Foundationがソースコードなどの権利を買い取った上で、Linux Foundationに寄贈されることになりました。現在は、同コミュニティにより開発が継続されています。
RethinkDB では既存のデータベースのようにデータの変更をアプリケーションから polling するのとは異なり、Webアプリケーションに更新された検索結果をリアルタイムにかつ、連続的にpushすることが可能です。リアルタイムアプリケーション向けに設計されていることに加え、RethinkDBは柔軟なクエリー言語や直感的な操作、モニタリングAPIを提供します。
主な特徴
管理機能 |
管理ツールとして、Webインターフェース、ReQL管理コマンドが利用できます。 |
---|---|
拡張構成 |
スケールアウト、シャーディング、レプリケーションに対応します。設定はWeb管理コンソールや、ReQL管理コマンドから簡単に制御できます。 |
冗長構成 |
マルチサーバ構成をとる事により、サーバ障害発生時でも自動フェイル オーバーが可能です。 |
アクセス制御 |
ユーザ、パーミッション、スコープに基づいて、細やかなアクセスコントロールを実施できます。 |
バックアップ |
RethinkDBではdump、restoreサブコマンドによりクラスタ上で簡単にホットバックアップを取得することが可能です。 |
データインポート |
JSONファイルもしくは、CSVファイルからのインポートが可能で す。 |
ReQLによるデータ操作 |
RethinkDB query language(ReQL)により、強力かつ柔軟なJSON操作を提供します。 |
複数の2次インデックスをサポート |
の4つのインデックスの利用が可能です。 |
テーブルJOINのサポート |
多くのRDBのように、RethinkDBでは、プライマリキーやサブ クエリー、または2次インデックスによる複数テーブルのJOINをサポートします。 |
Map-reduce 機能 |
大規模データセットのサマリーや、集約を実現する Map-reduce 用のクエリーをサポートします。 |
Changefeeds機能 |
Changefeeds は、RethinkDBのリアルタイム機能の核となる機能です。 |
非同期接続機能 |
RethinkDBドライバによっては、非同期ライブラリとの統合によ り非同期接続をサポートします。Changefeedsやリアルタイムアプリケーションで利用されます。 |
外部APIへのアクセス |
RethinkDBでは、r.httpコマンドにより、データベースか ら外部APIに直接アクセスする機能を提供します。 |
類似プロダクト
オープンソースのドキュメント指向データベースとして有名な製品として、MongoDB、Apache CouchDBがあります。RethinkDBはこれらのNoSQL製品に比べ後発であったため、先進的なクエリー言語や管理インターフェース、分散構成に関して既存製品の長所を多く組み込んだ製品になっています。
その中でも、RethinkDBではリアルタイムアプリケーションとの親和性に関して大きな特徴があるといえます。たとえば、RethinkDBでも、従来のポーリング方式でアプリケーションを開発することは可能です。その後、アプリケーションにリアルタイム機能が加わった段階でリアルタイムフィードを組み込むといった対応が可能です。
その他、MongoDBとの比較に関しましては、以下のRethinkDBの公式ページに複数の観点でまとめられているため、こちらが参考になります。
ユースケース
RethinkDBのリアルタイム push アーキテクチャの恩恵を受けるのは以下のようなユースケースです。
- 共同設計のWebアプリやモバイルアプリ
- ストリーミング分析アプリ
- マルチプレイヤーのゲーム
- リアルタイムの市場
- ネットワーク接続デバイス
RethinkDBはスタートアップ企業やコンサルティング企業、ゲーム会社など、500を超える企業によって、プロダクション環境で利用されています。主な企業としては、Jive Softwareや NASA、Narrative、Wise.ioなどがあります。
動作環境
RethinkDBのサーバ
公式パッケージとして、以下のOSのパッケージが提供されています。
- Ubuntu
- OS X
- CentOS
- Debian
- DigitalOcean
コミュニティによるパッケージとして、以下のOSのパッケージが提供されています。
- Arch Linux
- openSUSE
- Fedora
- Linux Mint
- Raspbian
- Gentoo
Docker はDocker Hubに公式のRetinkDBリポジトリを提供しています。
RethinkDBのクライアントドライバ
公式のクライアントドライバとして、以下が提供されています。
- JavaScript(npmパッケージ)
- Ruby(gemパッケージ)
- Python(pin パッケージ)
- Java(Maven、Gradle、Ant に対応)
コミュニティがサポートするクライアントドライバとして、以下が提供されています。
- C#
- C++
- Clojure
- Common Lisp
- Dart
- Delphi
- Elixir
- Erlang
- Go
- Haskell
- JS
- Lua
- Nim
- Perl
- PHP
- R
- Rust
- Swift
RethinkDBのライセンス
RethinkDBのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
PostgreSQL
ポストグレエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システムです。
-
サポート対象
MongoDB
モンゴデービー。高可用性、スケーラビリティ、スキーマレスに注目が集まる、NoSQLデータベースです。
-
サポート対象
MariaDB
マリアデービー。MySQLから派生したオープンソースのリレーショナルデータベース管理システム(RDBMS)です。
-
サポート対象
MySQL
マイエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システム