GridDB Cloud クイックスタートガイド
1 はじめに
1.1 本書の構成
本書では、初めてGridDB Cloudをお使いの方に製品の概要と簡単な使い方を説明します。 簡単な使い方として、払い出し後に管理コンソール(以下、運用管理GUI)へログインするところから、GridDBへのデータ登録を行う一連の手順を説明します。
各章の内容は次のとおりです。
はじめに
GridDB Cloudについて説明します。稼働状態の確認
運用管理GUIへログインし、GridDBが正常稼働していることを確認する方法について説明します。VNetの接続設定
アプリケーションが配置されるVNetと、GridDBが配置されるVNetを接続する方法について説明します。サンプルプログラムの実行
GridDBには、コンテナ作成やデータ登録するサンプルプログラムが用意されています。サンプルプログラムのビルドおよび実行方法の例を紹介します。登録データの確認
サンプルプログラムから登録されたデータをSQLで確認する方法について説明します。
1.2 GridDB Cloudとは
GridDB Cloudは、GridDBをクラウドサービスとして提供するサービスです。
GridDBは、ビッグデータやIoTシステムをターゲットにしたスケールアウト型時系列データベースです。
GridDB Cloudでは、GridDBを単体で利用するのに比べ、下記のような利点があります。
- サーバやストレージなど初期導入の時間の短縮
- 運用の手間の削減
- データや処理量が増えた時のリソース増強対応の簡易化
- クラウドネイティブなアプリとの連携の容易化
GridDBの詳細は、『GridDB 機能リファレンス』(GridDB_FeaturesReference.html)を参照してください。
1.3 用語の説明
本書で用いられる用語の説明です。
用語 | 意味 |
---|---|
運用管理GUI | GridDB Cloudを管理するWebアプリケーションです。 |
クラスタ | 一体となってデータ管理を行う、1つ、もしくは複数のノードの集合を指します。 |
ノード | GridDBでデータ管理を行うひとつのサーバプロセスを指します。 |
コンテナ | ロウの集合を管理する入れ物です。コレクションと時系列コンテナの2種類が存在します。 |
コレクション | 一般の型のキーを持つロウを管理するコンテナの一種です。 |
時系列コンテナ | 時刻型のキーを持つロウを管理するコンテナの1種です。時系列データを扱う専用の機能を持ちます。 |
ロウ | GridDBで管理する1件分のデータを指します。キーと複数の値からなるひとまとまりのデータです。 |
2 稼働状態の確認
まずは運用管理GUIにログインし、稼働状態を確認します。払い出されたログインURLにアクセスし、ログインIDとパスワードを入力してください。
ログインに成功すると、下記のページが表示されます。
このページでは、クラスタの稼働状態を確認することができます。
ページ左上にクラスタ名(この例では「gs_clustertstmed001」)が書いてあり、その横に稼働状態が書いてあります。この例では「SERVICE STABLE」となっており、これはクラスタが正常に稼働していることを表します。稼働状態の一例を下記に示します。
- SERVICE_UNSTABLE
- クラスタを構成する一部のノードが停止しているが、サービスは継続できる状態
- STOP
- すべてのノードが停止し、サービスが継続できない状態
稼働状態は上例以外にも存在します。詳細は『GridDB 機能リファレンス』(GridDB_FeaturesReference.html)を参照してください。
3 VNetの接続設定
ここでは、アプリケーションからデータをGridDBに登録するのに必要となる接続設定について説明します。
GridDB Cloudでは、VNet同士をVNetピアリングを使って接続します。これは広帯域かつプライベートで安全な通信を行うことができるのが特徴のAzureの機能です。VNetピアリング確立後は、プライベートIPアドレスを指定して通信することが可能になります。VNetピアリングの利用料金など詳細な仕様については、Microsoftの公式ドキュメントを参照してください。
VNetピアリングを確立するためには、まず運用管理GUIにログインします。次に、左のナビゲーションメニューより「Peering Connection」を選択します。その後、「CREATE PEERING CONNECTION」ボタンを押します。
クラウドプロバイダを選ぶダイアログが表示されます。何も変更せず、「NEXT」ボタンを押してください。
VNet Settingsの画面が表示されます。ここではアプリケーションが配置されているVNetの情報を入力します。具体的には下記の情報を入力します。取得方法がわからない場合は、Show Instructionsをクリックして、取得方法のヒントを表示してください。
- サブスクリプションID
- テナントID
- リソースグループ名
- VNet名
すべて入力が終わったら、「NEXT」ボタンを押してください。
次に、VNetピアリングを確立するためのコマンドを実行します。Azure Cloud ShellやAzure CLIを使い、表示されたコマンドを順に実行してください。なお、一部のコマンドにはAzureでの実行権限が必要です。詳しくはコマンド上に表示されるツールチップを参照ください。
コマンドの実行が完了したら、「VALIDATE」ボタンを押して接続状態を確認してください。接続が確認できたら、「CREATE PEERING」ボタンを押して、VNet Peeringを確立します。
VNet Peeringの一覧に戻り、「Status」がConnectedとなっていればVNetピアリング確立成功です。以降はGridDBのプライベートIPアドレスを使った通信が可能です。
なお、GridDBとアプリケーションのネットワークアドレスが競合する場合はVNetピアリングを確立することができません。その場合は、アプリケーションのネットワークアドレスを変更してください。
4 サンプルプログラムの実行
ここでは、アプリケーションからGridDBにデータを登録する方法について説明します。データの登録には、前章で説明しているVNetピアリングの確立に成功していることが必要です。ピアリング未確立の場合は本章の内容を実行する前に確立してください。
4.1 サンプルプログラム作成
まず、C言語用のクライアントAPIとサンプルプログラムを下記より取得します。
https://github.com/griddb/c_client
次に、README_ja.mdに沿ってCクライアントのビルドを行います。
https://github.com/griddb/c_client/blob/master/README_ja.md
次にサンプルプログラムを作成します。下記をコピーし、sample1.cというファイル名でc_clientのルートディレクトリに保存してください。
#include "gridstore.h"
#include <stdlib.h>
#include <stdio.h>
typedef struct {
GSTimestamp timestamp;
GSBool active;
double voltage;
} Point;
GS_STRUCT_BINDING(Point,
GS_STRUCT_BINDING_KEY(timestamp, GS_TYPE_TIMESTAMP)
GS_STRUCT_BINDING_ELEMENT(active, GS_TYPE_BOOL)
GS_STRUCT_BINDING_ELEMENT(voltage, GS_TYPE_DOUBLE));
// Storage and extraction of a specific range of time-series data
int sample(const char * addr, const char *clusterName,
const char *user, const char *password) {
GSGridStore *store;
GSTimeSeries *ts;
Point point;
GSTimestamp now;
GSTimestamp before;
GSQuery *query;
GSRowSet *rs;
GSResult ret = !GS_RESULT_OK;
const GSPropertyEntry props[] = {
{ "notificationProvider", addr },
{ "clusterName", clusterName },
{ "user", user },
{ "password", password } };
const size_t propCount = sizeof(props) / sizeof(*props);
// Acquiring a GridStore instance
gsGetGridStore(gsGetDefaultFactory(), props, propCount, &store);
// Creating a TimeSeries (Only obtain the specified TimeSeries if it already exists)
gsPutTimeSeries(store, "point01",
GS_GET_STRUCT_BINDING(Point), NULL, GS_FALSE, &ts);
// Preparing time-series element data
point.active = GS_FALSE;
point.voltage = 100;
// Store the time-series element (GridStore sets its timestamp)
gsAppendTimeSeriesRow(ts, &point, NULL);
// Extract the specified range of time-series elements: last six hours
now = gsCurrentTime();
before = gsAddTime(now, -6, GS_TIME_UNIT_HOUR);
gsQueryByTimeSeriesRange(ts, before, now, &query);
ret = gsFetch(query, GS_FALSE, &rs);
while (gsHasNextRow(rs)) {
GSChar timeStr[GS_TIME_STRING_SIZE_MAX];
ret = gsGetNextRow(rs, &point);
if (!GS_SUCCEEDED(ret)) break;
gsFormatTime(point.timestamp, timeStr, sizeof(timeStr));
printf("Time=%s", timeStr);
printf(" Active=%s", point.active ? "true" : "false");
printf(" Voltage=%.1lf\n", point.voltage);
}
// Releasing resource
gsCloseGridStore(&store, GS_TRUE);
return (GS_SUCCEEDED(ret) ? EXIT_SUCCESS : EXIT_FAILURE);
}
void main(int argc,char *argv[]){ sample(argv[1],argv[2],argv[3],argv[4]);}
このサンプルプログラムは引数で接続情報を受け取り、下記の処理を行います。
接続パラメータの設定
接続用インスタンスの作成
接続し、コンテナ(コンテナ名:point01)を作成
TIMESTAMP, BOOL, DOUBLEの3カラムで構成
ロウを登録
(現在時刻, false, 100.0)を登録
登録したロウの確認
次に、c_clientのルートディレクトリでサンプルプログラムをコンパイルし、ライブラリのパスを通します。下記はCentOSの例です。
gcc -I./client/c/include -L./bin sample1.c -lgridstore
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./bin
実行する前に、接続情報の確認と、データベースユーザの作成を行います。
4.2 接続情報の確認
まずは接続情報の確認をします。「Clusters」画面に遷移し、下記の情報をメモしてください。
- Cluster Detailsの右下のNotification Provider URL
- 画面左上のクラスタ名
- 下記の例ではgs_clustertstmed001
4.3 データベースユーザ作成
次にデータベースユーザを作成します。「Security」画面に遷移し、「CREATE DATABASE USER」ボタンを押してください。
ユーザ名とパスワードを下記のように設定し、「CREATE」ボタンを押してください。
- User Name
- test_user1
- Password
- test_user1
4.4 サンプルプログラム実行
前節までに確認した接続情報とデータベースユーザを引数として渡し、サンプルプログラムを実行します。
./a.out <Notification Provider URL> <クラスタ名> test_user1 test_user1
下記のような登録結果が表示されれば成功です。
Time=2021-03-31T07:52:58.770Z Active=false Voltage=100.0
サンプルプログラムの実行について以上です。GridDBのプログラミング方法について詳しく知りたい場合は、下記を参照してください。
- 『GridDB プログラミングガイド』(GridDB_ProgrammingGuide.html)
- 『GridDB Java APIリファレンス』(GridDB_Java_API_Reference.html)
- 『GridDB C APIリファレンス』(GridDB_C_API_Reference.html)
4.5 注意事項
GridDBの接続方式は下記の3種類があります。
- マルチキャスト方式
- 固定リスト方式
- プロバイダ方式
GridDB Cloudでは、サンプルプログラムで指定したプロバイダ方式のみが有効です。他の方式は利用できませんのでご注意ください。
方式の詳細は『GridDB 機能リファレンス』(GridDB_FeaturesReference.html)を参照してください。
5 登録データの確認
ここでは、登録したデータをSQLで確認する方法について説明します。前章のサンプルプログラムによる登録データを確認するため、登録済みでない場合は登録をお願いします。
まず、「Query」画面を開きます。右側にサンプルプログラムで作成したコンテナ「point01」があることを確認します。
次に、point01のデータをすべて取得する下記のSQL文を入力し、実行ボタンを押します。
SELECT * FROM point01
実行結果が下記のように表示されていれば成功です。