GridDBは、時系列で蓄積されるセンサーデータに適したKVS(Key-Value Store)型のデータモデルを持ち、センサの数に応じて容易にスケールアウトすることができるデータベースです。
-
高信頼性
ノード間でキー・バリューデータの複製を互いのノードで持ち合う仕組みを備えており、万が一ノード障害が発生しても、他ノードの複製を使うことにより、数秒で自動フェイルオーバーが可能です。 -
高速性(インメモリ)
RDBではメモリを大容量化しても、バッファ管理等に大きなオーバヘッドが発生するため本質的なデータ処理にCPUリソースの10%前後しか割当てられずCPUパワーを十分発揮できないことが知られています。GridDB/NoSQLは、大容量化されたメモリを前提に、バッファ処理の軽量化、リカバリ処理の軽量化、データ処理時のロックフリー化を行うことで、これまでのオーバヘッドを最小化します。 -
高度なデータモデルと操作モデル
従来の分散KVSでは、Put/Get/Removeという操作によりデータを操作します。GridDB/NoSQLは、これを大幅に拡張し、構造化データの定義機能、SQLライクなクエリ機能、トランザクション機能、JavaのAPI(Application Programming Interface)をサポートしており、RDBユーザがスムーズに導入できるようになっています。キー・バリューをキー・コンテナと呼ぶレコードの集合体でデータを表現します。これはRDBのテーブル名とテーブルの関係に類似しています。また、センサーデータ管理向けの応用機能も備わっています。
本リポジトリにはサーバとJavaクライアントがあります。
(追加情報)
Maven Central Repository上にv4.3.0のJavaクライアント・パッケージ(Jar)があります。
CentOS 7.6(gcc 4.8.5)、Ubuntu 18.04(gcc 4.8.5)、openSUSE Leap 15.1(gcc 4.8.5)の環境での動作を確認しています。
$ ./bootstrap.sh
$ ./configure
$ make
※JavaクライアントをMavenでビルドしたい場合は以下のコマンドを実行してください。gridstore-X.X.X.jarがtarget/の下に生成されます。
$ cd java_client
$ ./make_source_for_mvn.sh
$ mvn clean
$ mvn install
$ export GS_HOME=$PWD
$ export GS_LOG=$PWD/log
$ bin/gs_passwd admin
#input your_password
$ vi conf/gs_cluster.json
# "clusterName":"your_clustername" #<-- input your_clustername
$ bin/gs_startnode
$ bin/gs_joincluster -c your_clustername -u admin/your_password
$ export CLASSPATH=${CLASSPATH}:$GS_HOME/bin/gridstore.jar
$ mkdir gsSample
$ cp $GS_HOME/docs/sample/program/Sample1.java gsSample/.
$ javac gsSample/Sample1.java
$ java gsSample/Sample1 239.0.0.1 31999 your_clustername admin your_password
--> Person: name=name02 status=false count=2 lob=[65, 66, 67, 68, 69, 70, 71, 72, 73, 74]
$ bin/gs_stopcluster -u admin/your_password
$ bin/gs_stopnode -u admin/your_password
CentOS 7.6、Ubuntu 18.04、openSUSE Leap 15.1の環境での動作を確認しています。
※ このパッケージをインストールすると、OS内にgsadmユーザが作成されます。運用コマンドはgsadmユーザで操作してください。
※ gsadmユーザでログインすると環境変数 GS_HOMEとGS_LOGが自動的に設定されます。
※ Ubuntu用、openSUSE用のパッケージはトリガ機能を含んでいません。
(CentOS)
$ sudo rpm -ivh griddb_nosql-X.X.X-linux.x86_64.rpm
(Ubuntu)
$ sudo dpkg -i griddb_nosql-X.X.X_amd64.deb
(openSUSE)
$ sudo zypper install griddb_nosql-X.X.X-opensuse.x86_64.rpm
※ X.X.Xはバージョンを意味します。
[gsadm]$ gs_passwd admin
#input your_password
[gsadm]$ vi conf/gs_cluster.json
# "clusterName":"your_clustername" #<-- input your_clustername
[gsadm]$ gs_startnode
[gsadm]$ gs_joincluster -c your_clustername -u admin/your_password
$ export CLASSPATH=${CLASSPATH}:/usr/share/java/gridstore.jar
$ mkdir gsSample
$ cp /usr/griddb-X.X.X/docs/sample/program/Sample1.java gsSample/.
$ javac gsSample/Sample1.java
$ java gsSample/Sample1 239.0.0.1 31999 your_clustername admin your_password
--> Person: name=name02 status=false count=2 lob=[65, 66, 67, 68, 69, 70, 71, 72, 73, 74]
[gsadm]$ gs_stopcluster -u admin/your_password
[gsadm]$ gs_stopnode -u admin/your_password
インストール時のトラブルシューティングもご参照ください。
以下のドキュメントがあります。
- 機能リファレンス
- スタートアップガイド
- APIリファレンス
- RPMインストールガイド
- DEBインストールガイド
- クラスタ設計書
- V3.0 Release Notes
- V4.0 Release Notes
- V4.1 Release Notes
- V4.2 Release Notes
- V4.3 Release Notes
Java以外のクライアント、APIもあります。
- GridDB C Client
- GridDB Python Client
- GridDB Ruby Client
- GridDB Go Client
- GridDB Node.JS Client
- GridDB PHP Client
- GridDB Perl Client
- GridDB WebAPI
他のOSSと接続するためのコネクタもあります。
- GridDB connector for Apache Hadoop MapReduce
- GridDB connector for YCSB (https://github.com/brianfrankcooper/YCSB/tree/master/griddb)
- GridDB connector for KairosDB
- GridDB connector for Apache Spark
- GridDB Foreign Data Wrapper for PostgreSQL (https://github.com/pgspider/griddb_fdw)
- GridDB Sample Application for Apache Kafka
- GridDB Data Source for Grafana
- GridDB Plugin for Redash
- GridDB Plugin for Fluentd
- Issues
質問、不具合報告はissue機能をご利用ください。 - PullRequest
GridDB Contributor License Agreement(CLA_rev1.1.pdf)に同意して頂く必要があります。 PullRequest機能をご利用の場合はGridDB Contributor License Agreementに同意したものとみなします。
サーバソースのライセンスはGNU Affero General Public License (AGPL)、 Javaクライアントと運用コマンドのライセンスはApache License, version 2.0です。 サードパーティのソースとライセンスについては3rd_party/3rd_party.mdを参照ください。