SlideShare a Scribd company logo
© 2022 Toshiba Digital Solutions Corporation
東芝デジタルソリューションズ株式会社 GridDBコミュニティ版担当
野々村 克彦
2022.10.28
日本発のオープンソース・データベースGridDB
2
© 2022 Toshiba Digital Solutions Corporation
Contents
GridDBの概要
GridDBの使い方
OSS活動
まとめ
01
02
03
04
3
© 2022 Toshiba Digital Solutions Corporation
01
GridDBの概要
4
© 2022 Toshiba Digital Solutions Corporation
GridDBの概要
①GridDBとは?
②GridDBはオープンソース?
③オープンソース化の目的
④特徴
⑤目指す姿
⑥ユースケース
5
© 2022 Toshiba Digital Solutions Corporation
①GridDBとは?
• 日本発のビッグデータ/IoT向けデータベース
※IoT:モノのインターネット(Internet Of Things)。大量のモノ(センサなど)から得られるデータが
インターネットにつながること。
電力系統制御 PV監視制御 BEMS HEMS 上下水道 交通 医療
MEMORY
HDD
GridDB
6
© 2022 Toshiba Digital Solutions Corporation
②GridDBはオープンソース?
GridDB
Community Edition
GridDB
Enterprise Edition
GridDB Cloud
高頻度・大量に発生する時系列デー
タの蓄積とリアルタイムな活用をスムー
ズに実現する次世代の
オープンソースデータベース
高頻度・大量に発生する時系列デー
タの蓄積とリアルタイムな活用をスムー
ズに実現し、ビジネスを大きく成長させ
るために
最適化された次世代のデータベース
高頻度・大量に発生する時系列デー
タの蓄積とリアルタイムな活用をスムー
ズに実現する
クラウドデータベースサービス
社会インフラ、製造業を中心に、高い信頼性・可用性
が求められるシステムに適用されている
7
© 2022 Toshiba Digital Solutions Corporation
③GridDB オープンソース化の目的
– ビッグデータ技術の普及促進
• 多くの人に知ってもらいたい、使ってみてもらいたい。
• いろんなニーズをつかみたい。
– 他のオープンソースソフトウェア、システムとの連携強化
• V2.8 (2016年)
NoSQL機能をGitHub上にソース公開
https://github.com/griddb/griddb_nosql
• V4.5 (2020年)
SQL機能もソース公開
https://github.com/griddb/griddb
• 最新版 V5.1 (2022年10月25日)
8
© 2022 Toshiba Digital Solutions Corporation
④GridDB CEの特徴
時系列データ指向
開発の俊敏性
と使いやすさ
• NoSQL(キーバリュー型)インタフェースだけではなく、
SQLインタフェースを提供(デュアルインタフェース)
• (SQLインタフェース)ジョインなど複数テーブルに対するSQL
高い処理能力
• メモリを主、ストレージを従としたハイブリッド型インメモリDB
• (SQLインタフェース)SQLにおける分散並列処理
• (NoSQLインタフェース)バッチ処理 MultiPut/MultiGet/MultiQuery
拡張性
• ペタバイト級の大規模データへの対応
• コアスケールへの対応
• データモデルはキー・コンテナ。コンテナ内でのデータ一貫性を保証
• 巨大テーブルに対するインターバル(ハッシュ)パーティショニング
• パーティショニング期限解放、分析関数(SQL)
※ チェックポイント、Redoログによる耐障害性への対応
9
© 2022 Toshiba Digital Solutions Corporation
NoSQL DB (Key Value Store(KVS))とキー・コンテナモデル
キー
バリュー
単純値:(例)Redis
ドキュメント:(例)MongoDB
コンテナ(≒テーブル):GridDB
※索引、検索言語TQL、トランザクションをサポート
JSON
123
ハッシュテーブル
10
© 2022 Toshiba Digital Solutions Corporation
内部モジュール構成
ManagementTool
Java
クライアント
JDBC
ドライバ
NoSQL
CLIENT
SQL
EventEngine
Data Processor
Login Handler
Sync Service
Checkpoint Service
SQL Processor
SQL Compiler
SQL Operator
SQL Tmp Store
Log Manager, WAL Buffer
Partition, Chunk Manager
Data Stores
Checkpoint Files, Log Files
GRIDDB NODE
System
Service
Cluster
Service
11
© 2022 Toshiba Digital Solutions Corporation
SQLサービス
Txnサービス
(NoSQL)
SQLサービス
Txnサービス
(NoSQL)
デュアルインタフェースとテーブルパーティショニング
NoSQL層
SQL層
SQLサービス
SQLインタフェース
(JDBCドライバ)
SQL
巨大
テーブル
分割格納
Txnサービス
(NoSQL)
NoSQLインタフェース
(Javaクライアント)
partitioned
コンテナ
2022/10 2022/11 2022/12
キー・バリュー
12
© 2022 Toshiba Digital Solutions Corporation
• データ登録数が多い巨大なテーブルのデータを分散配置することで、プロセッサの並
列実行を可能とし、巨大テーブルのアクセスを高速化するための機能
• ハッシュパーティショニング
 選択基準:散らすべきキーにランダム性が高く、キーの間に処理上の関連性が無い場合
• インターバルパーティショニング
 選択基準:散らすべきキーの数値的な範囲で散らしたい場合
• インターバルハッシュパーティショニング
 選択基準:インターバルパーティショニングでは力不足の場合
-- ハッシュ
CREATE TABLE a3 (code INT, ts TIMESTAMP, dest STRING NOT NULL)
PARTITION BY HASH(dest) PARTITIONS 10
-- インターバル
CREATE TABLE a1 (code INT, ts TIMESTAMP NOT NULL, dest STRING)
PARTITION BY RANGE(ts) EVERY(1,DAY)
-- インターバルハッシュ
CREATE TABLE a4 (code INT NOT NULL, ts TIMESTAMP, dest STRING)
PARTITION BY RANGE(ts) EVERY(1,DAY)
SUBPARTITION BY HASH(dest) SUBPARTITIONS 2
テーブルパーティショニング
13
© 2022 Toshiba Digital Solutions Corporation
⑤GridDBの目指す姿
14
© 2022 Toshiba Digital Solutions Corporation
DB分類
オペレーション用途 分析用途
非リレーショナル
リレーショナル
Hadoop
RDB DWH
RDB OLTP
KVS
15
© 2022 Toshiba Digital Solutions Corporation
IoTシステム
(通常)収集から分析まで複数DBのサービスが必要になる
Hadoop
RDB DWH
RDB OLTP
他DB
BI
他システム
ETL
KVS
16
© 2022 Toshiba Digital Solutions Corporation
目指すもの
オペレーション用途 分析用途
非リレーショナル
リレーショナル
RDB DWH
RDB OLTP
他DB
BI
他システム
ETL
NoSQL
インタフェース
SQL
インタフェース
17
© 2022 Toshiba Digital Solutions Corporation
⑥ユースケース
(A) NoSQLインタフェースによるユースケース
18
© 2022 Toshiba Digital Solutions Corporation
date val
device3
date val
device2
時系列データのスキーマ例(1)
date value
CREATE TABLE device1 (
date TIMESTAMP, -- 日時
value DOUBLE, -- センサ値);
device1
装置ごとに<日時、センサ値>のコンテナ
19
© 2022 Toshiba Digital Solutions Corporation
A1.時系列データの管理
GridDB
(NoSQLインタフェース)
見える化/分析
• クエリ言語TQL
• 集計、サンプリングなど時系列専用関数
• バッチ処理(MultiPut/Get/Query)
• 高速なシステムを実現
収集
20
© 2022 Toshiba Digital Solutions Corporation
A2.Hadoop(Spark)による分散処理
Hadoop/Spark
GridDB
(NoSQLインタフェース)
集計/分析
(分散処理)
他DB
BI
他システム
ETL
• Hadoop(Spark)を使って集計・分析を大規模分散処理
⇒ GridDB(NoSQLインタフェース)の特長を最大限に活かす
収集
21
© 2022 Toshiba Digital Solutions Corporation
⑥ユースケース
(B) NoSQL/SQLのデュアルインタフェースによるユースケース
22
© 2022 Toshiba Digital Solutions Corporation
date val
device3
date val
device2
時系列データのスキーマ例(2)
date value
date id value
CREATE TABLE sensorTable (
date TIMESTAMP, -- 日時
id INTEGER, -- 装置ID
value DOUBLE, -- センサ値
PRIMARY KEY(date, id)
) PARTITION BY RANGE (date) EVERY (30, DAY);
SUBPARTITION BY HASH(id) SUBPARTITIONS 6;
-- 分割幅30日、サブパーティション数6の
インターバルハッシュパーティショニング
CREATE TABLE device1 (
date TIMESTAMP, -- 日時
value DOUBLE, -- センサ値);
device1
装置ごとに<日時、センサ値>のコンテナ
<日時、装置ID、センサ値>のテーブル+
インターバル(ハッシュ)パーティショニング
sensorTable
23
© 2022 Toshiba Digital Solutions Corporation
B1.NoSQL/SQLデュアルインタフェースによるシステム化
GridDB
NoSQL
インタフェース
他DB
BI
他システム
ETL
SQL
インタフェース
• テーブルパーティショニング
• パーティション期限解放
• 分析関数(SQL)
• …
• NoSQL+SQLによる高速処理
• SQLインタフェースによる他システム連携強化
見える化/集計/分析/AI
収集
• バッチ処理(MultiPut)
• …
24
© 2022 Toshiba Digital Solutions Corporation
02
GridDBの利用方法
25
© 2022 Toshiba Digital Solutions Corporation
GridDBのインストール&起動の手順 (Ubuntuの例)
【インストール】
1. GridDBサーバのインストール
$ wget https://github.com/griddb/griddb/releases/download/v5.0.0/griddb_5.0.0_am64.deb
$ sudo dpkg -i griddb_5.0.0_amd64.deb
2. GridDB CLI(コマンドライン・インタフェース)のインストール
$ wget https://github.com/griddb/cli/releases/download/v5.0.0/griddb_cli_5.0.0_am64.deb
$ sudo dpkg -i griddb-cli_5.0.0_amd64.deb
【起動】
3. GridDBのサービス起動
$ sudo systemctl start gridstore
4. CLI起動
$ sudo su - gsadm
$ gs_sh
>
※GridDBサービスの停止
$ systemctl stop gridstore
26
© 2022 Toshiba Digital Solutions Corporation
GridDBのインストール&起動の手順 (Ubuntuの例)
【インストール】
1. GridDBサーバのインストール
$ wget https://github.com/griddb/griddb/releases/download/v5.0.0/griddb_5.0.0_am64.deb
$ sudo dpkg -i griddb_5.0.0_amd64.deb
2. GridDB CLI(コマンドライン・インタフェース)のインストール
$ wget https://github.com/griddb/cli/releases/download/v5.0.0/griddb_cli_5.0.0_am64.deb
$ sudo dpkg -i griddb-cli_5.0.0_amd64.deb
【起動】
3. GridDBのサービス起動
$ sudo systemctl start gridstore
4. CLI起動
$ sudo su - gsadm
$ gs_sh
>
※GridDBサービスの停止
$ systemctl stop gridstore
設定なし、5つのステップだけで
CLIによるSQLなどの操作が開始できる。
27
© 2022 Toshiba Digital Solutions Corporation
<動作環境の前提条件>
• Windows10マシン上にVirtualBox
• ゲストOSはUbuntu 22.04。Java 11(デフォルト)インストール済
• 同一マシンに全ソフトウェアをインストール。ローカル実行
• GridDBのクラスタ名はmyCluster(デフォルト)
• GridDB管理者の名前はadmin、パスワードはadmin
GridDBサーバ
CLI
Java
クライアント
JDBC
ドライバ
Ubuntuマシン
※GridDBサーバ、Javaクライアント:https://github.com/griddb/griddb
※GridDB JDBCドライバ: https://github.com/griddb/jdbc
※GridDB CLI:https://github.com/griddb/cli
28
© 2022 Toshiba Digital Solutions Corporation
実行例1(SQL基本)
# テーブル作成
> create table t1 (c0 long, c1 long);
# データ登録
> insert into t1 values(1, 2);
# 検索
> select * from t1;
> get
※SQL文の先頭が下記文字列のいずれかである場合、コマンド名sqlを省略することができます。
select update insert replace delete create drop alter grant revoke pragma explain
29
© 2022 Toshiba Digital Solutions Corporation
date id value
実行例2(テーブルパーティショニング):テーブル作成
id type floor room_no
インターバルハッシュパーティション:
分割幅30日、サブパーティション数6
パーティション解放:60日
装置 センサデータ
CREATE TABLE sensorTable (
date TIMESTAMP, -- 日時
id INTEGER, -- 装置ID
value DOUBLE, -- センサ値
PRIMARY KEY(date, id)
) WITH (
expiration_type='PARTITION',
expiration_time=60,
expiration_time_unit='DAY'
) PARTITION BY RANGE (date) EVERY (30, DAY);
SUBPARTITION BY HASH(id) SUBPARTITIONS 6;
CREATE TABLE equipTable (
id INTEGER PRIMARY KEY, -- 装置ID
type STRING, -- 装置タイプ
floor INTEGER, -- 設置階
room_no INTEGER -- 設置ルームNo
);
30
© 2022 Toshiba Digital Solutions Corporation
実行例2(テーブルパーティショニング):データの登録
装置 センサデータ
INSERT INTO sensorTable
VALUES(TIMESTAMP(‘2021-11-01T10:30:00Z’), 2, 18.5);
INSERT INTO sensorTable
VALUES(TIMESTAMP('2021-11-01T10:30:00Z'), 3, 20.0);
。。。
INSERT INTO equipTable VALUES(1, 'CAMERA', 1, 1);
INSERT INTO equipTable VALUES(2, ‘THERMO', 1, 1);
INSERT INTO equipTable VALUES(3, 'THERMO', 4, 3);
INSERT INTO equipTable VALUES(4, 'THERMO', 6, 2);
INSERT INTO equipTable VALUES(5, 'WATT', 1, 1);
INSERT INTO equipTable VALUES(6, 'WATT', 6, 1);
id type floor room_no
1 CAMERA 1 1
2 THERMO 1 1
。。。
date id value
2021-11-
01T10:30:00Z
2 18.5
2021-11-
01T10:30:00Z
3 20.0
。。。
31
© 2022 Toshiba Digital Solutions Corporation
ご参考:
• SQL(テーブルパーティショニング)の例
 https://github.com/knonomura/griddb-docker/blob/master/SQLSamples.md
 https://github.com/knonomura/griddb-docker/blob/master/SQLSamples2.md
• NoSQLインタフェースでバッチ処理等を使いたい場合
 https://github.com/griddb/griddb/tree/master/sample/guide/ja
のSampleMultiPut.javaなどを参照願います。
• リモートマシンから操作したい場合
 https://github.com/griddb/griddb/blob/master/README_ja.md
 https://github.com/griddb/griddb/blob/master/docs/TroubleShootingTips_ja.md
を参照願います。
• DockerでGridDBを使いたい場合
 https://github.com/griddb/griddb-dockerのDockerfile
 https://hub.docker.com/u/griddbのDockerイメージ
を参照願います。
32
© 2022 Toshiba Digital Solutions Corporation
03
OSS活動
33
© 2022 Toshiba Digital Solutions Corporation
主なOSS活動
① GridDB本体の機能強化
② 主要OSSとの連携強化
③ APIの拡充
④ GitHub以外のサイトからの情報発信
– パッケージ
– デベロッパーズサイト(WP、ブログなど)・・・フィックスターズ社
– SNS・・・フィックスターズ社
⑤ 主要OSSリポジトリへのコントリビュート
⑥ プラットフォームの拡充
⑦ その他
– OSCなどカンファレンス参加
– ハンズオン無料セミナー・・・(株)アイ・ティ・イノベーション
34
© 2022 Toshiba Digital Solutions Corporation
Javaクライアント JDBCドライバ
OSS活動の全体イメージ
GridDB V5.1 CE(Community Edition)
Cクライアント
Hadoop
MapReduce
コネクタ
YCSB
コネクタ
Spark
コネクタ
収集 可視化
分散処理 分析
Webアプリ
性能測定
Kafka
コネクタ
②主要OSSとの連携強化
⑤主要OSSリポジトリへのコントリビュート GitHub
AI/機械学習
①GridDB本体の機能強化
WebAPI Python/Node.JS/Go/PHP/Ruby/Perlクライアント
Fluentd/Grafana/Redash
プラグイン
③APIの拡充
④GitHub以外のサイトからの情報発信
PyPI/npm/Maven/Packagist/…
…
⑥プラットフォームの拡充
CentOS+
Ubuntu、openSUSE
Windows、MacOS
Docker
https://github.com/griddb/
Kafka
コネクタ
Rust
クライアント
GridDB V5.1 CE
35
© 2022 Toshiba Digital Solutions Corporation
最近の主な活動(2022年度)
2022年
• 4月 V5.0CEのソース公開
• 9月 Apache Kafkaコネクタのソース公開
• 10月 Rust言語のクライアントライブラリのソース公開
V5.1CEのソース公開
36
© 2022 Toshiba Digital Solutions Corporation
最近の改良点
<V5.0CE>
• 大規模データに対する性能強化
 コアスケール対応
 スキャン、データ削除高速化
 チェックポイント実行時のディスクI/O負荷低減
• 機能強化
 SQLによるカラム名変更
 GridDBサービス機能
 Exp/Impツール
<V5.1CE>
• 機能強化
 クライアント通信経路設定
37
© 2022 Toshiba Digital Solutions Corporation
デベロッパーズサイト
• アプリケーション開発者向けのサイト
• 様々なコンテンツを公開
– ホワイトペーパ
– ブログ
など
https://griddb.net/ griddb net 検索
38
© 2022 Toshiba Digital Solutions Corporation
ツイッター twitter griddb 検索
https://twitter.com/griddb_jp
• GridDBに関するリリース、イベント、
などをお知らせします。
(日本国内向け)
39
© 2022 Toshiba Digital Solutions Corporation
ご参考:GridDBに関する情報
• GridDB GitHubサイト
– https://github.com/griddb/griddb/
• GridDB デベロッパーズサイト
– https://griddb.net/
• Twitter: GridDB (日本)
– https://twitter.com/griddb_jp
• Twitter: GridDB Community
– https://twitter.com/GridDBCommunity
• Facebook: GridDB Community
– https://www.facebook.com/griddbcommunity/
• Wiki
– https://ja.wikipedia.org/wiki/GridDB
• GridDB お問い合わせ
– OSS版のプログラミング関連:Stackoverflow(https://ja.stackoverflow.com/search?q=griddb)もしくはGitHub
サイトの各リポジトリのIssueをご利用ください
プログラミング関連以外:contact@griddb.netもしくはcontact@griddb.orgをご利用ください
griddb net 検索
twitter griddb 検索
griddb github 検索
40
© 2022 Toshiba Digital Solutions Corporation
04
まとめ
41
© 2022 Toshiba Digital Solutions Corporation
まとめ
• GridDBはビッグデータ・IoT向けのデータベースです。
• GridDBの概要と使い方、オープンソース活動についてご紹介しました。
• 今後も様々な拡張、拡充を進めて参ります。
GridDBのオープンソース版(GridDB CE)を是非とも使ってみてください。
https://github.com/griddb/
※本資料に掲載の製品名、サービス名には、各社の登録商標または商標が含まれています。
日本発のオープンソース・データベース GridDB
43
© 2022 Toshiba Digital Solutions Corporation
付録
44
© 2022 Toshiba Digital Solutions Corporation
各エディションの違い
項目 機能 Community Edition Enterprise Edition Cloud
サポート ✓ ✓
プロフェッショナルサービス ✓ ✓
データ管理
時系列コンテナ ✓ ✓ ✓
コレクションコンテナ ✓ ✓ ✓
索引 ✓ ✓ ✓
アフィニティ ✓ ✓ ✓
テーブルパーティショニング ✓ ✓ ✓
クエリ言語
TQL ✓ ✓ ✓
SQL ✓ ✓ ✓
NoSQLインタフェース Java ✓ ✓ ✓
C言語 ✓ ✓ ✓
NewSQL(SQL) インタフェース JDBC ✓ ✓ ✓
ODBC ✓ ✓
WebAPI ✓ ✓ ✓
時系列データ
時系列分析関数 ✓ ✓ ✓
期限付き解放機能 ✓ ✓ ✓
クラスタリング
機能クラスタ構成 ✓ ✓
分散データ管理 ✓ ✓
レプリケーション ✓ ✓
運用管理
ローリングアップグレード ✓
オンラインバックアップ ✓ ✓
エクスポート / インポート ✓ ✓ ✓
運用管理GUI ✓ ✓
CLIツール ✓ ✓ ✓
セキュリティ
信暗号化 (TLS/SSL) ✓ ✓
認証機能 (LDAP) ✓
オンプレミス環境 オンプレミス環境 ✓ ✓
クラウドサービス クラウドサービス ✓
• インタフェースはほぼ同じ
• クラスタ構成の有無の違い
45
© 2022 Toshiba Digital Solutions Corporation
CLIの主なコマンド一覧 (1)
コマンド 引数 説明
setnode [テキストファイル名] ノード変数を定義します。
setcluster クラスタ変数名 クラスタ名 マルチキャストアドレス ポート番号
[ノード変数... ]
クラスタ変数を定義します。
setclustersql クラスタ変数名 クラスタ名 SQLアドレス SQLポート番号 クラスタ構成にSQLの接続先を定義します。
setuser
ユーザ名 パスワード [OSユーザgsadmのパスワード]
クラスタにアクセスするユーザおよびパスワー
ドを定義します。
show [変数名] 変数の定義内容を表示します。
save [スクリプトファイル名] 変数定義をスクリプトファイルに保存します。
load [スクリプトファイル名] スクリプトファイルを読み込み、実行します。
変数定義
コマンド 引数 説明
connect クラスタ変数 [データベース名] GridDBクラスタに接続します。
disconnect GridDBクラスタから切断します。
接続・切断
46
© 2022 Toshiba Digital Solutions Corporation
CLIの主なコマンド一覧 (2)
コマンド 引数 説明
createcollection コンテナ名 カラム名 タイプ [カラム名 タイプ …] コンテナ(コレクション)を作成します。
dropcontainer コンテナ名 コンテナを削除します。
putrow コンテナ名 値 [値...] コンテナにロウを登録します。
removerow コンテナ名 ロウキー値 [ロウキー値...] コンテナのロウを削除します。
createindex コンテナ名 カラム名 索引タイプ... 指定カラムに索引を作成します。
tql コンテナ名 クエリ ; TQL検索を実行し、検索結果を保持します。
sql SQL文 ; SQL文を実行し、検索結果を保持します。
get [ 取得件数 ] 検索結果を取得し、標準出力に表示します。
tqlexplain コンテナ名 クエリ ; 指定TQL文の実行計画を表示します。
コンテナ操作
※SQL文の先頭が下記文字列のいずれかである場合、コマンド名sqlを省略することができます。
select update insert replace delete create drop alter grant revoke pragma explain
47
© 2022 Toshiba Digital Solutions Corporation
CLIの主なコマンド一覧 (3)
コマンド 引数 説明
showcontainer
(showtable)
[ コンテナ名(テーブル名) ] コンテナ(テーブル)情報を表示します。
searchcontainer [コンテナ名] コンテナ名からコンテナを検索します。
showsql [クエリID] 実行中のSQL処理を表示します。
showevent 実行中のイベント一覧を表示します。
showconnection コネクションの一覧を表示します。
ステイタス・一覧表示
コマンド 引数 説明
getplantxt [テキストファイル名] 実行計画をテキスト形式で表示します。
getplanjson [JSONファイル名] 実行計画をJSON形式で表示します。
実行計画
48
© 2022 Toshiba Digital Solutions Corporation
Javaクライアントによるバッチ処理
List<String> containerNameList = new ArrayList<String>();
…
final Map<String, List<Row>> rowListMap = new HashMap<String, List<Row>>();
Random rnd = new Random();
for (String containerName : containerNameList) {
final List<Row> rowList = new ArrayList<Row>();
ContainerInfo containerInfo;
containerInfo = store.getContainerInfo(containerName);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
Date tm1=sf.parse("2015-04-27 19:00:00.000");
for (int j = 0; j < rowCount; j++) {
Row row = store.createRow(containerInfo);
row.setTimestamp(0,TimestampUtils.add(tm1, j, TimeUnit.MINUTE));
row.setBool(1, false);
row.setDouble(2, rnd.nextInt(10000));
rowList.add(row);
}
rowListMap.put(containerName, rowList);
}
store.multiPut(rowListMap);
※https://github.com/griddb/griddb/tree/master/sample/guide/ja
のSampleMultiPut.javaの抜粋
49
© 2022 Toshiba Digital Solutions Corporation
リモートマシンからのアクセスを可能にするには
1. gsadmユーザでログイン
$ su – gsadm
2. コンフィグ変更(デフォルトはローカル接続限定の設定になっているため)
$ cp /usr/griddb-X.X.X/conf_multicast/* conf/.
3. GridDB管理者(admin)のパスワード設定
$ gs_passwd admin
> admin
4. GridDBサーバの起動、(1ノードでの)クラスタ構成
$ gs_startnode
$ gs_joincluster –u admin/admin –c myCluster
・Stat確認
$ gs_stat –u admin/admin

More Related Content

PDF
わかった気になるMySQL
PDF
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
PDF
さいきんの InnoDB Adaptive Flushing (仮)
PDF
第7回 Linked Data 勉強会 @yayamamo
PDF
[D35] インメモリーデータベース徹底比較 by Komori
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PDF
Topology Managerについて / Kubernetes Meetup Tokyo 50
PPT
ジオどす発表資料
わかった気になるMySQL
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
さいきんの InnoDB Adaptive Flushing (仮)
第7回 Linked Data 勉強会 @yayamamo
[D35] インメモリーデータベース徹底比較 by Komori
FPGA・リコンフィギャラブルシステム研究の最新動向
Topology Managerについて / Kubernetes Meetup Tokyo 50
ジオどす発表資料

What's hot (20)

PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
SQLアンチパターン~スパゲッティクエリ
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
PPTX
iostat await svctm の 見かた、考え方
PDF
MySQLステータスモニタリング
PDF
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
PDF
Innodb에서의 Purge 메커니즘 deep internal (by 이근오)
PDF
Your mind is the scene of development
PDF
Union find(素集合データ構造)
PPTX
TVMの次期グラフIR Relayの紹介
PDF
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
暗認本読書会13 advanced
PDF
雑なMySQLパフォーマンスチューニング
PDF
ClickHouse Intro
PDF
直交領域探索
PDF
わたしを支える技術
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online
PDF
組み込み関数(intrinsic)によるSIMD入門
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
SQLアンチパターン~スパゲッティクエリ
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
iostat await svctm の 見かた、考え方
MySQLステータスモニタリング
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
Innodb에서의 Purge 메커니즘 deep internal (by 이근오)
Your mind is the scene of development
Union find(素集合データ構造)
TVMの次期グラフIR Relayの紹介
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
暗認本読書会13 advanced
雑なMySQLパフォーマンスチューニング
ClickHouse Intro
直交領域探索
わたしを支える技術
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online
組み込み関数(intrinsic)によるSIMD入門
Ad

Similar to 日本発のオープンソース・データベース GridDB (11)

PDF
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティショニングを 使っ...
PDF
ペタバイト級でも扱えるGridDBのアーキテクチャ Deep Dive
PDF
アーキテクチャを一新したIoT/ビッグデータ向けデータベースGridDB
PDF
NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~コマンドライン・インターフェース(CLI)を使ってみましょう~
PDF
多様性時代のDB選択
PDF
IoT指向のクラウドデータベースサービスGridDB Cloud ~その特徴とデータ連携の方法~
PDF
遂に登場! GridDBからデータベースサービス GridDB Cloud ~その設計思想と運用の原則
PDF
Purpose-built NoSQL Database for IoT by Basavaraj Soppannavar
PDF
Scale Relational Database with NewSQL
PDF
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama
PDF
When Apache Spark Meets TiDB with Xiaoyu Ma
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティショニングを 使っ...
ペタバイト級でも扱えるGridDBのアーキテクチャ Deep Dive
アーキテクチャを一新したIoT/ビッグデータ向けデータベースGridDB
NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~コマンドライン・インターフェース(CLI)を使ってみましょう~
多様性時代のDB選択
IoT指向のクラウドデータベースサービスGridDB Cloud ~その特徴とデータ連携の方法~
遂に登場! GridDBからデータベースサービス GridDB Cloud ~その設計思想と運用の原則
Purpose-built NoSQL Database for IoT by Basavaraj Soppannavar
Scale Relational Database with NewSQL
[D15] 最強にスケーラブルなカラムナーDBよ、Hadoopとのタッグでビッグデータの地平を目指せ!by Daisuke Hirama
When Apache Spark Meets TiDB with Xiaoyu Ma
Ad

More from griddb (20)

PDF
オープンソースのIoT向けデータベースGridDB-最新の強化ポイントについて-
PDF
ペタバイトデータをSQLでリアルタイム分析し、品質を向上させたユーザ事例~現場の苦労を紹介~
PDF
2024年時系列データベースの最新動向と最適な選択基準…時系列データベースは、現代のデータ駆動型ビジネスにおいて不可欠な要素となっています。適切な時系列デ...
PDF
ビッグデータ・IoTシステム向け高速スケールアウト型データベース GridDB - 従来のデータベースでは不可能だったビッグデータのリアルタイム分析が可...
PDF
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB - 強化された時系列データ管理・検索機能について -
PDF
東芝のデータ処理技術基盤のご紹介(ポスター)
PDF
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB ~ クラウドでGridDBを使ってみましょう ~
PDF
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
PDF
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
PDF
データを事業に活かすために必要なデータ基盤とは
PDF
GridDB: A Distributed SQL time series database for IoT and Big Data
PDF
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~
PDF
多様性時代のDB選択
PDF
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
PDF
ビッグIoTデータに対応したデータベース GridDB
PDF
オープンソースデータベース GridDBとそのオープンコミュニティ活動
PDF
GridDBを使用する理由…IoTビッグデータ システムを支える分散スケールアウト型NoSQL/SQLハイブリットデータベースGridDB
PDF
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
PDF
サイバーフィジカルシステム(CPS)に必要なデータ基盤を考える ~ NoSQL/SQLハイブリット型GridDB ~
PDF
DXを支えるスケールアウト型NoSQL/SQLハイブリッドデータベース GridDB
オープンソースのIoT向けデータベースGridDB-最新の強化ポイントについて-
ペタバイトデータをSQLでリアルタイム分析し、品質を向上させたユーザ事例~現場の苦労を紹介~
2024年時系列データベースの最新動向と最適な選択基準…時系列データベースは、現代のデータ駆動型ビジネスにおいて不可欠な要素となっています。適切な時系列デ...
ビッグデータ・IoTシステム向け高速スケールアウト型データベース GridDB - 従来のデータベースでは不可能だったビッグデータのリアルタイム分析が可...
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB - 強化された時系列データ管理・検索機能について -
東芝のデータ処理技術基盤のご紹介(ポスター)
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB ~ クラウドでGridDBを使ってみましょう ~
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
データを事業に活かすために必要なデータ基盤とは
GridDB: A Distributed SQL time series database for IoT and Big Data
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~
多様性時代のDB選択
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
ビッグIoTデータに対応したデータベース GridDB
オープンソースデータベース GridDBとそのオープンコミュニティ活動
GridDBを使用する理由…IoTビッグデータ システムを支える分散スケールアウト型NoSQL/SQLハイブリットデータベースGridDB
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
サイバーフィジカルシステム(CPS)に必要なデータ基盤を考える ~ NoSQL/SQLハイブリット型GridDB ~
DXを支えるスケールアウト型NoSQL/SQLハイブリッドデータベース GridDB

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Encapsulation theory and applications.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Big Data Technologies - Introduction.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Digital-Transformation-Roadmap-for-Companies.pptx
Review of recent advances in non-invasive hemoglobin estimation
Unlocking AI with Model Context Protocol (MCP)
A comparative analysis of optical character recognition models for extracting...
Network Security Unit 5.pdf for BCA BBA.
“AI and Expert System Decision Support & Business Intelligence Systems”
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
Assigned Numbers - 2025 - Bluetooth® Document
Encapsulation theory and applications.pdf
sap open course for s4hana steps from ECC to s4
Spectral efficient network and resource selection model in 5G networks
Big Data Technologies - Introduction.pptx
Chapter 3 Spatial Domain Image Processing.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Reach Out and Touch Someone: Haptics and Empathic Computing
NewMind AI Weekly Chronicles - August'25-Week II
Advanced methodologies resolving dimensionality complications for autism neur...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows

日本発のオープンソース・データベース GridDB

  • 1. © 2022 Toshiba Digital Solutions Corporation 東芝デジタルソリューションズ株式会社 GridDBコミュニティ版担当 野々村 克彦 2022.10.28 日本発のオープンソース・データベースGridDB
  • 2. 2 © 2022 Toshiba Digital Solutions Corporation Contents GridDBの概要 GridDBの使い方 OSS活動 まとめ 01 02 03 04
  • 3. 3 © 2022 Toshiba Digital Solutions Corporation 01 GridDBの概要
  • 4. 4 © 2022 Toshiba Digital Solutions Corporation GridDBの概要 ①GridDBとは? ②GridDBはオープンソース? ③オープンソース化の目的 ④特徴 ⑤目指す姿 ⑥ユースケース
  • 5. 5 © 2022 Toshiba Digital Solutions Corporation ①GridDBとは? • 日本発のビッグデータ/IoT向けデータベース ※IoT:モノのインターネット(Internet Of Things)。大量のモノ(センサなど)から得られるデータが インターネットにつながること。 電力系統制御 PV監視制御 BEMS HEMS 上下水道 交通 医療 MEMORY HDD GridDB
  • 6. 6 © 2022 Toshiba Digital Solutions Corporation ②GridDBはオープンソース? GridDB Community Edition GridDB Enterprise Edition GridDB Cloud 高頻度・大量に発生する時系列デー タの蓄積とリアルタイムな活用をスムー ズに実現する次世代の オープンソースデータベース 高頻度・大量に発生する時系列デー タの蓄積とリアルタイムな活用をスムー ズに実現し、ビジネスを大きく成長させ るために 最適化された次世代のデータベース 高頻度・大量に発生する時系列デー タの蓄積とリアルタイムな活用をスムー ズに実現する クラウドデータベースサービス 社会インフラ、製造業を中心に、高い信頼性・可用性 が求められるシステムに適用されている
  • 7. 7 © 2022 Toshiba Digital Solutions Corporation ③GridDB オープンソース化の目的 – ビッグデータ技術の普及促進 • 多くの人に知ってもらいたい、使ってみてもらいたい。 • いろんなニーズをつかみたい。 – 他のオープンソースソフトウェア、システムとの連携強化 • V2.8 (2016年) NoSQL機能をGitHub上にソース公開 https://github.com/griddb/griddb_nosql • V4.5 (2020年) SQL機能もソース公開 https://github.com/griddb/griddb • 最新版 V5.1 (2022年10月25日)
  • 8. 8 © 2022 Toshiba Digital Solutions Corporation ④GridDB CEの特徴 時系列データ指向 開発の俊敏性 と使いやすさ • NoSQL(キーバリュー型)インタフェースだけではなく、 SQLインタフェースを提供(デュアルインタフェース) • (SQLインタフェース)ジョインなど複数テーブルに対するSQL 高い処理能力 • メモリを主、ストレージを従としたハイブリッド型インメモリDB • (SQLインタフェース)SQLにおける分散並列処理 • (NoSQLインタフェース)バッチ処理 MultiPut/MultiGet/MultiQuery 拡張性 • ペタバイト級の大規模データへの対応 • コアスケールへの対応 • データモデルはキー・コンテナ。コンテナ内でのデータ一貫性を保証 • 巨大テーブルに対するインターバル(ハッシュ)パーティショニング • パーティショニング期限解放、分析関数(SQL) ※ チェックポイント、Redoログによる耐障害性への対応
  • 9. 9 © 2022 Toshiba Digital Solutions Corporation NoSQL DB (Key Value Store(KVS))とキー・コンテナモデル キー バリュー 単純値:(例)Redis ドキュメント:(例)MongoDB コンテナ(≒テーブル):GridDB ※索引、検索言語TQL、トランザクションをサポート JSON 123 ハッシュテーブル
  • 10. 10 © 2022 Toshiba Digital Solutions Corporation 内部モジュール構成 ManagementTool Java クライアント JDBC ドライバ NoSQL CLIENT SQL EventEngine Data Processor Login Handler Sync Service Checkpoint Service SQL Processor SQL Compiler SQL Operator SQL Tmp Store Log Manager, WAL Buffer Partition, Chunk Manager Data Stores Checkpoint Files, Log Files GRIDDB NODE System Service Cluster Service
  • 11. 11 © 2022 Toshiba Digital Solutions Corporation SQLサービス Txnサービス (NoSQL) SQLサービス Txnサービス (NoSQL) デュアルインタフェースとテーブルパーティショニング NoSQL層 SQL層 SQLサービス SQLインタフェース (JDBCドライバ) SQL 巨大 テーブル 分割格納 Txnサービス (NoSQL) NoSQLインタフェース (Javaクライアント) partitioned コンテナ 2022/10 2022/11 2022/12 キー・バリュー
  • 12. 12 © 2022 Toshiba Digital Solutions Corporation • データ登録数が多い巨大なテーブルのデータを分散配置することで、プロセッサの並 列実行を可能とし、巨大テーブルのアクセスを高速化するための機能 • ハッシュパーティショニング  選択基準:散らすべきキーにランダム性が高く、キーの間に処理上の関連性が無い場合 • インターバルパーティショニング  選択基準:散らすべきキーの数値的な範囲で散らしたい場合 • インターバルハッシュパーティショニング  選択基準:インターバルパーティショニングでは力不足の場合 -- ハッシュ CREATE TABLE a3 (code INT, ts TIMESTAMP, dest STRING NOT NULL) PARTITION BY HASH(dest) PARTITIONS 10 -- インターバル CREATE TABLE a1 (code INT, ts TIMESTAMP NOT NULL, dest STRING) PARTITION BY RANGE(ts) EVERY(1,DAY) -- インターバルハッシュ CREATE TABLE a4 (code INT NOT NULL, ts TIMESTAMP, dest STRING) PARTITION BY RANGE(ts) EVERY(1,DAY) SUBPARTITION BY HASH(dest) SUBPARTITIONS 2 テーブルパーティショニング
  • 13. 13 © 2022 Toshiba Digital Solutions Corporation ⑤GridDBの目指す姿
  • 14. 14 © 2022 Toshiba Digital Solutions Corporation DB分類 オペレーション用途 分析用途 非リレーショナル リレーショナル Hadoop RDB DWH RDB OLTP KVS
  • 15. 15 © 2022 Toshiba Digital Solutions Corporation IoTシステム (通常)収集から分析まで複数DBのサービスが必要になる Hadoop RDB DWH RDB OLTP 他DB BI 他システム ETL KVS
  • 16. 16 © 2022 Toshiba Digital Solutions Corporation 目指すもの オペレーション用途 分析用途 非リレーショナル リレーショナル RDB DWH RDB OLTP 他DB BI 他システム ETL NoSQL インタフェース SQL インタフェース
  • 17. 17 © 2022 Toshiba Digital Solutions Corporation ⑥ユースケース (A) NoSQLインタフェースによるユースケース
  • 18. 18 © 2022 Toshiba Digital Solutions Corporation date val device3 date val device2 時系列データのスキーマ例(1) date value CREATE TABLE device1 ( date TIMESTAMP, -- 日時 value DOUBLE, -- センサ値); device1 装置ごとに<日時、センサ値>のコンテナ
  • 19. 19 © 2022 Toshiba Digital Solutions Corporation A1.時系列データの管理 GridDB (NoSQLインタフェース) 見える化/分析 • クエリ言語TQL • 集計、サンプリングなど時系列専用関数 • バッチ処理(MultiPut/Get/Query) • 高速なシステムを実現 収集
  • 20. 20 © 2022 Toshiba Digital Solutions Corporation A2.Hadoop(Spark)による分散処理 Hadoop/Spark GridDB (NoSQLインタフェース) 集計/分析 (分散処理) 他DB BI 他システム ETL • Hadoop(Spark)を使って集計・分析を大規模分散処理 ⇒ GridDB(NoSQLインタフェース)の特長を最大限に活かす 収集
  • 21. 21 © 2022 Toshiba Digital Solutions Corporation ⑥ユースケース (B) NoSQL/SQLのデュアルインタフェースによるユースケース
  • 22. 22 © 2022 Toshiba Digital Solutions Corporation date val device3 date val device2 時系列データのスキーマ例(2) date value date id value CREATE TABLE sensorTable ( date TIMESTAMP, -- 日時 id INTEGER, -- 装置ID value DOUBLE, -- センサ値 PRIMARY KEY(date, id) ) PARTITION BY RANGE (date) EVERY (30, DAY); SUBPARTITION BY HASH(id) SUBPARTITIONS 6; -- 分割幅30日、サブパーティション数6の インターバルハッシュパーティショニング CREATE TABLE device1 ( date TIMESTAMP, -- 日時 value DOUBLE, -- センサ値); device1 装置ごとに<日時、センサ値>のコンテナ <日時、装置ID、センサ値>のテーブル+ インターバル(ハッシュ)パーティショニング sensorTable
  • 23. 23 © 2022 Toshiba Digital Solutions Corporation B1.NoSQL/SQLデュアルインタフェースによるシステム化 GridDB NoSQL インタフェース 他DB BI 他システム ETL SQL インタフェース • テーブルパーティショニング • パーティション期限解放 • 分析関数(SQL) • … • NoSQL+SQLによる高速処理 • SQLインタフェースによる他システム連携強化 見える化/集計/分析/AI 収集 • バッチ処理(MultiPut) • …
  • 24. 24 © 2022 Toshiba Digital Solutions Corporation 02 GridDBの利用方法
  • 25. 25 © 2022 Toshiba Digital Solutions Corporation GridDBのインストール&起動の手順 (Ubuntuの例) 【インストール】 1. GridDBサーバのインストール $ wget https://github.com/griddb/griddb/releases/download/v5.0.0/griddb_5.0.0_am64.deb $ sudo dpkg -i griddb_5.0.0_amd64.deb 2. GridDB CLI(コマンドライン・インタフェース)のインストール $ wget https://github.com/griddb/cli/releases/download/v5.0.0/griddb_cli_5.0.0_am64.deb $ sudo dpkg -i griddb-cli_5.0.0_amd64.deb 【起動】 3. GridDBのサービス起動 $ sudo systemctl start gridstore 4. CLI起動 $ sudo su - gsadm $ gs_sh > ※GridDBサービスの停止 $ systemctl stop gridstore
  • 26. 26 © 2022 Toshiba Digital Solutions Corporation GridDBのインストール&起動の手順 (Ubuntuの例) 【インストール】 1. GridDBサーバのインストール $ wget https://github.com/griddb/griddb/releases/download/v5.0.0/griddb_5.0.0_am64.deb $ sudo dpkg -i griddb_5.0.0_amd64.deb 2. GridDB CLI(コマンドライン・インタフェース)のインストール $ wget https://github.com/griddb/cli/releases/download/v5.0.0/griddb_cli_5.0.0_am64.deb $ sudo dpkg -i griddb-cli_5.0.0_amd64.deb 【起動】 3. GridDBのサービス起動 $ sudo systemctl start gridstore 4. CLI起動 $ sudo su - gsadm $ gs_sh > ※GridDBサービスの停止 $ systemctl stop gridstore 設定なし、5つのステップだけで CLIによるSQLなどの操作が開始できる。
  • 27. 27 © 2022 Toshiba Digital Solutions Corporation <動作環境の前提条件> • Windows10マシン上にVirtualBox • ゲストOSはUbuntu 22.04。Java 11(デフォルト)インストール済 • 同一マシンに全ソフトウェアをインストール。ローカル実行 • GridDBのクラスタ名はmyCluster(デフォルト) • GridDB管理者の名前はadmin、パスワードはadmin GridDBサーバ CLI Java クライアント JDBC ドライバ Ubuntuマシン ※GridDBサーバ、Javaクライアント:https://github.com/griddb/griddb ※GridDB JDBCドライバ: https://github.com/griddb/jdbc ※GridDB CLI:https://github.com/griddb/cli
  • 28. 28 © 2022 Toshiba Digital Solutions Corporation 実行例1(SQL基本) # テーブル作成 > create table t1 (c0 long, c1 long); # データ登録 > insert into t1 values(1, 2); # 検索 > select * from t1; > get ※SQL文の先頭が下記文字列のいずれかである場合、コマンド名sqlを省略することができます。 select update insert replace delete create drop alter grant revoke pragma explain
  • 29. 29 © 2022 Toshiba Digital Solutions Corporation date id value 実行例2(テーブルパーティショニング):テーブル作成 id type floor room_no インターバルハッシュパーティション: 分割幅30日、サブパーティション数6 パーティション解放:60日 装置 センサデータ CREATE TABLE sensorTable ( date TIMESTAMP, -- 日時 id INTEGER, -- 装置ID value DOUBLE, -- センサ値 PRIMARY KEY(date, id) ) WITH ( expiration_type='PARTITION', expiration_time=60, expiration_time_unit='DAY' ) PARTITION BY RANGE (date) EVERY (30, DAY); SUBPARTITION BY HASH(id) SUBPARTITIONS 6; CREATE TABLE equipTable ( id INTEGER PRIMARY KEY, -- 装置ID type STRING, -- 装置タイプ floor INTEGER, -- 設置階 room_no INTEGER -- 設置ルームNo );
  • 30. 30 © 2022 Toshiba Digital Solutions Corporation 実行例2(テーブルパーティショニング):データの登録 装置 センサデータ INSERT INTO sensorTable VALUES(TIMESTAMP(‘2021-11-01T10:30:00Z’), 2, 18.5); INSERT INTO sensorTable VALUES(TIMESTAMP('2021-11-01T10:30:00Z'), 3, 20.0); 。。。 INSERT INTO equipTable VALUES(1, 'CAMERA', 1, 1); INSERT INTO equipTable VALUES(2, ‘THERMO', 1, 1); INSERT INTO equipTable VALUES(3, 'THERMO', 4, 3); INSERT INTO equipTable VALUES(4, 'THERMO', 6, 2); INSERT INTO equipTable VALUES(5, 'WATT', 1, 1); INSERT INTO equipTable VALUES(6, 'WATT', 6, 1); id type floor room_no 1 CAMERA 1 1 2 THERMO 1 1 。。。 date id value 2021-11- 01T10:30:00Z 2 18.5 2021-11- 01T10:30:00Z 3 20.0 。。。
  • 31. 31 © 2022 Toshiba Digital Solutions Corporation ご参考: • SQL(テーブルパーティショニング)の例  https://github.com/knonomura/griddb-docker/blob/master/SQLSamples.md  https://github.com/knonomura/griddb-docker/blob/master/SQLSamples2.md • NoSQLインタフェースでバッチ処理等を使いたい場合  https://github.com/griddb/griddb/tree/master/sample/guide/ja のSampleMultiPut.javaなどを参照願います。 • リモートマシンから操作したい場合  https://github.com/griddb/griddb/blob/master/README_ja.md  https://github.com/griddb/griddb/blob/master/docs/TroubleShootingTips_ja.md を参照願います。 • DockerでGridDBを使いたい場合  https://github.com/griddb/griddb-dockerのDockerfile  https://hub.docker.com/u/griddbのDockerイメージ を参照願います。
  • 32. 32 © 2022 Toshiba Digital Solutions Corporation 03 OSS活動
  • 33. 33 © 2022 Toshiba Digital Solutions Corporation 主なOSS活動 ① GridDB本体の機能強化 ② 主要OSSとの連携強化 ③ APIの拡充 ④ GitHub以外のサイトからの情報発信 – パッケージ – デベロッパーズサイト(WP、ブログなど)・・・フィックスターズ社 – SNS・・・フィックスターズ社 ⑤ 主要OSSリポジトリへのコントリビュート ⑥ プラットフォームの拡充 ⑦ その他 – OSCなどカンファレンス参加 – ハンズオン無料セミナー・・・(株)アイ・ティ・イノベーション
  • 34. 34 © 2022 Toshiba Digital Solutions Corporation Javaクライアント JDBCドライバ OSS活動の全体イメージ GridDB V5.1 CE(Community Edition) Cクライアント Hadoop MapReduce コネクタ YCSB コネクタ Spark コネクタ 収集 可視化 分散処理 分析 Webアプリ 性能測定 Kafka コネクタ ②主要OSSとの連携強化 ⑤主要OSSリポジトリへのコントリビュート GitHub AI/機械学習 ①GridDB本体の機能強化 WebAPI Python/Node.JS/Go/PHP/Ruby/Perlクライアント Fluentd/Grafana/Redash プラグイン ③APIの拡充 ④GitHub以外のサイトからの情報発信 PyPI/npm/Maven/Packagist/… … ⑥プラットフォームの拡充 CentOS+ Ubuntu、openSUSE Windows、MacOS Docker https://github.com/griddb/ Kafka コネクタ Rust クライアント GridDB V5.1 CE
  • 35. 35 © 2022 Toshiba Digital Solutions Corporation 最近の主な活動(2022年度) 2022年 • 4月 V5.0CEのソース公開 • 9月 Apache Kafkaコネクタのソース公開 • 10月 Rust言語のクライアントライブラリのソース公開 V5.1CEのソース公開
  • 36. 36 © 2022 Toshiba Digital Solutions Corporation 最近の改良点 <V5.0CE> • 大規模データに対する性能強化  コアスケール対応  スキャン、データ削除高速化  チェックポイント実行時のディスクI/O負荷低減 • 機能強化  SQLによるカラム名変更  GridDBサービス機能  Exp/Impツール <V5.1CE> • 機能強化  クライアント通信経路設定
  • 37. 37 © 2022 Toshiba Digital Solutions Corporation デベロッパーズサイト • アプリケーション開発者向けのサイト • 様々なコンテンツを公開 – ホワイトペーパ – ブログ など https://griddb.net/ griddb net 検索
  • 38. 38 © 2022 Toshiba Digital Solutions Corporation ツイッター twitter griddb 検索 https://twitter.com/griddb_jp • GridDBに関するリリース、イベント、 などをお知らせします。 (日本国内向け)
  • 39. 39 © 2022 Toshiba Digital Solutions Corporation ご参考:GridDBに関する情報 • GridDB GitHubサイト – https://github.com/griddb/griddb/ • GridDB デベロッパーズサイト – https://griddb.net/ • Twitter: GridDB (日本) – https://twitter.com/griddb_jp • Twitter: GridDB Community – https://twitter.com/GridDBCommunity • Facebook: GridDB Community – https://www.facebook.com/griddbcommunity/ • Wiki – https://ja.wikipedia.org/wiki/GridDB • GridDB お問い合わせ – OSS版のプログラミング関連:Stackoverflow(https://ja.stackoverflow.com/search?q=griddb)もしくはGitHub サイトの各リポジトリのIssueをご利用ください プログラミング関連以外:contact@griddb.netもしくはcontact@griddb.orgをご利用ください griddb net 検索 twitter griddb 検索 griddb github 検索
  • 40. 40 © 2022 Toshiba Digital Solutions Corporation 04 まとめ
  • 41. 41 © 2022 Toshiba Digital Solutions Corporation まとめ • GridDBはビッグデータ・IoT向けのデータベースです。 • GridDBの概要と使い方、オープンソース活動についてご紹介しました。 • 今後も様々な拡張、拡充を進めて参ります。 GridDBのオープンソース版(GridDB CE)を是非とも使ってみてください。 https://github.com/griddb/ ※本資料に掲載の製品名、サービス名には、各社の登録商標または商標が含まれています。
  • 43. 43 © 2022 Toshiba Digital Solutions Corporation 付録
  • 44. 44 © 2022 Toshiba Digital Solutions Corporation 各エディションの違い 項目 機能 Community Edition Enterprise Edition Cloud サポート ✓ ✓ プロフェッショナルサービス ✓ ✓ データ管理 時系列コンテナ ✓ ✓ ✓ コレクションコンテナ ✓ ✓ ✓ 索引 ✓ ✓ ✓ アフィニティ ✓ ✓ ✓ テーブルパーティショニング ✓ ✓ ✓ クエリ言語 TQL ✓ ✓ ✓ SQL ✓ ✓ ✓ NoSQLインタフェース Java ✓ ✓ ✓ C言語 ✓ ✓ ✓ NewSQL(SQL) インタフェース JDBC ✓ ✓ ✓ ODBC ✓ ✓ WebAPI ✓ ✓ ✓ 時系列データ 時系列分析関数 ✓ ✓ ✓ 期限付き解放機能 ✓ ✓ ✓ クラスタリング 機能クラスタ構成 ✓ ✓ 分散データ管理 ✓ ✓ レプリケーション ✓ ✓ 運用管理 ローリングアップグレード ✓ オンラインバックアップ ✓ ✓ エクスポート / インポート ✓ ✓ ✓ 運用管理GUI ✓ ✓ CLIツール ✓ ✓ ✓ セキュリティ 信暗号化 (TLS/SSL) ✓ ✓ 認証機能 (LDAP) ✓ オンプレミス環境 オンプレミス環境 ✓ ✓ クラウドサービス クラウドサービス ✓ • インタフェースはほぼ同じ • クラスタ構成の有無の違い
  • 45. 45 © 2022 Toshiba Digital Solutions Corporation CLIの主なコマンド一覧 (1) コマンド 引数 説明 setnode [テキストファイル名] ノード変数を定義します。 setcluster クラスタ変数名 クラスタ名 マルチキャストアドレス ポート番号 [ノード変数... ] クラスタ変数を定義します。 setclustersql クラスタ変数名 クラスタ名 SQLアドレス SQLポート番号 クラスタ構成にSQLの接続先を定義します。 setuser ユーザ名 パスワード [OSユーザgsadmのパスワード] クラスタにアクセスするユーザおよびパスワー ドを定義します。 show [変数名] 変数の定義内容を表示します。 save [スクリプトファイル名] 変数定義をスクリプトファイルに保存します。 load [スクリプトファイル名] スクリプトファイルを読み込み、実行します。 変数定義 コマンド 引数 説明 connect クラスタ変数 [データベース名] GridDBクラスタに接続します。 disconnect GridDBクラスタから切断します。 接続・切断
  • 46. 46 © 2022 Toshiba Digital Solutions Corporation CLIの主なコマンド一覧 (2) コマンド 引数 説明 createcollection コンテナ名 カラム名 タイプ [カラム名 タイプ …] コンテナ(コレクション)を作成します。 dropcontainer コンテナ名 コンテナを削除します。 putrow コンテナ名 値 [値...] コンテナにロウを登録します。 removerow コンテナ名 ロウキー値 [ロウキー値...] コンテナのロウを削除します。 createindex コンテナ名 カラム名 索引タイプ... 指定カラムに索引を作成します。 tql コンテナ名 クエリ ; TQL検索を実行し、検索結果を保持します。 sql SQL文 ; SQL文を実行し、検索結果を保持します。 get [ 取得件数 ] 検索結果を取得し、標準出力に表示します。 tqlexplain コンテナ名 クエリ ; 指定TQL文の実行計画を表示します。 コンテナ操作 ※SQL文の先頭が下記文字列のいずれかである場合、コマンド名sqlを省略することができます。 select update insert replace delete create drop alter grant revoke pragma explain
  • 47. 47 © 2022 Toshiba Digital Solutions Corporation CLIの主なコマンド一覧 (3) コマンド 引数 説明 showcontainer (showtable) [ コンテナ名(テーブル名) ] コンテナ(テーブル)情報を表示します。 searchcontainer [コンテナ名] コンテナ名からコンテナを検索します。 showsql [クエリID] 実行中のSQL処理を表示します。 showevent 実行中のイベント一覧を表示します。 showconnection コネクションの一覧を表示します。 ステイタス・一覧表示 コマンド 引数 説明 getplantxt [テキストファイル名] 実行計画をテキスト形式で表示します。 getplanjson [JSONファイル名] 実行計画をJSON形式で表示します。 実行計画
  • 48. 48 © 2022 Toshiba Digital Solutions Corporation Javaクライアントによるバッチ処理 List<String> containerNameList = new ArrayList<String>(); … final Map<String, List<Row>> rowListMap = new HashMap<String, List<Row>>(); Random rnd = new Random(); for (String containerName : containerNameList) { final List<Row> rowList = new ArrayList<Row>(); ContainerInfo containerInfo; containerInfo = store.getContainerInfo(containerName); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); Date tm1=sf.parse("2015-04-27 19:00:00.000"); for (int j = 0; j < rowCount; j++) { Row row = store.createRow(containerInfo); row.setTimestamp(0,TimestampUtils.add(tm1, j, TimeUnit.MINUTE)); row.setBool(1, false); row.setDouble(2, rnd.nextInt(10000)); rowList.add(row); } rowListMap.put(containerName, rowList); } store.multiPut(rowListMap); ※https://github.com/griddb/griddb/tree/master/sample/guide/ja のSampleMultiPut.javaの抜粋
  • 49. 49 © 2022 Toshiba Digital Solutions Corporation リモートマシンからのアクセスを可能にするには 1. gsadmユーザでログイン $ su – gsadm 2. コンフィグ変更(デフォルトはローカル接続限定の設定になっているため) $ cp /usr/griddb-X.X.X/conf_multicast/* conf/. 3. GridDB管理者(admin)のパスワード設定 $ gs_passwd admin > admin 4. GridDBサーバの起動、(1ノードでの)クラスタ構成 $ gs_startnode $ gs_joincluster –u admin/admin –c myCluster ・Stat確認 $ gs_stat –u admin/admin