GridDB 運用ツールリファレンス

Revision: 4.3.2-9

1 はじめに

1.1 本書の目的と構成

本書はGridDBの提供する運用ツールついて説明したものです。

本書は、GridDBを用いたシステム構築を行う設計者、GridDBの運用管理を行う管理者の方を対象としています。

各章は次の内容です。

2 サービス

2.1 サービスを利用するには

サービスのインストールと設定の手順は、以下のとおりです。

  1. GridDBサーバパッケージ、クライアントパッケージのインストール
  2. クラスタを構成するすべてのノードの設定
  3. 起動設定ファイルの設定

GridDBのインストール、ノードを設定する手順に関しては、『GridDB データベース管理者ガイド』(GridDB_AdministratorsGuide.html)を参照ください。

サービスで用いるファイルの種類です。

種類 意味
サービススクリプト OS起動時に自動的に実行されるスクリプトファイル。
GridDBのサーバパッケージにより、/etc/init.d/gridstoreにインストールされ、GridDBサービスとしてシステムに登録される。
PIDファイル gsserverプロセスのプロセスID(PID)のみを記載したファイル。gsserverプロセス起動時に、$GS_HOME/conf/gridstore.pidに作成される。
起動設定ファイル サービスの中で設定可能な変数を記載するファイル。
GridDBのサーバパッケージにより、/etc/sysconfig/gridstore/gridstore.confにインストールされる。

2.2 パラメータ設定

GridDBのサービスの動作を制御するパラメータを用意しています。パラメータの一覧は以下のとおりです。

パラメータ デフォルト 説明
GS_USER admin GridDBのユーザ名
GS_PASSWORD admin GS_USER のパスワード
CLUSTER_NAME INPUT_YOUR_CLUSTER_NAME_HERE 参加するクラスタ名
MIN_NODE_NUM 1 参加するクラスタの構成ノード数

パラメータを変更するには起動設定ファイル( /etc/sysconfig/gridstore/gridstore.conf )を編集します。

サーバパッケージのアップデートインストールやアンインストールのとき、起動設定ファイルは上書き・アンインストールされません。

【注意】

2.3 ログ

サービスのログに関しては、ブートログ( /var/log/boot.log )や運用コマンドのログ( $GS_HOME/log )を参照してください。

2.4 コマンド

GridDBのサービスのコマンドを以下に説明します。

【注意】

2.4.1 start

動作:

# service gridstore start

【注意】

2.4.2 stop

動作:

# service gridstore stop

【注意】

2.4.3 status

動作:

# service gridstore status

2.4.4 restart

動作:

2.4.5 condrestart

動作:

2.5 エラーメッセージ一覧

サービスのエラーメッセージは以下のとおりです。

コード メッセージ 意味
F00003 Json load error 定義ファイルの読込みに失敗しました。
F01001 Stop service timed out ノード停止処理がタイムアウトしました。
F01002 Startnode error ノード起動処理でエラーが発生しました。
F01003 Startnode timed out ノード起動処理がタイムアウトしました。
F01004 Joincluster error クラスタ参加処理でエラーが発生しました。
F01005 Joincluster timed out クラスタ参加処理がタイムアウトしました。
F01006 Leavecluster error クラスタ離脱処理でエラーが発生しました。
F02001 Command execution error コマンド実行でエラーが発生しました。
F02002 Command execution timed out コマンド実行がタイムアウトしました。

【メモ】

3 運用コマンド

3.1 コマンド一覧

GridDBでは、以下のコマンドを提供します。

種類 機能 コマンド 格納RPMパッケージ
(1) ノードの起動/停止 ノードの起動 gs_startnode server
ノードの停止 gs_stopnode client
(2) ユーザ管理 管理ユーザの登録 gs_adduser server
管理ユーザの削除 gs_deluser server
管理ユーザのパスワードの変更 gs_passwd server
(3) クラスタ管理 クラスタ構成への参加 gs_joincluster client
クラスタ構成からの離脱 gs_leavecluster client
クラスタの全停止 gs_stopcluster client
クラスタ構成情報取得 gs_config client
クラスタ情報取得 gs_stat client
クラスタへのノード増設 gs_appendcluster client
クラスタの手動フェイルオーバー gs_failovercluster client
パーティション情報取得 gs_partition client
クラスタ構成ノード数の拡張 gs_increasecluster client
クラスタの自律的データ配置の設定 gs_loadbalance client
クラスタのデータ配置目標の設定 gs_goalconf client
チェックポイント処理の制御 gs_checkpoint server
(4) ログ情報 ログの表示 gs_logs client
イベントログ出力レベルの表示と変更 gs_logconf client
(5) バックアップ/リストア バックアップの実行 gs_backup server
バックアップデータの確認 gs_backuplist server
バックアップデータのリストア gs_restore server
(6) インポート/エクスポート インポート gs_import client
エクスポート gs_export client
(7) 保守 パラメータ表示と変更 gs_paramconf client

【メモ】

 

3.2 GridDBコマンド共通

【コマンドオプション】

以下のオプションは、すべてのコマンドで共通して使えるオプションです。

オプション 説明
-h|--help コマンドのヘルプを表示します。
--version 運用コマンドのバージョンを表示します。

【例】

以下のオプションは、一部のコマンドで共通して使えるオプションです。

オプション 説明
-s サーバ[:ポート番号]|-p ポート番号 操作したいノードのサーバ名(アドレス)とポート番号
(運用コマンドの接続ポート番号)を指定します。
デフォルトは、"localhost(127.0.0.1):10040"です。
-u ユーザ名/パスワード 認証ユーザとパスワードを指定します。
-w|--wait [秒数] 処理完了の待合わせを行います。
秒数指定が無い場合または秒数が0の場合は時間制限無しとなります。
-a|--address-type アドレス種別 表示するアドレス、ポートのサービス種別を指定します
system : 運用コマンドの接続アドレス
cluster : クラスタ管理のために使用する受信アドレス
transaction : トランザクション処理の受付アドレス
sync : 同期処理のために使用する受信アドレス
--no-proxy プロキシを使わずに接続します。

【メモ】

【終了ステータス】

以下は、コマンドの終了ステータスです。

【ログファイル】

コマンドのログファイルは、${GS_LOG}/コマンド名.logに保存されます。

【例】 GS_LOGの値が"/var/lib/gridstore/log(デフォルト)"の場合、"gs_startnode"コマンドを実行すると以下のログファイルが作成されます。

3.3 利用上の注意

【運用コマンドを利用する前に】

【クラスタを構成するには】

クラスタは、1台以上のノードから成り、1台のマスタとその他のフォロワと呼ばれるノードの集合から構成されます。

クラスタ構成では、有効ノード数と構成ノード数が重要になります。有効ノード数は、クラスタを構成している実際のノード数です。構成ノード数は、クラスタに参加できるノード数で、gs_joinclusterコマンドで指定します。

有効ノード数と構成ノード数はマスタノードに対してgs_statコマンドを実行することで確認でき、それぞれ/cluster/activeCountと/cluster/designatedCountの値となります。

参考までに、以下にクラスタ構成を作成/変更するための主な手順を示します。 各コマンドの詳細については以降の節を参照ください。

3.4 ノードの起動/停止

3.4.1 ノードの起動

ノードを実行するマシン上でGridDBノード起動コマンドを実行します。このコマンドはGridDBノード毎に実行する必要があります。

【メモ】

 

3.4.2 ノードの停止

GridDBノードを停止します。ノードを停止するためには、まず、GridDBクラスタ管理処理を停止させる必要があります。

【メモ】

 

3.5 ユーザ管理

GridDBの管理ユーザの登録/削除/パスワード変更を行います。

インストール直後、下記のデフォルトユーザが存在します。

【注意】

 

3.5.1 管理ユーザの登録

【メモ】

【例】

 

3.5.2 管理ユーザの削除

【メモ】

【例】

 

3.5.3 パスワード変更

【メモ】

【例】

 

3.6 クラスタ管理

3.6.1 クラスタ構成への参加

GridDBクラスタにノードを参加させてクラスタを構成します。

【メモ】

【例】ノードA~C 3台でクラスタ名「example_three_nodes_cluster」のクラスタを構成する。

3.6.2 クラスタ構成からの離脱

ノードをクラスタから離脱させます。  

【メモ】

【例】

 

3.6.3 クラスタの全停止

クラスタを停止します。  

【メモ】

【例】

 

3.6.4 クラスタ構成情報取得

クラスタ構成情報(クラスタに参加しているノードの一覧情報)を取得します。  

【メモ】

【例】

 

3.6.5 クラスタ情報取得

クラスタ情報(クラスタ構成情報および内部情報)、または、バックアップ進捗状況を取得します。

【メモ】

【例】

 

3.6.6 クラスタへのノード増設

稼働中のクラスタに新たにノードを増設します(追加します)。  

【メモ】

【例】

 

3.6.7 クラスタの手動フェイルオーバー

GridDBクラスタのフェイルオーバーを実行します。

【メモ】

【例】

 

3.6.8 パーティション情報取得

GridDBノードのパーティション情報を表示します。

【メモ】

【例】

 

3.6.9 クラスタ構成ノード数の拡張

GridDBクラスタの構成ノード数を拡張します。

【メモ】

【例】

3.6.10 クラスタの自律的データ配置の設定

GridDBクラスタの自律的データ配置機能の有効無効の設定、および、設定の表示を行います。 ローリングアップデートを行う際など、計画的にノードを停止して再びクラスタに戻す場合には、一時的に自律的データ配置機能を無効に設定しておくと、不要なデータ再配置が行われずに負荷を軽減することができます。

【メモ】

【例】

クラスタを構成する全ノードの自律的データ配置の設定を確認
$ gs_loadbalance -s 192.168.33.29:10040  -u admin/admin --cluster
192.168.33.29 ACTIVE
192.168.33.30 ACTIVE
192.168.33.31 ACTIVE

"192.168.33.31"のノードを無効に設定
$ gs_loadbalance -s 192.168.33.31:10040  -u admin/admin --off

 

3.6.11 クラスタのデータ配置目標の設定

GridDBクラスタのデータ配置目標の自動設定の有効無効の設定、および、現在のデータ配置目標の表示や手動設定を行います。ローリングアップグレードの際に、安全にノードを離脱させるために使用します。

【例】

クラスタを構成する全ノードのデータ配置目標の自動設定を確認
$ gs_goalconf -s 192.168.33.29:10040  -u admin/admin --cluster
192.168.33.29 ACTIVE
192.168.33.30 ACTIVE
192.168.33.31 ACTIVE

"192.168.33.31"のノードを無効に設定
$ gs_goalconf -s 192.168.33.31:10040  -u admin/admin --off

クラスタの全ノードに対して、"192.168.33.31"のノードを離脱対象とするための配置目標を設定
$ gs_goalconf -u admin/admin --manual --leaveNode 192.168.33.31 --cluster
Switching 43 owners to backup on 192.168.33.31:10040 ...
Setting goal requests have been sent. Sync operations will be started when loadbalancer is active.

 

3.6.12 チェックポイント処理の制御

GridDBの定期チェックポイント機能の有効無効の設定および表示、手動チェックポイント処理の実行を行います。

【メモ】

【例】

定期チェックポイントを無効にします。
$ gs_checkpoint -u admin/admin --off

手動チェックポイント処理を実行します。
$ gs_checkpoint -u admin/admin --manual -w
...
The manual checkpoint has been completed.

定期チェックポイントを有効にします。
$ gs_checkpoint -u admin/admin --on

 

3.7 ログ情報

3.7.1 ログの表示

直近のGridDBのイベントログを取得します。  

【メモ】

【例】

 

3.7.2 イベントログ出力レベル表示と変更

イベントログ出力レベルの表示または変更します。引数指定なしの場合は設定一覧を取得します。  

【メモ】

【例】

 

3.8 バックアップ/リストア

3.8.1 バックアップ

サービスを継続しながら、GridDBのバックアップをノード単位で取得します。

クラスタを構成する全ノードに対して順次行うことで、サービスを継続しながら、クラスタ全体としてのバックアップが行えます。

<modeオプション>

バックアップ
バックアップ

【メモ】

【例】

3.8.2 バックアップデータ確認

ノード定義ファイル(gs_node.json)で設定されているバックアップディレクトリにあるバックアップデータの一覧を取得します。  

【メモ】

【例】

 

3.8.3 リストア

GridDBのバックアップファイルをリストアします。

【メモ】

【例】

【例】

3.9 保守

3.9.1 パラメータ表示と変更

ノードのパラメータの表示または変更を行います。

【メモ】

【例】

 

4 クラスタ運用管理コマンド・インタプリタ(gs_sh)

4.1 概要

クラスタ運用管理コマンド・インタプリタ(以降gs_shと記載します)は、GridDBクラスタの運用管理、およびデータ操作を提供するコマンドラインインターフェースツールです。

gs_shにより次のことができます。

4.2 gs_shを利用するには

4.2.1 事前準備

gs_shを利用するには、あらかじめ以下を実施ください。

4.2.2 gs_sh起動

gs_shには2種類の起動モードがあります。

【メモ】

 

4.3 GridDBクラスタの定義

GridDBクラスタの運用管理やデータ操作を実行するにあたり、事前に以下の定義が必要です。

ノード変数、クラスタ変数、ユーザ情報の定義方法について、以下に説明します。また、任意の変数定義、変数定義内容の表示、変数定義内容のスクリプトファイルへの保存および読み込み方法についても説明します。

 

4.3.1 ノード変数の定義

GridDBノードのIPアドレスとポート番号を、ノード変数に定義します。

【メモ】

  

4.3.2 クラスタ変数の定義

GridDBクラスタの構成を、クラスタ変数に定義します。

【メモ】

 

また、定義したクラスタ変数に対して、ノード変数の追加、削除を行うことができます。

【メモ】

 

4.3.3 クラスタのSQL接続先を定義

GridDBクラスタ構成にSQLの接続先を定義します。 GridDB NewSQLインターフェースを使用する場合のみ設定します。

【メモ】

 

4.3.4 ユーザの定義

GridDBクラスタにアクセスするユーザおよびパスワードを定義します。

【メモ】

  

4.3.5 任意の変数の定義

任意の変数を定義します。

【メモ】

 

4.3.6 変数定義の表示

指定した変数の定義内容を表示します。

【メモ】

 

4.3.7 変数定義のスクリプトファイル保存

変数に定義した内容をスクリプトファイルに保存します。

【メモ】

 

4.3.8 スクリプトファイルの実行

スクリプトファイルを読み込み、記載された処理を実行します。

【メモ】

4.4 GridDBクラスタの運用管理操作

GridDBクラスタの運用を管理するための機能として、管理ユーザのみ、以下の操作を実行できます。

4.4.1 ステータス

本節では、GridDBノードとGridDBクラスタのステータスについて説明します。

クラスタは、1台以上のノードから構成されます。ノードは、起動・停止などのノード自身の状態をステータスとして持ちます。クラスタは、クライアントからのデータ操作の受付可否の状態を表すステータスを持ちます。クラスタステータスは、クラスタを構成するノード群のステータスに応じて決まります。

以下は、gs_shのサブコマンド操作による、ノードステータスとクラスタステータスの遷移の例です。クラスタはノード4台で構成されています。クラスタを構成するノードを起動(startnode)すると、ノードステータスが「起動」になります。ノードを起動したうえでクラスタを開始(startcluster)すると、各ノードステータスがクラスタへの「参加」に変わり、さらに、クラスタステータスが「稼働」になります。

ステータス例
ステータス例

以下、ノードステータスとクラスタステータスについての詳細を説明します。

ノードステータス

ノードの起動・停止・参加・離脱の操作により、ノードのステータスが「停止」「起動」「参加」に遷移します。ノードがクラスタに参加した場合には、参加したクラスタのステータスに応じて2種類の状態があります。

ノードステータス
ノードステータス
ステータス ステータス名 説明
参加 SERVICING ノードはクラスタに参加済みで、参加しているクラスタのステータスが「稼働」
WAIT ノードはクラスタに参加済みで、参加しているクラスタのステータスが「中断」
起動 STARTED ノードは起動済みで、クラスタには参加していない
STARTING ノード起動中
停止 STOP ノード停止
STOPPING ノード停止処理中

 

クラスタステータス

GridDBクラスタの稼働開始・稼働停止、または、GridDBノードの参加・離脱の操作により、GridDBクラスタの状態が、「停止」、「中断」、「稼働」のステータスに遷移します。 GridDBクラスタのステータスが「稼働」の場合のみ、クライアントからのデータ操作を受け付けることが可能です。

クラスタステータス
クラスタステータス
ステータス ステータス名 説明
稼働 SERVICE_STABLE クラスタ構成に定義されているすべてのノードがクラスタに参加している
SERVICE_UNSTABLE クラスタ構成に定義されているノードの半数超がクラスタに参加している
中断 WAIT クラスタ構成に定義されているノードの半数以上がクラスタから離脱している
INIT_WAIT クラスタ構成に定義されているノードの1台以上がクラスタから離脱している(初めてクラスタを稼働するときは、すべてのノードがクラスタに参加しなければ「稼働」状態にならない)
停止 STOP クラスタ構成に定義されているすべてのノードがクラスタから離脱している

GridDBクラスタを構成する全ノードをクラスタへ参加させることで、GridDBクラスタのステータスが「停止」から「稼働」へ遷移します。また、半数以上のノード離脱でGridDBクラスタは「中断」、全ノード離脱でGridDBクラスタは「停止」します。

クラスタステータスを遷移させる参加・離脱の操作については、クラスタ構成の全ノードに対して行われる操作と、1台のノードに行われる操作の2種類があります。

操作 操作対象が全ノードの場合 操作対象がノード1台の場合
参加 startcluster 未参加の稼働ノード群を一括参加 joincluster 未参加の稼働ノードを参加
離脱 stopcluster 参加中のノード群を一括離脱 leavecluster 参加中のノードを離脱

【メモ】

各操作方法について、以下に説明します。

4.4.2 ノードの起動

指定ノードを起動します。

【メモ】

4.4.3 ノードの停止

指定ノードを停止します。

また、指定ノードを強制停止することもできます。

【メモ】

4.4.4 クラスタへノード一括参加

指定クラスタを稼働状態にするため、クラスタ未参加の稼働ノード群を一括参加させます。

【メモ】

4.4.5 クラスタからノード一括離脱

GridDBクラスタを停止するために、GridDBクラスタ参加中のノード群を一括離脱させます。

【メモ】

4.4.6 クラスタへノード参加

leaveclusterサブコマンドや障害などによってGridDBクラスタから一旦離脱したノードを、GridDBクラスタに再度参加させます。

【メモ】

4.4.7 クラスタからノード離脱

指定ノードを稼働中のGridDBクラスタから離脱させます。また、指定ノードを稼働中のGridDBクラスタから強制離脱させることもできます。

【メモ】

 

4.4.8 クラスタへノード増設

クラスタ変数に定義していないノードを、稼働中のGridDBクラスタに参加させます。

【メモ】

4.4.9 クラスタステータス情報の表示

稼働中のGridDBクラスタのステータス、クラスタを構成する各ノードのステータスを表示します。

【メモ】

 

4.4.10 構成情報の表示

GridDBクラスタの構成情報を表示します。

【メモ】

 

4.4.11 ステータス表示

指定ノードの状態および統計情報を表示します。

【メモ】

 

4.4.12 ログ表示

指定ノードのログを表示します。

 

また、ログの出力レベルの表示、および変更ができます。

【メモ】

 

4.4.13 実行中SQL処理の表示

実行中のSQL処理を表示します。この機能はGridDB Advanced Editionでのみ実行できます。

【メモ】

  

4.4.14 実行中イベントの表示

接続先クラスタの各ノード内のスレッドが実行中のイベント一覧を表示します。

【メモ】

 

4.4.15 コネクションの表示

コネクションの一覧を表示します。

【メモ】

 

4.4.16 SQLキャンセル

この機能はGridDB Advanced Editionでのみ実行できます。

実行中のSQL処理をキャンセルします。

【メモ】

 

4.5 データベース内のデータ操作

データ操作を実行するには、操作対象のクラスタに接続する必要があります。接続時に設定したデータベース(データベース名省略時は「public」)のデータが操作対象になります。

4.5.1 クラスタへ接続

データ操作を実行するGridDBクラスタに接続します。

【メモ】

 

4.5.2 検索 (TQL)

検索を実行し、検索結果を保持します。

【メモ】

 

4.5.3 SQL文実行

SQL文を実行し、検索結果を保持します。 この機能はGridDB Advanced Editionでのみ実行できます。

 

SQL文の先頭が下記文字列のいずれかである場合、サブコマンド名sqlを省略することができます。

【メモ】

 

4.5.4 検索結果の取得

保持する検索結果から、指定件数を取得します。結果の出力方法には以下の3種類があります。

(A) 取得した結果を標準出力に表示します。

(B) 取得した結果をCSV形式でファイルに保存します。

(C) 取得した結果を出力しません。

例)

//検索を実行
gs[public]> tql c001 select *;
5 件ヒットしました。

//1件目を取得して表示
gs[public]> get 1
name,status,count
mie,true,2
1 件の取得が完了しました。

//2~3件目を取得してファイルに保存
gs[public]> getcsv /var/lib/gridstore/test2.csv 2
2 件の取得が完了しました。

//4件目を取得
gs[public]> getnoprint 1
1 件の取得が完了しました。

//5件目を取得して表示
gs[public]> get 1
name,status,count
akita,true,45
1 件の取得が完了しました。

【メモ】

 

4.5.5 実行計画の取得

指定TQL文の実行計画を表示します。検索は実行しません。

また、指定TQL文を実際に実行して、実行計画とともに処理行数等の実測値を表示することもできます。

【メモ】

 

4.5.6 検索結果の破棄

tqlをクローズして、保持する検索結果を破棄します。

クエリをクローズして、保持する検索結果を破棄します。

例)

//検索結果を破棄
gs[public]> tqlclose

gs[public]> queryclose

【メモ】

 

4.5.7 クラスタから切断

GridDBクラスタから切断します。

【メモ】

 

4.5.8 件数取得の設定

SQLの検索実行時、件数取得処理を実行するかどうかを設定します。

【メモ】

 

4.6 データベース管理

データベース管理を実行するサブコマンドについて説明します。 データベース管理は、操作対象のクラスタに接続してから実行してください。(サブコマンド connect)

4.6.1 データベース作成

指定された名前のデータベースを作成します。

【メモ】

 

4.6.2 データベース削除

指定された名前のデータベースを削除します。

【メモ】

 

4.6.3 カレントデータベースの表示

現在のカレントデータベース名を表示します。

 

4.6.4 データベース一覧

データベース一覧およびアクセス権情報を表示します。

【メモ】

 

4.6.5 アクセス権の付与

データベースへのアクセス権を付与します。

【メモ】

4.6.6 アクセス権の剥奪

データベースへのアクセス権を剥奪します。

【メモ】

4.7 ユーザ管理

ユーザ管理を実行するサブコマンドについて説明します。 ユーザ管理は、操作対象のクラスタに接続してから実行してください(サブコマンド connect)。

4.7.1 一般ユーザ作成

指定された名前の一般ユーザを作成します。

【メモ】

 

4.7.2 一般ユーザ削除

指定された名前のユーザを削除します。

【メモ】

 

4.7.3 パスワード変更

パスワードを変更します。

【メモ】

 

4.7.4 一般ユーザ一覧

ユーザ情報を表示します。

【メモ】

 

4.8 コンテナ管理

コンテナへの操作を実行するサブコマンドについて説明します。 コンテナ管理は、操作対象のクラスタに接続してから実行してください(サブコマンド connect)。 接続先のデータベース上のコンテナが操作対象になります。

4.8.1 コンテナ作成

コンテナを作成します。

 

簡易版

コンテナ名とカラム情報(カラム名とタイプ)を指定してコンテナを作成します。コンテナタイプが時系列コンテナの場合のみ、圧縮タイプの指定も可能です。

詳細版

コンテナ定義情報をjsonファイルで指定してコンテナを作成します。

 

4.8.2 コンテナ削除

コンテナを削除します。

【メモ】

 

4.8.3 コンテナの表示

コンテナ情報を表示します。

【メモ】

 

4.8.4 テーブルの表示

テーブル情報を表示します。showcontainerとの互換コマンドです。

 

4.8.5 索引の作成

指定したコンテナのカラムに索引を作成します。

【メモ】

 

4.8.6 複合索引の作成

指定したコンテナのカラムに複合索引を作成します。

【メモ】

 

4.8.7 索引の削除

指定したコンテナのカラムの索引を削除します。

【メモ】

 

4.8.8 複合索引の削除

指定したコンテナのカラムの複合索引を削除します。

【メモ】

 

4.8.9 トリガの削除

指定したコンテナのトリガを削除します。

 

4.8.10 トリガの表示

指定したコンテナのトリガ情報を表示します。

【メモ】

 

4.9 実行計画

SQL実行計画を表示するサブコマンドについて説明します。

4.9.1 SQL分析結果(グローバルプラン)の取得

SQL分析結果(グローバルプラン)をテキスト形式またはJSON形式で表示します。この機能はGridDB Advanced Editionでのみ実行できます。

4.9.1.1 テキスト形式

【メモ】

4.9.1.2 JSON形式

【メモ】

4.9.2 SQL分析結果詳細情報の取得

SQL分析結果の詳細情報をJSON形式で表示します。この機能はGridDB Advanced Editionでのみ実行できます。

【メモ】

4.10 その他の操作

その他のサブコマンドについて説明します。

4.10.1 エコーバック設定

実行したサブコマンドを標準出力に表示します。

【メモ】

 

4.10.2 メッセージの表示

指定した文字列、もしくは変数の定義内容を表示します。

【メモ】

 

4.10.3 スリープ

指定した秒数スリープします。

【メモ】

 

4.10.4 外部コマンドの実行

外部コマンドを実行します。

【メモ】

 

4.10.5 gs_shの終了

gs_shを終了します。

また、サブコマンドでエラーが発生した場合に、gs_shを終了するように設定できます。

【メモ】

 

4.10.6 ヘルプ

サブコマンドの説明を表示します。

【メモ】

 

4.10.7 バージョン

gs_shのバージョンを表示します。

【メモ】

4.10.8 タイムゾーン設定

タイムゾーンの設定を行います。

【メモ】

 

4.11 オプション・サブコマンド仕様

4.11.1 オプション

【メモ】

 

4.11.2 サブコマンド一覧

 

 

 

 

  

 

 

 

5 統合運用管理GUI(gs_admin)

5.1 概要

統合運用管理GUI(以降gs_adminと記載します)は、GridDBのクラスタ運用機能を統合したWebアプリケーションです。

gs_adminを用いて次のことができます。

5.1.1 gs_adminの構成

gs_adminは、クラスタにアクセスするために、クラスタを構成するノードを起動しているマシン、もしくはサブネットが等しく、マルチキャストが配送されるネットワーク上のマシンに配置する必要があります。

5.2 gs_adminを利用するには

gs_adminはTomcat上で動作するWebアプリケーションです。

gs_adminを利用するには、事前にTomcatとJavaをインストールする必要があります。 対応するバージョンは以下のとおりです。

また、gs_admin Ver.4.3が対応するGridDBのバージョンは以下のとおりです。

gs_adminの利用までの手順は、以下のとおりです。

  1. GridDBクラスタを構成するGridDBノードをそれぞれ設定する。
  2. gs_adminのインストールと設定を行う。
  3. gs_adminのアプリケーションURIにブラウザでアクセスし、 gs_admin利用ユーザで ログインする。

GridDBノードを設定する手順に関しては、『GridDB クイックスタートガイド』(GridDB_QuickStartGuide.html)を参照ください。

gs_adminのインストールと設定の手順は、以下のとおりです。

  1. GridDBクライアントパッケージのインストール
  2. Tomcatへgs_admin.warをデプロイする
  3. gs_admin利用ユーザの設定
  4. gs_admin.propertiesファイルの設定
  5. ノードリポジトリの設定
  6. adminHomeの権限設定

5.2.1 クライアントパッケージのインストール

GridDBのクライアントパッケージ(griddb-xx-client-X.X.X-linux.x86_64.rpm)をインストールします。

Webアプリケーションを配置するマシンにrootユーザでログインし、以下のコマンドでパッケージをインストールします。

# rpm -Uvh griddb-xx-client-X.X.X-linux.x86_64.rpm

※xxはGridDBのエディション(se, ae, ve) ※X.X.XはGridDBのバージョン

クライアントパッケージをインストールすると、GridDBホームディレクトリ( /var/lib/gridstore )にadminというディレクトリが作成されます。このディレクトリ( /var/lib/gridstore/admin )を、以降では adminHome と記載します。

adminHomeにはgs_adminの設定情報やgs_adminで利用するデータが配置されます。 gs_adminにはadminHomeのファイルを操作する機能があるため、適切な権限設定が必要です。 権限設定に関しては後述します。

adminHome下の構成は以下のとおりです。

capture/                                                # スナップショットの保存ディレクトリ(※)
        ノードアドレス_ポート番号/YYYYMMDDHHMMSS.json     # スナップショットファイル(※)
conf/                                                   # 設定ファイルディレクトリ
     gs_admin.properties                                # 初期に設定する静的パラメータファイル
     gs_admin.settings                                  # 表示に関する設定をする動的パラメータファイル
     password                                           # gs_adminユーザ定義ファイル
     repository.json                                    # ノードリポジトリファイル
log/                                                    # gs_adminのログファイルディレクトリ(※)
    gs_admin-YYYYMMDD.log                               # ログファイル(※)
tree/                                                   # コンテナツリーの構造ファイルディレクトリ(※)
     foldertree-クラスタ名-ユーザ名.json                  # フォルダツリーファイル(※)

(※)のファイルおよびディレクトリはgs_adminが自動的に作成します。

【注意】

5.2.2 Tomcatへデプロイ

gs_adminはTomcat上で動作するWebアプリケーションです。gs_adminを利用するには、Tomcatへgs_adminのwarファイルをデプロイする必要があります。本節では、Tomcatの設定については割愛します。

デプロイの手順は以下のとおりです。

GridDBのクライアントパッケージ(griddb-xx-client-X.X.X-linux.x86_64.rpm)に含まれるwarファイルをTomcatにデプロイします。

クライアントパッケージをインストールすると、warファイルは以下にインストールされます。

gs_admin.warをTomcatインストールディレクトリのwebappsディレクトリ下にコピーします。

$ cp /usr/griddb/web/gs_admin.war [Tomcatインストールディレクトリ]/webapps

5.2.3 gs_admin利用ユーザの設定

gs_adminの利用の際、gs_admin利用ユーザで認証を行います。

管理対象のGridDBクラスタの管理ユーザをgs_admin利用ユーザとして設定する必要があります。

gs_adminのユーザ定義ファイルは、 /var/lib/gridstore/admin/conf/password です。

クライアントパッケージのインストール時、このファイルは作成されません。

簡単に作成するには、管理したいクラスタのノードのユーザ定義ファイル( /var/lib/gridstore/conf/password )をgs_adminのユーザ定義ファイル( /var/lib/gridstore/admin/conf/password )へ上書きコピーしてください。この場合、コピーしたユーザ定義ファイルに記載されている管理ユーザすべてがgs_admin利用ユーザとなります。

【メモ】

5.2.4 gs_admin.propertiesファイルの設定

設定ファイルは、 /var/lib/gridstore/admin/conf/gs_admin.properties です。gsadmユーザでGridDBクラスタ構成に合わせて設定します。

プロパティファイルを書き換えた場合は、Webアプリケーションを再ロードしてください。

gs_admin.propertiesには以下の設定項目があります。

パラメータ 初期値 説明
adminUser admin gs_adminの管理ユーザを設定します。カンマで区切ることで、複数のユーザ名を設定することができます。gs_adminの管理ユーザは、下記の機能を利用することができます。
・クラスタ操作機能
・リポジトリ管理機能
ospassword なし ノードのgsadmユーザ(OSユーザ)のパスワードを設定します。設定すると下記の機能を利用することができます。
・クラスタ操作機能のノード起動操作(Start)
・OS情報表示画面
timeZone なし クラスタ接続時のプロパティとしてtimeZoneを設定します。
設定値は、TQL画面、SQL画面における、TIMESTAMP型のカラム値のタイムゾーンとして使用します。指定なしの場合、タイムゾーンはUTCとなります。

【メモ】

5.2.5 ノードリポジトリの設定

ノードリポジトリファイル( /var/lib/gridstore/admin/conf/repository.json )は、クラスタ構成情報とノード情報を一元管理するファイルです。管理対象のクラスタの指定や、クラスタ操作機能に用いられます。 gsadmユーザでGridDBクラスタ構成に合わせて設定します。

デフォルトのファイル内容は下記のとおりです。

{
    "header" : {
        "lastModified" : "",
        "version" : "2.7.0"
    },
    "clusters" : [
        {
            "name" : "INPUT_YOUR_CLUSTER_NAME_HERE",
            "address" : "239.0.0.1",
            "port" : 31999,
            "jdbcAddress" : "239.0.0.1",
            "jdbcPort" : 41999
        }
    ],
    "nodes" : [
        {
            "address" : "192.168.1.10",
            "port" : 10040,
            "sshPort" : 22,
            "clusterName" : "INPUT_YOUR_CLUSTER_NAME_HERE"
        }
    ]
}

ノードリポジトリを設定するには、ファイルを直接編集するか、リポジトリ管理画面を利用します。リポジトリ管理画面が推奨の方法です。リポジトリ管理画面を利用した設定を行う場合は、リポジトリ管理画面の機能およびgs_adminで稼働中のクラスタの管理を始めるを参照ください。

クラスタ構成を初めて行う場合は、運用管理コマンドやコマンドインタプリタ(gs_sh)を利用することを推奨します。

5.2.6 adminHomeの権限設定

adminHome下にはgs_adminがファイルやディレクトリを自動的に作成します。 そのため、Tomcat実行ユーザにadminHomeに対する読込み・書込み権限が必要となります。 そこで、あらかじめadminHome下のファイルやディレクトリの所有者をTomcat実行ユーザ(デフォルトはtomcat)に変更します。

rootユーザで所有者を変更します。

# chown -R tomcat:tomcat /var/lib/gridstore/admin

【メモ】

【注意】

5.3 ログインおよびログイン先の画面

5.3.1 ログイン画面

gs_adminにアクセスするには以下のアプリケーションURIにアクセスします。

http://Tomcat動作マシンアドレス:8080/gs_admin

gs_adminのアプリケーションURIにアクセスすると、ログイン画面が表示されます。

ログイン画面
ログイン画面

cluster欄で管理対象クラスタを選択してログインした場合は統合運用管理画面へログインします。

repository managerを選択してログインした場合はリポジトリ管理画面へログインします。

ログインする際、userとpasswordにgs_admin利用ユーザ名とパスワードをそれぞれ入力し、Loginボタンを押してください。

【メモ】

5.3.2 統合運用管理画面

統合運用管理画面は、以下の画面です。

統合運用管理画面
統合運用管理画面

統合運用管理画面は以下の要素で構成されます。

要素 略称 位置 機能
ツリービュー Tree 左部 操作対象の一覧表示、選択
情報表示・入力部 View 右部 操作対象の情報表示、情報入力
メニュー領域 上部 ログアウト
メッセージ領域 下部

Treeの機能

Treeでは、主な操作対象をクラスタとするかコンテナとするかを上部のタブで切り替えることができます。

タブ ツリーの名前 主な機能
ClusterTree クラスタツリー クラスタやノードの一覧表示、操作対象の選択
ContainerTree コンテナツリー データベースの一覧表示、コンテナの検索、操作対象の選択

Viewの機能

Viewでは、Treeで選択した操作対象ごとにViewの上部に表示されるタブが異なります。 機能を上部のタブで切り替えることができます。

詳しくは各ツリーおよび画面の項目を参照ください。

5.3.3 リポジトリ管理画面

gs_adminの管理ユーザのみ、この機能を使用できます。

ログイン画面でrepository managerを選択してgs_adminの管理ユーザでログインすると、リポジトリ管理画面に移動します。

リポジトリ管理画面は、以下の画面です。

リポジトリ管理画面
リポジトリ管理画面

リポジトリ管理画面には以下の機能があります。

入力欄の仕様は以下のとおりです。

クラスタ

ノード

5.4 クラスタツリーに関する機能

5.4.1 クラスタツリー

概要

クラスタツリーでは、管理対象クラスタを構成するノード、つまり、リポジトリのノード(clusterNameが管理対象クラスタ)をツリー形式で表示します。

クラスタツリー
クラスタツリー

リポジトリに登録されていないノードの先頭には*が表示されます。

クラスタツリーに表示されるアイコンの説明は以下のとおりです。

アイコン 説明
クラスタ
マスタノード
フォロワノード
起動済みノード
未起動ノード
状態未確認ノード
メッセージ

コンテキストメニュー

ツリー内の要素を右クリックすると要素に応じたコンテキストメニューが表示されます。 メニューから項目を選択することで、情報更新や要素に対する操作ができます。

それぞれの選択要素に対するメニューと機能は以下のとおりです。

選択要素 メニュー 機能
クラスタ refresh Treeのノード一覧の再取得
ノード refresh Viewにノードの最新情報を表示

操作対象とViewのタブ

ツリー内の要素を左クリックすると、要素に応じた機能がViewに表示されます。 機能はViewの上部のタブで切り替えます。

選択要素 タブ 画面の名前 機能
クラスタ Dashboard ダッシュボード画面 クラスタ全体の様々な情報が表示されます。
Status クラスタステータス画面 管理対象クラスタの構成情報やデータ情報が表示されます。
Monitor OS情報表示画面 ノードが動作するマシンのOS情報が表示されます。
Configuration クラスタ操作画面 ノードの起動、終了を含む、クラスタ操作を行うことができます。
ノード System システム情報画面 ノードのシステム情報が表示されます。
Container コンテナ一覧画面 ノードが格納しているコンテナの一覧が表示されます。
Performance 性能情報画面 ノードの性能情報がグラフで表示されます。
Snapshot スナップショット画面 採取した性能値を表に表示します。以前に採取した値と比較することができます。
Log ログ画面 ノードのイベントログの表示や、イベントログの出力レベルの設定ができます。

【メモ】

5.4.2 ダッシュボード画面

概要

クラスタ全体の様々な情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Dashboard

画面

ダッシュボード画面
ダッシュボード画面

機能

ダッシュボード画面には以下の機能があります。

5.4.3 クラスタステータス画面

概要

管理対象クラスタの構成情報やデータ情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Status

画面

クラスタステータス画面
クラスタステータス画面

機能

クラスタステータス画面には以下の機能があります。

5.4.4 OS情報表示画面

概要

ノードの動作するマシンのリソース情報やOS性能が表示されます。GridDBの性能分析やCPUやネットワークなどの負荷状況が分かります。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Monitor

画面

OS情報表示画面
OS情報表示画面

機能

OS情報表示には以下の機能があります。

【メモ】

5.4.5 クラスタ操作画面

この機能はgs_admin管理者のみ利用可能です。

概要

ノードの起動、終了を含む、クラスタ操作を行うことができます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Configuration

画面

クラスタ操作画面
クラスタ操作画面

機能

クラスタ操作画面には以下の機能があります。

【メモ】

5.4.6 システム情報画面

概要

ノードのシステム情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード System

画面

システム情報画面
システム情報画面

機能

システム情報画面には以下の機能があります。

5.4.7 コンテナ一覧画面

概要

ノードが格納しているコンテナの一覧が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Container

画面

コンテナ一覧画面
コンテナ一覧画面

機能

コンテナ一覧画面には以下の機能があります。

【メモ】

5.4.8 性能情報画面

概要

ノードの性能情報がグラフで表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Performance

画面

性能情報画面
性能情報画面

機能

性能情報画面には以下の機能があります。

5.4.9 スナップショット画面

概要

採取した性能値を表に表示します。以前に採取した値と比較することができます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Snapshot

画面

スナップショット画面
スナップショット画面

機能

スナップショット画面には以下の機能があります。

5.4.10 ログ画面

概要

ノードのイベントログの表示や、イベントログの出力レベルの設定ができます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Log

画面

ログ画面
ログ画面

機能

ログ画面には以下の機能があります。

【注意】

5.5 コンテナツリーに関する機能

5.5.1 コンテナツリー

概要

コンテナツリーでは、管理対象クラスタ上に存在するデータベースやコンテナをツリー形式で表示します。

ツリーの一番上には、管理対象クラスタが表示されます(()内はクラスタの総データベース数)。

コンテナツリー
コンテナツリー

コンテナツリーに表示されるアイコンの説明は以下のとおりです。

アイコン 説明
クラスタ
データベース
データベース(存在しない)
コンテナ(コレクション)
コンテナ(時系列コンテナ)
パーティションテーブル(コンテナ)
検索フォルダ
一時ワークフォルダ
メッセージ

機能

コンテナツリーには以下の機能があります。

ログイン後にはClusterTreeタブとノード一覧が自動的に表示されます。ContainerTreeタブに切替えると、コンテナツリーのツリー構造が保存されている場合、ツリー構造が自動的に追加されます。 ただし、検索フォルダの再検索は自動では行われません。

コンテナツリーでは以下の操作は行えません。

コンテキストメニュー

ツリー内の要素を右クリックすると要素に応じたコンテキストメニューが表示されます。 メニューから項目を選択することで、情報更新や要素に対する操作ができます。

それぞれの選択要素に対するメニューと機能は以下のとおりです。

選択要素 メニュー 機能
クラスタ refresh Treeのツリー構造再読込、データベース自動検出
データベース refresh データベース存在確認、コンテナの再検索
コンテナ refresh Viewにコンテナの最新情報を表示
drop コンテナの削除(確認ダイアログあり)
検索フォルダ refresh コンテナの再検索
remove 検索フォルダの削除
一時ワークフォルダ remove 一時ワークフォルダの削除

【メモ】

操作対象とViewのタブ

ツリー内の要素を左クリックすると、要素に応じた機能がViewに表示されます。 機能はViewの上部のタブで切り替えます。

選択要素 タブ 画面の名前 機能概要
クラスタ Database データベース管理画面 データベースの作成、削除、権限操作ができます。
User ユーザ管理画面 一般ユーザの作成、削除、パスワード変更ができます。
SQL SQL画面 データベースに対してSQLを実行し、その結果を表示できます。
データベース Create コンテナ作成画面 データベースにコンテナを作成できます。
SQL SQL画面 データベースに対してSQLを実行し、その結果を表示できます。
コンテナ Details コンテナ詳細画面 コンテナのカラムや索引の設定情報が表示されます。
Index 索引設定画面 コンテナのカラムごとの索引の作成、削除ができます。
Trigger トリガ設定画面 コンテナのトリガ作成、編集、削除ができます。
TQL TQL画面 コンテナに対してTQL(問合せ言語)を実行し、その結果を表示します。
パーティション Details コンテナ詳細画面 コンテナのカラムや索引の設定情報、テーブルパーティショニング情報が表示されます。

5.5.2 データベース管理画面

概要

データベースの作成、削除、権限操作ができます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー クラスタ Database

画面

データベース管理画面
データベース管理画面

機能

データベース管理画面には以下の機能があります。

5.5.3 ユーザ管理画面

概要

一般ユーザの作成、削除、パスワード変更ができます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー クラスタ User

画面

ユーザ管理画面
ユーザ管理画面

機能

5.5.4 SQL画面

この機能はGridDB Advanced Editionでのみ利用可能です。

概要

データベースに対してSQLを実行し、その結果を表示できます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー クラスタ SQL
コンテナツリー データベース SQL

画面

SQL画面
SQL画面

機能

SQL画面には以下の機能があります。

【メモ】

5.5.5 コンテナ作成画面

概要

データベースにコンテナを作成できます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー データベース Create

画面

コンテナ作成画面(コレクション)
コンテナ作成画面(コレクション)
コンテナ作成画面(時系列コンテナ)
コンテナ作成画面(時系列コンテナ)

機能

コンテナ作成画面には以下の機能があります。

【メモ】

5.5.6 コンテナ詳細画面

概要

コンテナのカラムや索引の設定情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー コンテナ Details

画面

コンテナ詳細画面
コンテナ詳細画面

機能

コンテナ詳細画面には以下の機能があります。

5.5.7 索引設定画面

概要

コンテナごとの索引の作成、削除ができます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー コンテナ Index

画面

索引設定画面
索引設定画面

機能

索引設定画面には以下の機能があります。

【メモ】

5.5.8 トリガ設定画面

概要

コンテナのトリガ作成、編集、削除ができます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー コンテナ Trigger

画面

トリガ設定画面
トリガ設定画面

機能

トリガ設定画面には以下の機能があります。

【メモ】

5.5.9 TQL画面

概要

コンテナに対してTQL(問合せ言語)を実行し、その結果を表示します。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー コンテナ TQL

画面

TQL画面
TQL画面

機能

TQL画面には以下の機能があります。

【メモ】

5.6 gs_adminの活用方法

各機能を利用したgs_adminの活用方法を紹介します。

5.6.1 稼働中のクラスタの管理を始める

既に稼働中のクラスタをgs_adminで管理するには、リポジトリ管理機能を活用します。 以下の手順を実施します。

  1. ログイン画面でrepository managerを選択し、gs_adminの管理ユーザでログインします。

  2. Syncボタンを押し、稼働中のクラスタのいずれかのノードの下記の情報を入力してSyncを押して同期を行います。

    • IPアドレスにはノード定義ファイル(gs_node.json)の /system/serviceAddress を指定します。
    • ポートにはノード定義ファイル(gs_node.json)の /system/servicePort を指定します。
  3. 稼働中のクラスタの情報がクラスタ一覧とノード一覧に反映されます。

  4. Saveボタンを押してリポジトリ情報を保存します。

  5. Logoutボタンを押してログイン画面に戻ります。

  6. ログイン画面のclusterから稼働中のクラスタ名を選択します。

  7. gs_adminの管理ユーザまたは利用ユーザでログインして運用機能の利用を開始します。

5.6.2 複数クラスタの管理を行う

1つのgs_adminで複数クラスタの管理を行う場合には、gs_admin利用ユーザの設定に注意が必要です。

gs_admin利用ユーザは単一のファイルで管理を行うため、例えば、複数のクラスタで別々のパスワードを使っている管理ユーザを、すべてのクラスタを管理するgs_admin利用ユーザとして指定することはできません。

そのため、管理の方法によって適切な設定を行う必要があります。

以下では、新たにgs_admin利用ユーザを登録する手順を示します。

  1. 新しいユーザで管理したいクラスタのうち1つのノードで、gs_adduserコマンドを使用し、管理ユーザを追加します。

    例:新規ユーザ名/パスワードがgs#newuser/newuserの場合

  $ su - gsadm
  $ gs_adduser gs#newuser -p newuser
  $ cat /var/lib/gridstore/conf/password
  admin,8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
  gs#newuser,9c9064c59f1ffa2e174ee754d2979be80dd30db552ec03e7e327e9b1a4bd594e
  system,6ee4a469cd4e91053847f5d3fcb61dbcc91e8f0ef10be7748da4c4a1ba382d17
  1. そのユーザで管理したいクラスタの他のすべてのノードに、上記のユーザ定義ファイルを配布します。

  2. すべてのノードを再起動、クラスタを再構成します。

  3. Tomcat実行ユーザで、上記で追加したユーザ名およびパスワードを、gs_adminのユーザ定義ファイルに追加します。

    例:新規ユーザ名/パスワードがgs#newuser/newuserの場合

  $ echo gs#newuser,9c9064c59f1ffa2e174ee754d2979be80dd30db552ec03e7e327e9b1a4bd594e >> /var/lib/gridstore/admin/conf/password

5.7 エラー情報の採取

gs_adminのエラー情報等のログは、adminHomeのlogディレクトリに出力されます。

出力レベルのデフォルトはinfoです。

gs_adminでの問題発生、サポート窓口の依頼等で情報を採取する時に利用します。

ログの出力レベルは、Tomcatホーム(デフォルトは/usr/local/tomcat)下の /webapps/gs_admin/WEB-INF/classes/logback.xml で設定できます。

5.8 エラー一覧

エラー種別 エラー番号 メッセージ 対処方法
Internal Server Error E00104 Cluster is not servicing. 管理対象クラスタが稼働していません。Configurationタブや他の運用ツールを用いてクラスタを稼働させて、クラスタツリーのクラスタのRefreshまたは再ログインを行ってください。
Internal Server Error E00105 D10135: Failed to check a node status. リポジトリに登録されているノードに、Ver.1.5以下のノードが登録されている可能性があります。各ノードのバージョンを確認してください。
Internal Server Error Failed to create <ファイルパス>. ファイルの作成に失敗しました。表示されているパス上に存在しないディレクトリや、Tomcatユーザのアクセス権限が与えられていないディレクトリが無いかをご確認ください。
Internal Server Error E0030C [Code:******] <エラーメッセージ> GridDBノードのエラーメッセージです。
GridDB エラーコード』を参照し、該当コードの対策をご確認ください。
Bad Request E00300 Container "コンテナ名" already exists. コンテナ名が重複しています。別のコンテナ名を指定してコンテナを作成してください。
Bad Request E00303 Container "コンテナ名" not found. 指定したコンテナが存在しません。コンテナツリー(ContainerTree)のクラスタを右クリックしてrefreshを選択し、コンテナを再検索してください。
Bad Request [Code:******] <エラーメッセージ> GridDBノードのエラーメッセージです。
GridDB エラーコード』を参照し、該当コードの対策をご確認ください。
Input Error <フィールド名> is required. 必須入力欄が入力されていません。<フィールド名>の入力欄に値を入力してください。
Input Error <フィールド名> is invalid. <フィールド名>の入力欄に無効な値が入力されています。『GridDB 運用ツールリファレンス』に従い、適切な値を入力してください。

6 エクスポート/インポートツール

GridDBの エクスポート/インポート ツールでは、データベースの局所的な破壊に対して復旧を行う障害回復処理や、システム構成が変更された際のデータベースの移行(マイグレーション)処理などを実現するために、データベースやコンテナ単位での保存/復元機能を提供します。

また、RDBとの連携機能もあり、RDBのデータを収集してGridDBに登録することもできます。

6.1 ファイル構成

エクスポートツールは、GridDBクラスタのコンテナおよびロウデータを、以下のファイルに保存します。コンテナ名を指定して特定コンテナのみエクスポートすることもできます。

インポートツールは、エクスポートデータを保存したコンテナデータファイルとエクスポート実行情報ファイルを読み込んで、コンテナおよびロウデータをGridDBに復元します。特定のコンテナデータを指定して、インポートすることもできます。

エクスポート/インポートの構成
エクスポート/インポートの構成

6.1.1 コンテナデータファイルとは

コンテナデータファイルは、コンテナ情報を記載した メタデータファイル と、コンテナに格納するデータを記載した ロウデータファイル からなります。

メタデータファイルは、コンテナのタイプや、スキーマ、設定されている索引やトリガの情報を含むjson形式のファイルです。

ロウデータファイルには、コンテナの格納データをCSV形式で記載する CSVデータファイル と、zip形式で記載する バイナリデータファイル の2種類があります。

各ファイルの記述内容の詳細は、コンテナデータファイルの形式を参照してください。

また、コンテナデータファイルには、記載対象となるコンテナ数によって、以下の2種類があります。

以降では、各構成のコンテナデータファイルを シングルコンテナデータファイルマルチコンテナデータファイル と記載します。

コンテナデータファイル
コンテナデータファイル

シングルコンテナデータファイルで大量のコンテナを指定してエクスポートを実行すると、大量のメタデータファイルとロウデータファイルが作成されるため、管理が煩雑となります。 一方、マルチコンテナデータファイルでは、大量のコンテナを指定しても出力されるのは1つのメタデータファイルとロウデータファイルのみです。

そこで、2つの構成は 用途に応じて使い分ける ことを推奨します。

シングルコンテナデータファイルは、以下のようなケースで利用します。

マルチコンテナデータファイルは、以下のようなケースで利用します。

6.1.2 エクスポート実行情報ファイルとは

エクスポート実行情報ファイルには、エクスポート実行時の日時、コンテナ数、コンテナ名などの情報を保存します。このファイルはエクスポートしたデータを、そのままGridDBクラスタに復元するために必要です。

【メモ】

6.2 エクスポート/インポートの実行環境の設定

エクスポート/インポートコマンドを実行するには、以下の設定が必要です。

6.2.1 RPMでのパッケージインストール

エクスポート/インポートコマンドを実行するには、エクスポート/インポート機能が含まれているクライアントパッケージおよびJavaライブラリパッケージのインストールが必要です。

【例】

# rpm -Uvh griddb-xx-client-X.X.X-linux.x86_64.rpm
準備中...                ########################################### [100%]
User and group has already been registered correctly.
GridDB uses existing user and group.
   1:griddb-xx-client          ########################################### [100%]

# rpm -Uvh griddb-xx-java_lib-X.X.X-linux.x86_64.rpm
準備中...                ########################################### [100%]
   1:griddb-xx-java_lib        ########################################### [100%]

6.2.2 プロパティファイルの設定

gsadmユーザで利用するGridDBクラスタ構成にあわせてプロパティファイルを設定します。プロパティファイルは、 /var/lib/gridstore/expimp/conf/gs_expimp.properties です。

プロパティファイルには以下のような設定項目があります。

パラメータ  必須 デフォルト値 説明
mode 必須 MULTICAST 接続方式の種類を指定します。指定を省略した場合はマルチキャスト方式になります。
MULTICAST ・・マルチキャスト方式
FIXED_LIST・・固定リスト方式
PROVIDER ・・プロバイダ方式
hostAddress mode=MULTICASTの場合は必須 239.0.0.1 GridDBのクラスタ定義ファイル(gs_cluster.json)の/transaction/notificationAddressを指定します。エクスポート・インポートツールがクラスタにアクセスする際に利用するマルチキャストアドレスです。
hostPort mode=MULTICASTの場合は必須 31999 GridDBのクラスタ定義ファイル(gs_cluster.json)の/transaction/notificationPortを指定します。エクスポート・インポートツールがクラスタにアクセスする際に利用するマルチキャストアドレスのポートです。
jdbcAddress AEで mode=MULTICASTの場合は必須 239.0.0.1 マルチキャスト方式を利用する場合は、GridDBのクラスタ定義ファイル(gs_cluster.json)の/sql/notificationAddressを指定します。
jdbcPort AEで mode=MULTICASTの場合は必須 41999 マルチキャスト方式を利用する場合は、GridDBのクラスタ定義ファイル(gs_cluster.json)の/sql/notificationPortを指定します。
notificationMember mode=FIXED_LISTの場合は必須 固定リスト方式の接続方法を使用する場合は、各ノードのクラスタ定義ファイルgs_cluster.jsonに指定した/cluster/notificationMemberの/transaction/addressと/transaction/portを:で繋いで記述します。複数ノードの場合は、カンマで連結してください。
例)192.168.0.100:10001,192.168.0.101:10001
jdbcNotificationMember AEで mode=FIXED_LISTの場合は必須 固定リスト方式の接続方法を使用する場合は、クラスタ定義ファイルgs_cluster.jsonの/cluster/notificationMemberの各ノードの/sql/addressと/sql/portを:で繋いで記述します。複数ノードの場合は、カンマで連結してください。
例)192.168.0.100:20001,192.168.0.101:20001
notificationProvider.url mode=PROVIDERの場合は必須 プロバイダ方式の接続方法を使用する場合は、クラスタ定義ファイルgs_cluster.jsonの/cluster/notificationProvider/urlを指定します。
restAddress 127.0.0.1 GridDBのノード定義ファイル(gs_node.json)の/system/listenerAddressを指定します。将来の拡張用のパラメータです。
restPort 10040 GridDBのノード定義ファイル(gs_node.json)の/system/listenerPortを指定します。将来の拡張用のパラメータです。
clusterName 必須 INPUT_YOUR_CLUSTER_NAME_HERE クラスタ構成を組む(gs_joinclusterコマンドで指定)際に指定しているクラスタ名を指定します。
logPath /var/lib/gridstore/log エクスポート・インポートツールの実行時のエラー情報などのログを出力するディレクトリを指定します。ディレクトリ下に、gs_expimp-YYYYMMDD.log でログが出力されます。
commitCount 1000 インポートでコンテナデータを登録する際にデータを登録する単位として、ロウ件数を指定します。数値を大きくするとデータ処理のためのバッファが大きくなります。ロウサイズが小さい場合は数値を上げ、ロウサイズが大きい場合は数値を下げてください。データインポートの登録性能に影響するパラメータです。
transactionTimeout 2147483647 トランザクション開始から終了までの時間を指定します。大量データの登録・取得時には、データ量に合わせた大きな数値を設定する必要があります。デフォルトは、大量データ処理用に最大値が指定されています。(単位:秒)
failoverTimeout 10 ツールがノード障害を検知してからリトライを繰り返すフェイルオーバー時間を指定します。インポート/エクスポートの対象クラスタへの初期接続のタイムアウトにも用いられます。コンテナへの大量データ登録・取得などの処理を行う場合は、値を増やしてください。(単位:秒)
jdbcLoginTimeout 10 JDBCの初期接続のタイムアウト時間です。(単位:秒)
rdb.driver RDB連携の場合は必須 RDB連携用のパラメータです。JDBCドライバのパスを指定します。
rdb.kind RDB連携の場合は必須 oracle RDB連携用のパラメータです。RDBの種類 "oracle" を指定します。
rdb.host RDB連携の場合は必須 RDB連携用のパラメータです。RDBにアクセスする際に利用するホスト名(アドレス))を指定します。
rdb.port RDB連携の場合は必須 RDB連携用のパラメータです。RDBにアクセスする際に利用するポート番号を指定します。
rdb.database RDB連携の場合は必須 RDB連携用のパラメータです。対象のデータベース名を指定します。
rdb.url RDB連携の場合は必須 RDB連携用のパラメータです。RDBにアクセスする際の接続文字列を指定します。 RDB接続先には、host, port, databaseの組、または、urlを指定してください。
rdb.user RDB連携の場合は必須 RDB連携用のパラメータです。対象のデータベースにアクセスするユーザを指定します。
rdb.password RDB連携の場合は必須 RDB連携用のパラメータです。対象のデータベースにアクセスするユーザのパスワードを指定します。
load.input.threadNum 1 RDB連携用のパラメータです。RDBから収集する処理のスレッド数を指定します。 (1~64)
load.output.threadNum 1 RDB連携用のパラメータです。GridDBに登録する処理のスレッド数を指定します。(1~16)
storeBlockSize 64KB GridDBクラスタで指定しているブロックサイズを指定します。ブロックサイズによりGridDBに登録できる文字列データ、バイナリデータの上限値が異なります。
maxJobBufferSize 512 収集・登録データを保持するバッファサイズを指定します(MB)。

6.3 エクスポートの機能

ここでは、エクスポート機能を利用する際に指定できるオプションについてエクスポートの使用例を元に説明します。

6.3.1 処理対象の指定

6.3.1.1 コンテナの指定方法

GridDBクラスタからコンテナを取り出すには、クラスタの全コンテナを指定する方法、データベースを指定する方法、コンテナを個別に指定する方法があります。

(1) 全てのコンテナの指定

(2) データベースの指定

(3) コンテナの個別指定

6.3.1.2 ロウの指定方法

コンテナからロウを取り出す検索クエリを指定することで、検索クエリにヒットするロウのみエクスポートすることができます。検索クエリが指定されていないコンテナは、コンテナに格納されているすべてのロウがエクスポートされます。

検索クエリの指定

【例】実行例

$ gs_export -c c001 c002 -u admin/admin --filterfile filter1.txt
  
$ gs_export --all -u admin/admin --filterfile filter2.txt

【例】定義ファイルの記述

^cont_month     :select * where time > 100  [改行]
^cont_minutes_.*:select * where flag = 0    [改行]
cont_year2014   :select * where timestamp > TIMESTAMP('2014-05-21T08:00:00.000Z') [改行]

【メモ】

6.3.1.3 ユーザ・アクセス権の指定方法

GridDBクラスタのユーザやアクセス権の情報もエクスポートすることができます。 クラスタ上のすべてのデータを移行する場合にご利用ください。

【例】

$ gs_export --all -u admin/admin --acl

【メモ】

6.3.1.4 ビューの指定方法 (GridDB Advanced Editionのみ)

GridDBクラスタのビューもコンテナと合わせてエクスポートすることができます。

--allオプションまたは--dbオプションを指定したとき、エクスポート対象のデータベースのビューがエクスポートされます。

$ gs_export --db public -u admin/admin
エクスポートを開始します
出力ディレクトリ : /tmp/export
     :
対象コンテナ数 : 5 ( 成功:5  失敗:0 )

対象ビュー数 : 15
エクスポートを終了しました

6.3.2 ロウデータファイルの出力形式の指定

ロウデータファイルの出力形式として、CSVデータファイル、もしくはバイナリデータファイルが指定できます。

【例】

$ gs_export -c c001 c002 -u admin/admin --binary
  
$ gs_export --all -u admin/admin --binary 500       //500Mbytesごとにバイナリデータファイルを分割

6.3.3 コンテナデータファイル出力構成の指定

コンテナ単位にコンテナデータファイルを作成するシングルコンテナデータファイル、もしくは全コンテナを1つのコンテナデータファイルに出力するマルチコンテナデータファイルが指定できます。

【例】

$ gs_export -c c001 c002 -u admin/admin --out test
  
$ gs_export --all -u admin/admin --out           //日付でファイルが作成される

6.3.4 出力先の指定

コンテナデータファイルの出力先として、ディレクトリを指定できます。指定したディレクトリが存在しなかった場合にはディレクトリを作成します。ディレクトリの指定を省略した場合、コマンド実行時のカレントディレクトリにデータを出力します。出力先の指定は-dオプションを用います。

【例】

$ gs_export --all -u admin/admin --out test -d /tmp

【メモ】

6.3.5 並列実行数の指定

エクスポートツールで並列にクラスタにアクセスしてデータを取得します。クラスタが複数のノードで構成されている場合に並列実行すると、ノードごとに並列アクセスするので高速に取得することができます。

【メモ】

【例】

$ gs_export --all -u admin/admin --binary --out --parallel 4

6.3.6 テスト実行機能

利用者がコンテナをエクスポートする前に、正しくエクスポートが行えるかを評価することができます。

【例】

$ gs_export -u admin/admin --all --test
エクスポートを開始します
[テストモード]
出力ディレクトリ : /var/lib/gridstore/export
対象コンテナ数  : 5

Name                                      PartitionId Row
------------------------------------------------------------------
public.container_2                                 15          10
public.container_3                                 25          20
public.container_0                                 35          10
public.container_1                                 53          10
public.container_4                                 58          20

対象コンテナ数 : 5 ( 成功:5  失敗:0 )

対象ビュー数 : 15
エクスポートを終了しました

6.3.7 エラー継続指定

別アプリケーションとのロック競合によってロウデータ取得エラーが発生した場合も、エクスポート処理を継続できます。

【例】

$ gs_export --all -u admin/admin --force

【メモ】

6.3.8 その他の機能

動作表示の詳細指定

【例】

$ gs_export --containerregex "^c0" -u admin/admin --verbose
エクスポートを開始します
出力ディレクトリ : /data/exp
対象コンテナ数  : 4

public.c003 : 1
public.c002 : 1
public.c001 : 1
public.c010 : 1
ロウデータの取得を完了しました: time=[5080]

対象コンテナ数 : 4 ( 成功:4  失敗:0 )
エクスポートを終了しました

動作表示の抑止指定

【例】

$ gs_export -c c002 c001 -u admin/admin --silent

6.4 インポートの機能

コンテナデータファイルまたはRDBのデータを、GridDBクラスタにインポートします。

6.4.1 インポート元データソースの種類

Importツールの入力データソースには、以下があります。

【メモ】

6.4.2 コンテナデータファイルからのインポート

エクスポート機能でエクスポートしたデータ形式のデータをGridDBクラスタにインポートします。

6.4.2.1 処理対象の指定

コンテナデータファイルの中からインポートする処理対象のデータを指定する必要があります。

6.4.2.1.1 コンテナの指定方法

コンテナデータファイル内の全コンテナを指定する方法、データベースを指定する方法、コンテナを個別に指定する方法があります。

(1) 全てのコンテナの指定

(2) データベースの指定

(3) コンテナの個別指定

【注意事項】

【メモ】

6.4.2.1.2 ユーザ・アクセス権の指定方法

エクスポート機能で--aclオプションを指定してエクスポートしたデータの場合、ユーザやアクセス権の情報もインポートすることができます。 クラスタ上のすべてのデータを移行する場合にご利用ください。

【例】

$ gs_import --all --acl -u admin/admin

【メモ】

6.4.2.1.3 ビューの指定方法 (GridDB Advanced Editionのみ)

エクスポート機能でビューをエクスポートしたデータの場合、コンテナデータと共にビューもインポートすることができます。

--allオプションまたは--dbオプションを指定したとき、インポート対象のデータベースのビューがインポートされます。

【メモ】

6.4.2.2 コンテナデータファイルの指定

コンテナデータファイルを指定します。指定を省略した場合は、カレントディレクトリのファイルが処理対象となります。

【例】

//カレントディレクトリから全コンテナを指定
$ gs_import --all -u admin/admin

//特定ディレクトリからデータベースを複数指定
$ gs_import --db db002 db001 -u admin/admin  -d /data/expdata

//特定ディレクトリからコンテナを複数指定
$ gs_import -c c002 c001 -u admin/admin  -d /data/expdata

【メモ】

6.4.2.3 コンテナ一覧の取得

コンテナデータファイル内に格納されたコンテナ情報をインポートする前に確認することができます。

【例】

$ gs_import --list
エクスポートデータファイルのコンテナ一覧を表示します
DB            Name              Type            FileName
public        container_2       COLLECTION      container_2.csv
public        container_0       TIME_SERIES     container_0.csv
public        container_1       COLLECTION      container_1.csv
userDB        container_1_db    TIME_SERIES     userDB.container_1_db.csv
userDB        container_2_db    TIME_SERIES     userDB.container_2_db.csv
userDB        container_0_db    COLLECTION      userDB.container_0_db.csv

6.4.3 RDBからのインポート

RDB(Oracle)のデータをGridDBクラスタにインポートします。

概要

Oracleデータベースに接続し、指定されたテーブルからSQLでデータを収集し、GridDBコンテナにデータを登録します。

RDBからのインポート
RDBからのインポート

以下のコマンドでRDBからのインポートを実行できます。

$ gs_import -u admin/admin --srcfile リソース定義ファイル

OracleテーブルとGridDBコンテナの対応付け(マッピング)を、リソース定義ファイルで指定します。

リソース定義ファイルでは、以下の4つの設定をjson形式で指定します。リソース定義ファイルは、RDB収集元単位に作成します。

 

RDB収集元/GridDB復元先の接続情報の指定

収集元となるRDBの接続情報(アドレス、ポート番号等)、JDBCドライバの情報、および、GridDB復元先の接続情報を設定します。

項目 設定するファイル
JDBCドライバのパス        プロパティファイル
収集元のRDB接続情報       プロパティファイル、または、リソース定義ファイル
復元先のGridDB接続情報    プロパティファイル、または、リソース定義ファイル

 【メモ】

 

RDB収集対象テーブルの指定

Oracleデータベースからインポートする処理対象のデータについての情報を指定します。

【メモ】

 

GridDB登録対象コンテナの指定

登録先のGridDBコンテナを指定します。次の情報を指定します。

登録先の情報はすべて省略し、マッピングの自動変換で対応付けすることも可能です。

ただし、処理対象テーブルをSQL文で指定した場合、コンテナ名の指定は必須となります。

 

マッピング情報の指定

OracleとGridDBのデータの対応付けを行います。

<変換方法>

「自動変換」と「ユーザ定義変換」の2種類があります。

 

<テーブルの対応付け>

OracleのテーブルとGridDBのコンテナを対応付けることができます。

【メモ】

 

<列の対応付け>

 Oracleの列とGridDBのカラムを1対1で対応付けることができます。

【メモ】

 

リソース定義ファイルの設定

リソース定義ファイルは、json形式です。接続対象であるRDB(Oracle)の情報や復元先であるコンテナの情報を指定します。

RDB(Oracle)に接続しインポートするための情報としては、以下のような設定項目があります。

パラメータ 説明
/inputSource
  /type RDB連携を利用する場合、"rdb"を指定します
  /server 省略可。省略した場合、プロパティファイルのRDB接続先が使用されます。 *1
    /kind RDBの種類を指定します。"oracle"を指定します
    /host RDBにアクセスする際に利用するアドレスを指定します
    /port RDBにアクセスする際に利用するアドレスのポートを指定します
    /database データベース名(SID)を指定します
    /url RDBにアクセスする際の接続文字列を指定します。(host,port,database または urlを指定してください。
    /user データベースにアクセスするユーザを指定します
    /password データベースにアクセスするユーザのパスワードを指定します
/outputSource 省略可。省略した場合、プロパティファイルのGridDB接続先が使用されます。
  /type GridDBに登録する場合、"gridstore"を指定します。
  /server
    /host GridDBにアクセスする際に利用するアドレスを指定します
    /port GridDBにアクセスする際に利用するアドレスのポートを指定します
    /clusterName
    /user データベースにアクセスするユーザを指定します
    /password データベースにアクセスするユーザのパスワードを指定します
/targetList
以下は配列で繰り返し指定可
  /rdb RDBの収集対象を指定します。"table"または"sql"のどちらかが必須です
    /table テーブル名を指定します
    /sql SQL文を指定します
    /select テーブル名指定の場合に、カラムを指定します
    /where テーブル名指定の場合に、条件でカラムを絞り込みます
    /orderby テーブル名指定の場合に、指定したカラムをソートします。
    /partitionTable パーティションテーブルに並列アクセスする場合に"true"を指定します。
  /gridstore GridDBの登録先コンテナを指定します。
    /database データベース名を指定します。省略した場合は、publicデータベース"public"に登録されます
    /name コンテナ名を指定します
RDB収集対象がテーブル名指定の場合、コンテナ名は省略可です。テーブル名がコンテナ名になります。
SQL文指定の場合、コンテナ名は必須です。
    /type コンテナタイプ(COLLECTION/TIME_SERIES)を指定します
コンテナタイプを省略した場合はコレクションになります。
    /rowKeyAssigned ロウキーの有無(true/false/省略)を指定します。 *2
    /dataAffinity データアフィニティの名前を指定します。
    /indexSet 索引を指定します。 *3
    /triggerInfoSet トリガを指定します。 *3
    /compressionInfoSet 時系列コンテナの場合のみ、指定圧縮方式(NO/SS)を指定します。 *3
  /mapping 省略可、および、以下は繰り返し指定可。
    /column  以下は繰り返し指定可
      /rdb RDBのカラム名を指定します。
      /gridstore GridDBのカラム名を指定します
      /type GridDBのカラムタイプを指定します
    /containerSplit コンテナの分割方法を指定します。
      /type カラム値分割"columnValue" または レコード数分割 "dataNumber" を指定します。
      /column カラム値分割の場合、分割する値のカラムを指定します。
      /number レコード数分割の場合、分割するレコード数を指定します。

【メモ】

リソース定義ファイルの例を以下に示します。接続情報はプロパティファイルに指定されているものとします。

 

パーティションテーブル

Oracleのパーティションテーブルの場合、パーティション単位(コンポジットタイプの場合はサブパーティション単位)に並列にアクセスすることができます。これにより、パーティションテーブルのデータを高速に取得することができます。

パーティションテーブルを並列処理する場合、リソース定義ファイルの収集対象の設定で、"partitionTable"の項目をtrueにしてください。

【メモ】

 

並列度

RDB・GridDBへのアクセスを並列化し、インポート処理を高速に実行することができます。

並列処理を行う場合は、コマンドラインで--parallelオプションを指定してください。

--parallelに指定された数の並列度で、RDBからの収集・GridDBへの登録処理がそれぞれ実行されます。並列度を指定しない場合は、自動的にGridDBのクラスタノード数が並列度になります

【例】

load.input.threadNum=64
load.output.threadNum=16

<例>

コマンドライン プロパティファイル 収集スレッド数 登録スレッド数
gs_import 1 1
gs_import --parallel 3 3 3
gs_import --parallel input.threadNum=16 16 3
gs_import --parallel 指定なし GridDBノード数 GridDBノード数

事前チェックとテスト実行

収集・登録処理前に、下記の項目がチェックされます。リソース定義ファイルの記述誤りや、指定されたデータの整合性のチェックが事前に行われます。 下記チェックでエラーが発生した場合、ツールの処理は停止します。--forceオプションでも継続することはできません。

【事前にチェックされる項目】

事前チェックのみを実行して動作を確認したい場合、テスト実行を行います。テスト実行ではOracleおよびGridDBと通信を行いますが、 GridDBへのデータ登録は行いません。

テスト実行を行うには--testオプションを--srcfileオプションと合わせて指定します。

【例】

$ gs_import -u admin/admin --srcfile partition_table.json --test
インポートを開始します
[テストモード]
インポートのテスト実行を終了しました。 処理対象SQL数:1920
インポートを終了しました

事前チェックでエラーが発生する場合は以下のように表示されます。

【例】

$ gs_import -u admin/admin --srcfile not_found_column.json --test
インポートを開始します
[テストモード]
D00C0C: 存在しないカラムがマッピング定義に指定されています。: sql=[SELECT * FROM mytable], column=[NOT_FOUND_COLUMN]

SmartEDA/DDS連携

データ収集/イベント処理基盤SmartEDAのデータ収集サーバ(DDS)と連携して、OracleからGridDBへデータを登録することができます。 ImportツールでOracleからデータを収集し、DDSへHTTP送信します。DDSは、受信したデータをGridDBへ登録します。 OracleやImportツールがGridDBクラスタとマルチキャスト通信できないサブネットに存在する場合でもインポートすることができます。

【メモ】

6.4.4 データ登録オプション

インポートでは、特定のオプションの指定がないときは、登録しようとしたコンテナが既にGridDBクラスタ内に存在するとエラーとなります。次のオプションを指定することで、データの追加や、置き換えができます。データ登録では、登録に成功したコンテナ数と失敗したコンテナ数を表示します。

【例】

$ gs_import -c c002 c001 -u admin/admin  --append
..インポートを開始します(追記モード)
インポートを完了しました
成功:2  失敗:0
 
$ gs_import -c c002 c001 -u admin/admin  --replace   //特定のディレクトリから
..インポートを開始します(再配置モード)
インポートを完了しました
成功:2  失敗:0
 
$ gs_import --all  -u admin/admin  -d /datat/expdata   --replace

6.4.5 エラー継続指定

コンテナデータファイルのユーザ編集ミスによって特定のロウデータで登録エラーが発生した場合も、インポート処理を継続できます。

【例】

$ gs_import --all -u admin/admin -d /data/expdata --force

【メモ】

6.4.6 その他の機能

動作表示の詳細指定

6.5 コマンド/オプション仕様

6.5.1 エクスポートコマンド

【メモ】

6.5.2 インポートコマンド

【メモ】

6.6 コンテナデータファイルの形式

コンテナデータファイルを構成するそれぞれのファイル形式を以下に示します。

6.6.1 メタデータファイル

コンテナ情報をJSON形式で格納します。 格納するコンテナ情報を以下に示します。

項目 説明
コンテナ名 コンテナの名称です。
コンテナ種別 コレクションまたは時系列コンテナを指定します。
スキーマ情報 ロウを構成するカラム集合の情報です。カラム名、データ型、カラム制約を指定します。
圧縮設定情報 時系列データに設定する圧縮方式の情報です。誤差あり間引き圧縮、誤差なし間引き圧縮、無圧縮のいずれかを設定します。
索引設定情報 コンテナに設定する索引種別の情報です。索引設定の有無。ハッシュ索引、空間索引、ツリー索引等の種別を指定します。
トリガ(イベント通知)情報 JMSまたはRESTインターフェースでコンテナ更新(PUT/DELETE)時の通知情報です。
ロウキー設定情報 コレクションの場合、ロウキーを設定します。時系列コンテナの場合、ロウキー設定なしであるか、デフォルトが設定されている場合はその値が有効となります。
テーブルパーティショニング情報 テーブルパーティショニングの定義情報を指定します。

以下にメタ情報のJSON形式のタグとデータ項目を示します。利用者が新規に作成する際に必須となるタグについても記載します(タグの設定条件)。

タグ名     項目       説明   設定条件 
共通パラメータ  
database データベース名 データベース名 任意 省略した場合は"public"
container コンテナ名 コンテナ名 必須
containerType コンテナ種別 COLLECTION/TIME_SERIES のいずれかを指定 必須
containerFileType コンテナデータファイル種別 csv/binary のいずれかを指定 必須
containerFile コンテナデータファイル名 ファイル名 任意
dataAffinity データアフィニティ名 データアフィニティの名前を指定 任意
partitionNo パーティション 空文字列で未設定 任意 エクスポート時出力される。(インポート時は指定不要。指定しても値は利用されない。)
columnSet カラム情報セット、(スキーマ情報) 既存コンテナへのデータ追加時は、カラム情報が合致している必要あり 必須
  columnName カラム名 必須
  type データ型 BOOLEAN/ STRING/ BYTE/ SHORT/ INTEGER/ LONG/ FLOAT/ DOUBLE/ TIMESTAMP/ GEOMETRY/ BLOB/ BOOLEAN[]/ STRING[]/ BYTE[]/ SHORT[]/ INTEGER[]/ LONG[]/ FLOAT[]/ DOUBLE[]/ TIMESTAMP[] のいずれかを指定 必須
  notNull NOT NULL制約 true/false のどちらかを指定 任意 省略した場合は"false"
rowKeyAssigned ロウキー設定(*1) true/false のいずれかを指定
rowKeySetと同時指定はエラー
任意 省略した場合は"false"
rowKeySet ロウキーカラム名セット ロウキーのカラム名を配列形式で指定
既存コンテナへのデータ追加時は、ロウキーが合致している必要あり
任意 (*2)
indexSet 索引情報セット カラム毎に設定可能。 存在しないカラム名は無視/エラー出力はする 任意
  columnNames カラム名セット カラム名を配列形式で指定 任意(indexSet指定時は必須)
  type 索引種別 HASH ( STRING/ BOOLEAN/ BYTE/ SHORT/ INTEGER/ LONG/ FLOAT/ DOUBLE/ TIMESTAMP ) SPATIAL ( GEOMETRY ) 、 TREE ( STRING/ BOOLEAN/ BYTE/ SHORT/ INTEGER/ LONG/ FLOAT/ DOUBLE/ TIMESTAMP ) のいずれかを指定 任意 (indexSet指定時は必須)
  indexName 索引名 索引名 任意 nullを指定した場合や省略した場合は未設定
triggerInfoSet トリガ設定 任意
  eventName トリガ名 トリガ名 任意(triggerInfoSet指定時は必須)
  notificationType 通知方法 JMS/REST のいずれかを指定 任意(triggerInfoSet指定時は必須)
  targetEvents 監視対象操作 PUT/DELETE のいずれかを指定 任意(triggerInfoSet指定時は必須)
  targetColumnNames カラム名 任意 通知対象カラム(カンマ区切りで複数指定可能)。セパレータは「,」(カンマ)、存在しないカラム名指定はエラー
  notificationURI 通知先URI 任意(triggerInfoSet指定時は必須)
  JmsDestinationType デスティネーション種別 topic/queue のいずれかを指定 notificationTypeがJMSのみ有効
  JmsDestinationName デスティネーション名 notificationTypeがJMSの時は必須
  JmsUser ユーザ名 notificationTypeがJMSの時は必須
  JmsPassword パスワード notificationTypeがJMSの時は必須
テーブルパーティショニング情報
tablePartitionInfo テーブルパーティショニング情報 インターバル-ハッシュパーティショニングの場合は、インターバル、ハッシュの順番で以下の情報を配列形式で記述します 任意
type テーブルパーティショニング種別 指定する値は次の2種類 ハッシュ:HASH、インターバル:INTERVAL tablePartitionInfoを記載した場合は必須
column パーティショニングキー 指定できるカラムの型は
type=HASHの場合 制限なし
type=INTERVALの場合 BYTE型,SHORT型,INTEGER型,LONG型,TIMESTAMP型
tablePartitionInfoを記載した場合は必須
divisionCount ハッシュの分割数 (type=HASHの場合のみ有効)ハッシュの分割数 type=HASHの場合は必須
intervalValue 分割基準値 (type=INTERVALの場合のみ有効)分割する間隔 type=INTERVALの場合は必須
intervalUnit 分割単位 (type=INTERVALの場合のみ有効)単位 DAY type=INTERVAL,パーティショニングキーがTIMESTAMP型の場合は必須
インターバルまたはインターバル-ハッシュパーティショニングのみのパラメータ
expirationType 期限解放種別 パーティション期限解放を指定する場合は"partition"を指定 任意
expirationTime 解放対象の有効期限の基準とする経過期間 整数値を指定 expirationType指定時は必須
expirationTimeUnit 時間情報のENUM DAY/ HOUR/ MINUTE/ SECOND/ MILLISECONDのいずれかを指定 expirationType指定時は必須
TIME_SERIESのみのパラメータ
timeSeriesProperties 圧縮情報設定 containerTypeがTIME_SERIESのみ指定可 任意
compressionMethod NO/SS/HIのいずれかを指定 任意
compressionWindowSize ロウの最大期間 整数値を指定 任意
compressionWindowSizeUnit 時間情報のENUM DAY/ HOUR/ MINUTE/ SECOND/ MILLISECONDのいずれかを指定 任意
expirationDivisionCount 期限解放の分割数 期限解放の分割数を指定 任意
rowExpirationElapsedTime 経過期間 整数値を指定 任意
rowExpirationTimeUnit 時間情報のENUM DAY/ HOUR/ MINUTE/ SECOND/ MILLISECONDのいずれかを指定 任意
compressionInfoSet カラム毎設定 compressionMethodがHIのみ指定可 任意
  columnName カラム名 任意
  compressionType 絶対値/相対値 RELATIVE/ABSOLUTEのいずれかを指定(RELATIVEは相対値、ABSOLUTEは絶対値) 任意
  width 絶対誤差あり。間引き圧縮パラメータ 浮動小数点数で指定可能 任意 指定カラムに対しては必須。rate/spanと同時指定はエラー
  rate 相対誤差あり。間引き圧縮パラメータ 浮動小数点数で指定可能 任意 compressionMethodがHIの時み設定可能。SS/NOでは無視/エラー出力する。widthと同時指定はエラー
  span 相対誤差あり。間引き圧縮パラメータ 浮動小数点数で指定可能 任意 compressionMethodがHIのみ時設定可能。SS/NOでは無視/エラー出力する。widthと同時指定はエラー

【メモ】

【注意】

【例1】 シングルコンテナデータファイルでのコレクションの記述例 (public.c001_properties.json)

【例2】 マルチコンテナデータファイルでのコレクションおよび時系列コンテナの記述例 (public.container01_properties.json)

【例3】 テーブルパーティショニングの場合の記述例

【メモ】

6.6.2 ロウデータファイル(バイナリデータファイル)

ロウデータファイル(バイナリデータファイル)はzip形式であり、gs_exportでのみ作成が可能です。可読性はなく、編集もできません。

6.6.3 ロウデータファイル(CSVデータファイル)

ロウデータファイル(CSVデータファイル)はCSV形式であり、コンテナデータファイル情報部にはロウの定義であるメタデータファイルへの参照を記述します。

【メモ】

<CSVデータファイルの形式>

1.ヘッダ部(1~2行目)

ヘッダ部は、エクスポート時に出力される情報です。インポート時にヘッダ情報は不要です。

【例】

"#2017-10-01T17:34:36.520+0900 GridDB V4.0.00"
"#User:admin "

2.コンテナデータファイル情報部(3行目以降)

メタデータファイルへの参照を記述します。

3.ロウデータ部(コンテナ情報部以降)

ロウデータを記述します。

【メモ】

4.コメント部

コメント部はCSVデータファイルのヘッダ部以外であればどこでも記述できます。

【メモ】

<ファイル名形式>

エクスポートツールで出力するCSVデータファイルのファイル名は以下となります。

【例】CSVデータファイル(外部オブジェクトファイル含む)の記述例 メタデータファイル 例1の場合のデータの記述

"#2017-10-01T11:19:03.437+0900  GridDB V4.0.00"
"#User:admin"
"%","public.c001_properties.json"
"$","public.c001"
"1","Tokyo"
"2","Kanagawa"
"3","Osaka"

 

CSVデータファイルのロウの一部に以下のデータが含まれるとき、外部オブジェクトとしてCSVデータファイルとは別に外部オブジェクトファイルを用意します。外部データファイルの参照をCSVファイルの対象カラムに以下のように記載します。  "@データ型:”(ファイル名称)

外部オブジェクトファイルをエクスポートしたとき、エクスポート時の外部オブジェクトファイル名は、以下の規則に従い作成されます。

インポートで利用する外部オブジェクトファイルのファイル名は任意です。CSVデータファイルの該当カラムに、@データ型:任意のファイル名で記載します。

【例】外部オブジェクトファイルの命名例

//BYTE配列を3カラム目に持つ コレクション(colb)をエクスポートした場合
 
10月  4 12:51 2017 public.colb.csv
10月  4 12:51 2017 public.colb_0_3.byte_array
10月  4 12:51 2017 public.colb_1_3.byte_array
10月  4 12:51 2017 public.colb_2_3.byte_array
10月  4 12:51 2017 public.colb_3_3.byte_array
10月  4 12:51 2017 public.colb_4_3.byte_array
10月  4 12:51 2017 public.colb_properties.json

  

【例】シングルコンテナデータファイルでの外部オブジェクトファイルの記述

7 長期アーカイブツール

7.1 利用方法

長期アーカイブ機能はツール(長期アーカイブツール: gs_archive)を通して利用します。 長期アーカイブツール gs_archive は、GridDBのクライアントマシンの端末から以下の形式で起動します。

gs_archive <コマンド> <オプション>...

<コマンド>(アーカイブコマンドと呼びます)は以下の二つを指定することができます。

アーカイブファイルの活用例としてサンプルスクリプトやプログラムが用意されています。 その内容についてはサンプルプログラム/スクリプトを参照ください。 また、アーカイブファイルの構成については出力ファイル、ファイルに格納されているデータ形式の詳細については、ファイル形式を参照ください。

7.1.1 環境構築

7.1.1.1 インストール

長期アーカイブ機能を利用するには、事前にJavaをインストールする必要があります。対応するバージョンは以下のとおりです。

長期アーカイブ機能のインストールはクライアントパッケージのインストールを通して行うことができます。クライアントパッケージには、以下が含まれます。

アーカイブツールは、コマンド形式でユーザ要求(store/print)を受け付け、必要に応じてアーカイブエンジンに処理を依頼します。

利用するアーカイブコマンドの種類によって、クライアントパッケージをインストールする対象が異なります。

7.1.1.2 ファイル構成

クライアントパッケージをインストールした際に作成されるディレクトリの中で、長期アーカイブに関連したディレクトリは以下のとおりです。

/var/lib/gridstore/          # GridDBクライアントのホームディレクトリです
    archive/                 # 長期アーカイブのベースディレクトリです
        conf/                # インストーラにより設定ファイルが配置されます
        data/                # storeコマンドの結果が出力されます
        tmp/                 # storeコマンドが作業ディレクトリとして利用します
    log/                     # アーカイブツールのログが出力されます

各ディレクトリには以下のファイルが配置されます。

7.1.2 初期設定

長期アーカイブツールを使うための準備は以下のとおりです。

7.1.2.1 期限解放コンテナの設定

  1. データ設計を行う際、アーカイブ対象とするデータを決定します
  2. GridDB上のコンテナ、テーブル設計を行う際、アーカイブ対象のデータを格納するためのコンテナを決定します
  3. GridDB上の物理設計を行う際に、コンテナ毎に期限解放機能の設定について検討します

【メモ】

7.1.2.2 自動削除の無効化

長期アーカイブ機能を利用するためにはGridDBサーバを起動する前に、コールドデータを自動的に削除せず、内部に蓄積されるモードに設定する必要があります。 そのために、ノード定義ファイル(gs_node.json)の /dataStore/autoExpire をfalseに指定してください。 この設定は、GridDBクラスタの構成ノード毎に、全ノードに対して行わなくてはいけません。

【メモ】

7.1.2.3 長期アーカイブツールの設定

プロパティファイル形式の設定ファイル(/var/lib/gridstore/archive/conf/gs_archive.properties)でアーカイブツールの設定を行います。 設定内容には、ツールを利用するためには事前に設定が必須となっている項目と、任意に設定できる項目があります。

設定項目の詳細については設定ファイルを参照ください。

7.1.3 storeコマンド

7.1.3.1 処理の流れ

ユーザがstoreコマンドを実行すると、GridDBクラスタの各ノードとコマンドを実行したクライアントマシンで以下の処理が行われます。

  1. GridDBクラスタの各ノードでの処理
  1. storeコマンドを実行したクライアントマシンでの処理
長期アーカイブのシステム構成
長期アーカイブのシステム構成

7.1.3.2 実行手順

storeコマンドはコールドデータのアーカイブファイルへの保存とGridDB内からの削除を実行します。 その実行中にGridDBクラスタ構成が変化(パーティションが移動)するとエラー終了してしまいます。 クラスタが再構成されることを極力抑止するために、以下の手順で実行することをお願いします。

  1. GridDBクラスタの自律的データ配置の無効化
  1. storeコマンド実行

  2. GridDBクラスタの自律的データ配置の有効化

gs_loadbalanceの詳細についてはクラスタの自律的データ配置の設定を参照ください。

【メモ】

【例】

storeコマンドは、GridDBクラスタの各ノード上でのコールドデータのファイルへの保存、クライアントマシン(storeコマンドを実行したマシン)への保存ファイルの収集の二段階で処理を実行します(処理の流れ)。処理対象のGridDBクラスタが複数ノードから構成されている場合には、前半の各ノード上での処理を並列実行させることができます(--parallelオプション)。例えば、以下では、storeコマンドは2ノードずつノード上の処理を並列実行します。

# 並列実行の指定例
% gs_archive store -u admin/admin --parallel 2

storeコマンドのオプション仕様の詳細は、storeコマンドのオプション仕様を参照ください。

7.1.3.3 出力ファイル

storeコマンドを実行すると、以下の二種類のファイルが作成されます。

アーカイブファイルの内部には、以下の二種類のファイルがペアとなって包含されています。

コンテナ/テーブル内で、同時にコールドデータとなったデータ範囲が一つのロウデータファイルに格納されます。

アーカイブファイルとカタログファイル
アーカイブファイルとカタログファイル

アーカイブファイルは一回のstoreコマンドの実行で、一つ、または、複数個作成されます。

カタログファイルは、storeコマンドの実行で一つだけ作成されます。 カタログファイルにはコールドデータのデータ範囲(データベース名、コンテナ名、期限解放キーの開始と終了)とアーカイブファイル、ロウデータファイル、メタデータファイルとの対応関係が記述されています。 カタログファイルの内容については、カタログファイルを参照ください。

アーカイブファイルとカタログファイルは、storeコマンドの出力ディレクトリ(アーカイブディレクトリと呼び、デフォルトでは/var/lib/gridstore/archive/data)の下に作成されます。 storeコマンドは実行の度に、アーカイブディレクトリに実行日時(UTC時間)を表すディレクトリを作成し、その下に実行結果であるアーカイブファイルとカタログファイルを作成します。 なお、実行日時は、storeコマンドを起動したクライアントマシンの日時ではなく、GridDBクラスタのノード(の中の一番遅れている時計)で取得した日時になっています。 この日時以前にコールドデータとなったデータが保存対象となります。

実行日時に限らず、長期アーカイブツールでは、ディレクトリ名やファイル名の中に現れる日時(UTC時間)は以下の形式になっています。

アーカイブファイルとカタログファイルの名前は以下の形式です。

アーカイブディレクトリ、アーカイブファイル、カタログファイルの名前の例を以下に示します。

【出力ファイルの配置例】

# カタログファイルとアーカイブファイルの出力例(UTC時間で2018年8月1日4時に実行)
/var/lib/gridstore/archive/data/   # アーカイブディレクトリ
    20180801040000000Z/
        20180801040000000Z_0001.tar    # アーカイブファイル
        20180801040000000Z_0002.tar    # アーカイブファイル
        20180801040000000Z_0003.tar    # アーカイブファイル
        20180801040000000Z_0004.tar    # アーカイブファイル
        20180801040000000Z_0005.tar    # アーカイブファイル
        20180801040000000Z_catalog.json  # カタログファイル

ロウデータファイルとメタデータファイルは、以下のファイルパス形式でアーカイブファイルに包含されています。

アーカイブファイルに含まれているロウデータファイルとメタデータファイルの例は以下のとおりです。

【例】

7.1.4 printコマンド

printコマンドはアーカイブディレクトリの下に保存されたコールドデータの一覧を表示します。 アーカイブディレクトリの下のファイルをスキャンした結果を表示しているので、GridDBクラスタとの接続は行いません。 printコマンドはstoreコマンドを実行したクライアントマシン上で実行してください。

表示する項目は以下のとおりです。

項目名 内容
container データベース名.コンテナ名
startTime ロウデータファイルに含まれるデータ(期限解放キー)の開始日時
endTime ロウデータファイルに含まれるデータ(期限解放キー)の終了日時
archiveFile アーカイブファイルのパス情報
metaFile メタデータファイルのパス情報(アーカイブファイル内の相対パス)
rowFile ロウデータファイルのパス情報(アーカイブファイル内の相対パス)

以下に、printコマンドの実行例を示します。

# printコマンドの表示例
% gs_archive print
container=public.ExpRow_Time_NoPart_-./=
startTime=2017-07-08T15:00:00.000Z
endTime=2017-08-07T14:59:59.999Z
archiveFile=/var/lib/gridstore/archive/data/20180801040000000Z/20180801040000000Z_0001.tar
metaFile=20180801040000000Z/00068/20180603145959999Z/00068_0000000000000002_20180603145959999Z.json
rowFile=20180801040000000Z/00068/20180603145959999Z/00068_0000000000000002_20180603145959999Z.avro
#---------------------------
container=public.ExpRow_Time_NoPart_0001
startTime=2017-07-08T15:00:00.000Z
endTime=2017-08-07T14:59:59.999Z
archiveFile=/var/lib/gridstore/archive/data/20180801040000000Z/20180801040000000Z_0001.tar
metaFile=20180801040000000Z/00073/20180603145959999Z/00073_0000000000000000_20180603145959999Z.json
rowFile=20180801040000000Z/00073/20180603145959999Z/00073_0000000000000000_20180603145959999Z.avro
#---------------------------
...

表示内容を絞り込むために、データベース名、コンテナ名、データ(コンテナ/テーブルのロウキー、もしくは、パーティションキーに格納された日時)の範囲指定を指定することができます。以下のprintコマンドの実行例では、「public」データベースで「ExpRow_Time_NoPart_001」コンテナのコールドデータ情報が入っているロウデータファイル、メタデータファイル、およびそれらのファイルを含むアーカイブファイルのパス一覧を出力しています。

# データベースpublicのコンテナExpRow_Time_NoPart_0001に絞り込んだ例
% gs_archive print --db public --container ExpRow_Time_NoPart_0001
container=public.ExpRow_Time_NoPart_0001
startTime=2017-07-08T15:00:00.000Z
endTime=2017-08-07T14:59:59.999Z
archiveFile=/var/lib/gridstore/archive/data/20180801040016000Z/20180801040016000Z_0001.tar
metaFile=20180801040016000Z/00073/20180603145959999Z/00073_0000000000000000_20180603145959999Z.json
rowFile=20180801040016000Z/00073/20180603145959999Z/00073_0000000000000000_20180603145959999Z.avro
#---------------------------
container=public.ExpRow_Time_NoPart_0001
startTime=2017-08-07T15:00:00.000Z
endTime=2017-09-06T14:59:59.999Z
archiveFile=/var/lib/gridstore/archive/data/20180801040016000Z/20180801040016000Z_0001.tar
metaFile=20180801040016000Z/00073/20180703145959999Z/00073_0000000000000000_20180703145959999Z.json
rowFile=20180801040016000Z/00073/20180703145959999Z/00073_0000000000000000_20180703145959999Z.avro
#---------------------------

printコマンドによるコールドデータの一覧は端末に表示すると同時に、その結果をファイルにCSV形式(タブ区切り)で出力することができます。

# 表示結果をExpRow_Time_NoPart_0001.csvにも出力した例
% gs_archive print --db public --container ExpRow_Time_NoPart_0001 --output ExpRow_Time_NoPart_0001.csv
...
% cat ExpRow_Time_NoPart_0001.csv
public.ExpRow_Time_NoPart_0001  2017-07-08T15:00:00.000Z        2017-08-07T14:59:59.999Z        /var/lib/gridstore/archive/data/20180801040000000Z/20180801040000000Z_0001.tar 20180801040000000Z/00073/20180603145959999Z/00073_0000000000000000_20180603145959999Z.json     20180801040016000Z/00073/20180603145959999Z/00073_0000000000000000_20180603145959999Z.avro
public.ExpRow_Time_NoPart_0001  2017-08-07T15:00:00.000Z        2017-09-06T14:59:59.999Z        /var/lib/gridstore/archive/data/20180801040000000Z/20180801040000000Z_0001.tar 20180801040000000Z/00073/20180703145959999Z/00073_0000000000000000_20180703145959999Z.json     20180801040016000Z/00073/20180703145959999Z/00073_0000000000000000_20180703145959999Z.avro

printコマンドのオプション仕様の詳細は、printコマンドのオプション仕様を参照ください。

また、メタデータファイル、ロウデータファイルに格納されているデータ形式の詳細については、ファイル形式を参照ください。

7.1.5 サンプルプログラム/スクリプト

アーカイブコマンド(Print)で特定したアーカイブファイルの活用をサポートするためのサンプルを提供します。

サンプルプログラムは、次のディレクトリにあります。

/usr/griddb/sample/ja/archive

7.2 コマンド/オプション仕様

【メモ】

7.3 設定ファイル

/var/lib/gridstore/archive/conf/gs_archive.propertiesで以下を設定できます

パラメータ 必須 デフォルト値 説明
mode 必須 MULTICAST 接続方式を指定します
MULTICAST :マルチキャスト方式
FIXED_LIST:固定リスト方式
PROVIDER :プロバイダ方式
clusterName 必須 クラスタ構成を組む(gs_joinclusterコマンドで指定)際に指定しているクラスタ名を指定します
hostAddress mode=MULTICASTの場合に必須 239.0.0.1 gs_cluster.jsonの/transaction/notificationAddressを指定します
hostPort mode=MULTICASTの場合に必須 31999 gs_cluster.jsonの/transaction/notificationPortを指定します
notificationMember mode=FIXED_LISTの場合に必須 固定リスト方式を使用して構成されたクラスタに接続する場合に、クラスタノードのアドレス・ポートのリストを指定します
notificationProvider.url mode=PROVIDERの場合に必須 gs_cluster.jsonの/cluster/notificationProvider/urlを指定します
jdbcAddress GridDB AEでmode=MULTICASTの場合に必須 239.0.0.1 gs_cluster.jsonの/sql/notificationAddressを指定します
jdbcPort GridDB AEでmode=MULTICASTの場合に必須 41999 gs_cluster.jsonの/sql/notificationPortを指定します
sqlMember GridDB AEでmode=FIXED_LISTの場合に必須 固定リスト方式を使用して構成されたクラスタに接続する場合に、JDBC用のクラスタノードのアドレス・ポートのリストを指定します
ospassword 必須 OSユーザ"gsadm"のパスワードを指定します
sshPort 22 SSHのポート番号を指定します
archiveDataPath archive/data アーカイブファイル保存ディレクトリへのパスを指定します
archiveTempPath archive/tmp アーカイブツールの作業ディレクトリへのパスを指定します
tarMaxFileSize 100 tarファイルの最大ファイルサイズ(MB)を指定します(1MB~1024MB)
tarMaxFileCount 10000 tarファイル内の最大ロウデータファイル数を指定します10~10000)
storeMemoryLimit 1024MB GridDBアーカイブエンジンのストアメモリ上限を単位と一緒に指定します

7.4 ファイル形式

7.4.1 ロウデータファイル

ロウデータファイルはApache Avro形式で出力されます。Apache Avro形式のファイルはヘッダとデータブロックから構成されます。

外部システムとの連携などの用途で、ロウデータファイルを読み込むアプリケーションを作成する場合は、ヘッダからコンテナのスキーマ情報を取得し、そのスキーマ情報を基にしてデータブロックのデータを読み込んでください。

【メモ】

 

7.4.2 メタデータファイル

メタデータファイルには、アーカイブファイルをGridDBにインポートするために必要な情報を出力します。 基本的にエクスポートインポートツールgs_export / gs_import のメタデータファイルと同じ形式です。 gs_import / gs_exportのメタデータファイルの共通パラメータとテーブルパーティショニング情報は、同じ形式で出力されます。

次のオブジェクトは、インポートで復元すると問題が発生する可能性があるため、復元対象外の情報としてメタデータに出力します。もしこれらの復元が必要な場合は、メタデータファイルの適切な箇所に記載を移動してください。

アーカイブの実行情報もメタデータファイルに出力されます。

タグ名       項目       説明 
補助情報
schemaInformation
  expirationType 期限解放種別 PARTITION / ROW (ROWのときは省略可)
  expirationTime 有効期限の長さ 整数値 (期限解放種別がPARTITIONのときに出力される情報)
  expirationTimeUnit 有効期限の長さの単位 DAY / HOUR / MINUTE / SECOND / MILLISECOND (期限解放種別がPARTITIONのときに出力される情報)
  triggerInfoSet トリガ設定 設定されていたときだけ出力される
    eventName トリガ名 トリガ名
    notificationType 通知方法 JMS / REST
    targetEvents 監視対象操作 PUT / DELETE
    targetColumnNames カラム名
    notificationURI 通知先URI
    JmsDestinationType デスティネーション種別 topic / queue
    JmsDestinationName デスティネーション名
    JmsUser ユーザ名
    JmsPassword パスワード
  timeSeriesProperties 時系列コンテナ情報 時系列コンテナのときだけ出力される
    compressionMethod NO / SS / HI
    compressionWindowSize ロウの最大期間 整数値
    compressionWindowSizeUnit 時間情報のENUM DAY / HOUR / MINUTE / SECOND / MILLISECOND
    expirationDivisionCount 期限解放の分割数 期限解放の分割数
    rowExpirationElapsedTime 経過期間 整数値
    rowExpirationTimeUnit 時間情報のENUM DAY / HOUR / MINUTE / SECOND / MILLISECOND
  compressionInfoSet カラム毎の圧縮設定 設定されていたときだけ出力される
    columnName カラム名
    compressionType 絶対値/相対値 RELATIVE / ABSOLUTE
    width 絶対誤差あり。間引き圧縮パラメータ 浮動小数点数
    rate 相対誤差あり。間引き圧縮パラメータ 浮動小数点数
    span 相対誤差あり。間引き圧縮パラメータ 浮動小数点数
期限解放データ詳細情報
archiveInfo
  nodeAddr 取得したノードアドレス 文字列
  nodePort 取得したノードのRESTポート 整数値
  databaseId データベースID 文字列
  containerId コンテナID 文字列
  dataPartitionId データパーティションID 整数値
  rowIndexOID GridDBアーカイブエンジン用情報 文字列
  mvccIndexOID GridDBアーカイブエンジン用情報 文字列
  initSchemaStatus GridDBアーカイブエンジン用情報 文字列
  schemaVersion スキーマバージョン 整数値
  expirationType 期限解放種別 PARTITION / ROW
  startTime データブロックの開始日時 文字列
  endTime データブロックの終了日時 文字列
  expiredTime 期限解放された日時 文字列
  erasableTime 削除可能となった日時 文字列

7.4.3 カタログファイル

アーカイブファイルに包含されたロウデータファイルとメタデータファイルに関する情報をJSON形式で記載しています。

タグ名       項目       説明 
rootDirectory アーカイブファイルの保存用ディレクトリ アーカイブファイル出力時に指定されていた保存用ディレクトリです。デフォルトは/var/lib/gridstore/archive/dataで、設定ファイルのパラメータarchiveDataPathで変更できます。
files アーカイブファイル一覧
  database データベース名
  container コンテナ名
  startTime データ開始日時 データ開始日時(startTime)と次のデータ終了日時(endTime)の組み合わせで、同時に削除可能となって一つのファイル(ロウデータファイル)に保存された期限解放キーのデータの範囲を示します。あくまでデータの範囲を示すもので、データ開始日時とデータ終了日時に一致するデータが存在するとは限りません。
  endTime データ終了日時
  archiveFile アーカイブファイル名 startTimeとendTimeで示されたデータ範囲のロウデータファイル(および、それに付随するメタデータファイル)を含んでいるtar形式のアーカイブファイルの名前を示します。
  subdirectory 相対ディレクトリ データ範囲に該当するロウデータファイルとメタデータファイルが配置された相対ディレクトリを示します。
  metaFile メタデータファイル名 メタデータファイルの名前を示します。
  rowDataFiles ロウデータファイル名一覧 ロウデータファイルの名前を示します。将来の拡張に備えて、複数指定できるように配列になっていますが、現バージョン(4.1.0)ではロウデータファイルは一つだけです。
startTime 全データ横断のデータ開始日時 本ファイルに含まれる中で最も早いデータ開始日時です。
endTime 全データ横断のデータ終了日時 本ファイルに含まれる中で最も遅いデータ終了日時です。