OSS紹介

RethinkDB

RethinkDB最新情報

NRIのOpenStandiaが提供するRethinkDB最新情報

RethinkDBの保守サポートサービスの内容はこちら RethinkDBの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

RethinkDB最新トピック

すべてを見る

RethinkDBバージョンアップ情報

すべてを見る

更新日:2018-10-26

RethinkDBの概要

RethinkDBはリアルタイムWebアプリケーションに向けにゼロベースで設計されたオープンソースのドキュメント指向(JSON)データベースです。
当初RethinkDB社が開発およびサポートを行っていましたが、同社が2016年10月に業務継続が困難な状況に陥ったため、Cloud Native Computing Foundationがソースコードなどの権利を買い取った上で、Linux Foundationに寄贈されることになりました。現在は、同コミュニティにより開発が継続されています。

RethinkDB では既存のデータベースのアーキテクチャのようにデータの変更をアプリケーションから polling するのとは異なり、Webアプリケーションに更新された検索結果をリアルタイムにかつ、連続的にpushすることが可能です。リアルタイムアプリケーション向けに設計されていることに加え、RethinkDBは柔軟なクエリー言語や直感的な操作、モニタリングAPIを提供します。

現在の最新バージョンは、RethinkDB 2.3.6です。(2018年9月現在)

TOPに戻る

RethinkDBのユースケース

RethinkDBのリアルタイム push アーキテクチャの恩恵を受けるのは以下のようなユースケースです。

  • 共同設計のWebやモバイルアプリ
  • ストリーミング分析アプリ
  • マルチプレイヤーのゲーム
  • リアルタイムの市場
  • ネットワーク接続デバイス

RethinkDBはスタートアップ企業やコンサルティング企業、ゲーム会社など、500を超える企業によって、プロダクション環境で利用されています。主な企業としては、Jive Softwareや NASA、Narrative、Wise.ioなどがあります。

TOPに戻る

RethinkDBの主な特徴

管理機能 管理ツールとして、Webインターフェース、ReQL管理コマンドが利 用できます。
拡張構成
スケールアウト、シャーディング、レプリケーションに対応します。セッ ティングはWeb管理コンソールや、ReQL管理コマンドから簡単に制御できます。
冗長構成
マルチサーバ構成をとる事により、サーバ障害発生時でも自動フェイル オーバーが可能です。
ただし、自動フェイルオーバーを利用する場合にはいくつかの前提要件を満たしている必要があります。
アクセス制御
ユーザ、パーミッション、スコープに基づいて、細やかなアクセスコント ロールを実施できます。
バックアップ
RethinkDBではdump、restoreサブコマンドによりク ラスタ上で簡単にホットバックアップを取得することが可能です。
データインポート
JSONファイルもしくは、CSVファイルからのインポートが可能で す。
ReQLによるデータ操作
RethinkDB query language(ReQL)により、強力かつ柔軟なJSON操作を提供します。
具体的には、プログラム言語内にReQLを組み込むことや、複数のReQLをチェーンとして連結することや、サーバ側での遅延実行や並列実行を指定するこ とが可能です。
複数の2次インデックスをサポート
  • 単一フィールド値に基づくシンプルインデックス
  • 複数フィールド値に基づく複合インデックス
  • 配列の値に基づくマルチインデックス
  • 任意表現によるインデックス
の4つのインデックスの利用が可能です。
テーブルJOINのサポート 多くのRDBのように、RethinkDBでは、プライマリキーやサブ クエリー、または2次インデックスによる複数テーブルのJOINをサポートします。
Map-reduce 機能
大規模データセットのサマリーや、集約を実現する Map-reduce 用のクエリーをサポートします。
Changefeeds機能
Changefeeds は、RethinkDBのリアルタイム機能の核となる機能です。
テーブル全体の単純な変更フィードに加え、単一ドキュメントのフィードや、各種フィルタリング、集約クエリーなどが利用可能です
非同期接続機能
RethinkDBドライバによっては、非同期ライブラリとの統合によ り非同期接続をサポートします。Changefeedsやリアルタイムアプリケーションで利用されます。
現状では、JavaScriptと、Ruby、Pythonでの利用が可能です。
外部APIへのアクセス
RethinkDBでは、r.httpコマンドにより、データベースか ら外部APIに直接アクセスする機能を提供します。

TOPに戻る

RethinkDBの動作環境

RethinkDBのサーバー

公式パッケージとして、以下のOSのパッケージが提供されています。

  • Ubuntu
  • OS X
  • CentOS
  • Debian
  • Windows

コミュニティによるパッケージとして、以下の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

TOPに戻る

RethinkDBの類似ソフトウェア

オープンソースのドキュメント指向データベースとして有名な製品として、MongoDB、Apache CouchDBがあります。RethinkDBはこれらのNoSQL製品に比べ後発であったため、先進的なクエリー言語や管理インターフェース、分散構成に関して既存製品の長所を多く組み込んだ製品になっています。

その中でも、RethinkDBではリアルタイムアプリケーションとの親和性に関して大きな特徴があるといえます。たとえば、RethinkDBでも、従来のポーリング方式でアプリケーションを開発することは可能です。その後、アプリケーションにリアルタイム機能が加わった段階でリアルタイムフィードを組み込むといった対応が可能です。

その他、MongoDBとの比較に関しましては、以下のRethinkDBの公式ページに複数の観点でまとめられているため、こちらが参考になります。
https://www.rethinkdb.com/docs/rethinkdb-vs-mongodb/
https://www.rethinkdb.com/docs/comparison-tables/

TOPに戻る

RethinkDBのライセンス

RethinkDB サーバは、GNU Affero General Public License v3.0 、クライアントドライバは、Apache License v2.0のライセンス下での利用が可能です。

TOPに戻る

RethinkDBのダウンロード

https://www.rethinkdb.com/docs/install/
上記、URLより動作環境の OSに応じたバイナリパッケージもしくは、ソースコードのダウンロードが可能です。

TOPに戻る

RethinkDBのサポート

現在、OpenStandiaではRethinkDBのサポート提供は行っておりません。

TOPに戻る

RethinkDBの公式サイト

https://www.rethinkdb.com/

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目MongoDB
  • OpenIDM
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • BIND
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Spring Framework
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • sendmail
  • Courier-IMAP
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
<--!-->