12
7

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.

GridDBの調査

Last updated at Posted at 2019-12-20

IoT(Internet of Things) システムでは、各種センサーから、秒以下の周期で取得された、大量の時系列データを取り扱います。このようなデータを保持するシステムとして、時系列データベースは求められています。そこで、時系列データベースの GridDB について、まとめました。
OSSデータベース調査 NoSQLデータベース編の中で、GridDB を扱っていますが、可用性、拡張性、セキュリティなど掘り下げて、以下のようにまとめました。

GridDB

スケールアウト型分散データベース GridDB は、IoTやビッグデータに適した、「IoT指向のデータモデル」「高い性能」「高い拡張性」「高い信頼性と可用性」を特長とする、膨大な時系列データを効率よく蓄積し、高い性能をスケーラブルに発揮できるデータベースです。

基本情報

項目            内容
URL https://www.toshiba-sol.co.jp/pro/griddb/index_j.htm
https://griddb.net
データモデル GridDB独自のキーコンテナ型(RDBのテーブルに似た概念)でデータを保持します。コンテナには、コレクションコンテナと時系列コンテナの2種類があります。
動作環境 CPU:x86_64
メモリ:32GB 以上
ストレージ:100GB 以上
OS
Red Hat Enterprise Linux 7.6/7.7/7.8/7.9/8.1/8.2/8.3 (64bit版)
CentOS 7.6/7.7/7.8/7.9/8.1/8.2/8.3 (64bit版)
参照 : 動作環境
実装言語 C++
ライセンス Community Edition
サーバは AGPLライセンス
Javaクライアントとオプショナル・コマンドは Apache License version 2.0
参照 : https://github.com/griddb/griddb_nosql
Enterprise Edition
パーペチュアルライセンス(永続使用可)、サブスクリプションライセンス(契約期間使用可)の2種類があります。
参照 : GridDB 製品ラインアップ
開発元 東芝デジタルソリューションズ
開発体制 OSS版 Contributorは6名。 GridDB Contributor License Agreement を締結する必要があります。
国内サポート体制 国内では東芝デジタルソリューションズがサポート
その他 国産フルスクラッチのOSSデータベース

機能情報

項目            内容
対応プログラム言語 C/C++、Java、Go、Python、Ruby、Perl、JavaScript (Node.js)、PHP
参照 : https://github.com/griddb
クエリ言語 TQL(SQLのサブセット)
NoSQLインターフェース(Native API)
NewSQLインタフェース(SQL)、JDBC/ODBCおよびHTTP/REST APIをサポート
データ圧縮 時系列コンテナは、誤差あり間引き圧縮(HI)と誤差なし間引き圧縮(SS)の2種類でデータを圧縮して保持することが可能です。圧縮オプションの指定は時系列コンテナ作成時に指定します。
参照 : GridDB機能リファレンス 6.4.1 圧縮機能
メモリ上のデータをデータベースファイル(チェックポイントファイル)に書き出す際に、GridDBの書き出し単位のブロック毎に圧縮操作を行うことで、データベースファイルが圧縮されます。
参照 : GridDB機能リファレンス 6.11 データベース圧縮/解放機能
データ自動集計 未サポート
期限解放機能 設定した保持期間を超えたロウデータを、検索や削除などの操作対象から外して参照不可とした後、DBから物理的に削除する期限解放機能があります。期限解放にはロウ期限解放とパーティション期限解放の2種類があります。
また、コールドデータとなったロウの削除方法は、自動削除、または、アーカイブ保存後に自動削除のいずれかを選択できます。
参照 : GridDB機能リファレンス 6.4.3 期限解放機能
時系列分析関数 集計演算関数は、重み付きで平均を求めるTIME_AVGがあります。
選択関数は、TIME_NEXT、TIME_NEXT_ONLY、TIME_PREV、TIME_PREV_ONLYがあります。
補間演算関数は、TIME_INTERPOLATED、TIME_SAMPLINGがあります。
参照 : GridDB機能リファレンス 6.4.2 TQLの演算機能
インデックス ツリー索引、ハッシュ索引、空間索引が使用可能です。
時系列コンテナはハッシュ索引、空間索引を使用できません。
また、時系列のロウキー(TIMESTAMP型)の索引は自動で付与されます。
参照 : GridDB機能リファレンス 5.1.3 主キー
トランザクション GridDBでは、コンテナ単位でのトランザクションをサポートしています。
しかし、複数コンテナを参照するトランザクションではAtomicity (原子性)が保障されません。
参照 : GridDB機能リファレンス 6.6 トランザクション機能
ストアドプロシジャ 未サポート
トリガー コンテナのロウデータへの操作 (追加/更新もしくは削除) が行われた際に、自動的に通知するトリガーをサポートしています。
通知方法は、Java Messaging Service(JMS)、REST の 2種類があります。
通知内容は指定されたカラムのデータのみです。
参照 : GridDB機能リファレンス 6.9 トリガ機能
dockerコンテナ dockerhubでGridDBのDocker Containerイメージが公開されています。
https://hub.docker.com/r/griddb
性能拡張 自律データ再配置技術によってクラスタへのノードの追加・削除の自律管理による運用の容易化が可能である。
高可用性 クラスタを構成する複数のノード間では、ユーザが設定したレプリケーション数に従って、パーティション単位にデータのレプリカが作成されます。
コンテナに更新があると多重化されたパーティションのうち、オーナノード(レプリカのマスタを持つノード)が更新されます。その後オーナノードから更新内容がバックアップノードに反映されます。
レプリケーション方法は非同期と準同期の2種類のレプリケーションを提供されています。
クラスタ構成で運用している際にノード障害が発生した場合、クライアントAPI内で自動的にバックアップノードに接続し直し処理を継続するクライアントフェイルオーバー機能が動作します。
参照 : GridDB機能リファレンス 6.7 レプリケーション機能
運用 Enterprise Editionでは、クラスタを構成する全ノードに対して順次行うことで、サービスを継続しながら、クラスタ全体としてのバックアップが行えます。また、統合運用管理GUI(gs_admin)が提供されています。
参照 : GridDB 運用ツールリファレンス
出来ないこと 複数コンテナを用いたトランザクション処理ができません。

セキュリティ

項目            内容
通信暗号化 クライアントとクラスタ間の通信は、SSL/TLSv1.2/TLSv1.3に対応しています。
DB格納領域の暗号化 なし
認証機能 ユーザ定義ファイルでユーザとパスワードを格納してユーザ認証で使用しています。パスワードは登録の際に暗号化されます。ユーザは、管理ユーザと一般ユーザの2種類があり、利用できる機能に違いがあります。
また、外部認証としてLDAP認証にも対応しています。
権限管理 管理ユーザがデータベース単位で一般ユーザに付与します。
DB監査 未サポート

参照 : GridDB 運用ツールリファレンス 4.7 ユーザ管理

まとめ

GridDBは、時系列データに特化した、期限解放機能や高可用性などが特に強いです。しかも OSS版でもこれらの機能が使えるのは大きいです。他の時系列データベースと違って、国内サポート体制が整っています。

掲載内容は、(株)東芝 デジタルイノベーションテクノロジーセンター及びソフトウェア技術センターの見解です。コメント等は広くご意見を頂ければ幸いです。

また、記述について誤りがあったり、気になることがあれば、編集リクエストやコメントでフィードバックしていただけると助かります。

12
7
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?