Skip to content

メタテーブルとは

メタテーブル

GridDBの管理用のメタデータを参照することができるテーブル群です。

メモ

  • メタテーブルは、参照のみ可能です。データの登録や削除はできません。
  • SELECTで参照する際、メタテーブル名は引用符"で囲んでください。

注意

  • メタテーブルのスキーマは将来のバージョンで変更される可能性があります。

テーブル情報

テーブルに関する情報を取得できます。

テーブル名

#tables

スキーマ

列名内容
DATABASE_NAMEデータベース名STRING
TABLE_NAMEテーブル名STRING
TABLE_OPTIONAL_TYPEテーブル種別
COLLECTION / TIMESERIES
STRING
DATA_AFFINITYデータアフィニティSTRING
EXPIRATION_TIME期限解放経過時間INTEGER
EXPIRATION_TIME_UNIT期限解放経過単位STRING
EXPIRATION_DIVISION_COUNT期限解放分割数STRING
COMPRESSION_METHOD時系列圧縮方式STRING
COMPRESSION_WINDOW_SIZE時系列圧縮間引き最大期間INTEGER
COMPRESSION_WINDOW_SIZE_UNIT時系列圧縮間引き最大期間単位STRING
PARTITION_TYPEパーティショニング種別STRING
PARTITION_COLUMNパーティショニングキーSTRING
PARTITION_INTERVAL_VALUE分割値(インターバル/インターバルハッシュの場合)INTEGER
PARTITION_INTERVAL_UNIT分割単位(インターバル/インターバルハッシュの場合)STRING
PARTITION_DIVISION_COUNT分割数(ハッシュの場合)INTEGER
SUBPARTITION_TYPEパーティショニング種別
(インターバルハッシュの場合にHASH)
STRING
SUBPARTITION_COLUMNパーティショニングキー
(インターバルハッシュの場合)
STRING
SUBPARTITION_INTERVAL_VALUE分割値INTEGER
SUBPARTITION_INTERVAL_UNIT分割単位STRING
SUBPARTITION_DIVISION_COUNT分割数
(インターバルハッシュの場合)
INTEGER
EXPIRATION_TYPE期限解放種別
ROW / PARTITION
STRING

索引情報

索引に関する情報を取得できます。

テーブル名

#index_info

スキーマ

列名内容
DATABASE_NAMEデータベース名STRING
TABLE_NAMEテーブル名STRING
INDEX_NAME索引名STRING
INDEX_TYPE索引種別
TREE / HASH / SPATIAL
STRING
ORDINAL_POSITION索引内のカラム列順序(1からの連番)SHORT
COLUMN_NAME列名STRING

パーティショニング情報

パーティショニングされたテーブルの内部コンテナ(データパーティション)に関する情報を取得することができます。

テーブル名

#table_partitions

スキーマ

列名内容
DATABASE_NAMEデータベース名STRING
TABLE_NAMEパーティショニングされたテーブルの名前STRING
PARTITION_BOUNDARY_VALUEデータパーティションの下限値STRING

仕様

  • ロウ1件がひとつのデータパーティションの情報を表します。
    • 例えば、分割数128のハッシュパーティショニングテーブルの場合、TABLE_NAMEにテーブル名を指定して検索するとロウが128個表示されます。
  • 上記の列以外にも複数の列が表示されます。
  • 下限値でソートする場合、対象のパーティショニングキーの型に合わせてキャストする必要があります。

  • データパーティションの数を確認する

    sh
    SELECT COUNT(*) FROM "#table_partitions" WHERE TABLE_NAME='myIntervalPartition';
    
    COUNT(*)
    -----------------------------------
     8703
  • データパーティションの下限値を確認する

    sh
    SELECT PARTITION_BOUNDARY_VALUE FROM "#table_partitions" WHERE TABLE_NAME='myIntervalPartition'
    ORDER BY PARTITION_BOUNDARY_VALUE;
    
    PARTITION_BOUNDARY_VALUE
    -----------------------------------
    2016-10-30T10:00:00Z
    2017-01-29T10:00:00Z
            :
  • インターバルパーティショニングのテーブル「myIntervalPartition2」(パーティショニングキーの型:INTEGER、分割基準値 20000)のデータパーティションの下限値一覧を確認する

    sh
    SELECT CAST(PARTITION_BOUNDARY_VALUE AS INTEGER) V FROM "#table_partitions"
    WHERE TABLE_NAME='myIntervalPartition2' ORDER BY V;
    
    PARTITION_BOUNDARY_VALUE
    -----------------------------------
    -5000
    15000
    35000
    55000
      :

ビュー情報

ビューに関する情報を取得できます。

テーブル名

#views

スキーマ

列名内容
DATABASE_NAMEデータベース名STRING
VIEW_NAMEビュー名STRING
VIEW_DEFINITIONビュー定義文字列STRING

実行中SQL情報

実行中のSQL(クエリまたはジョブ)に関する情報を取得できます。

テーブル名

#sqls

スキーマ

列名内容
DATABASE_NAMEデータベース名STRING
NODE_ADDRESS処理実行中のノードのアドレス(system)STRING
NODE_PORT処理実行中のノードのポート(system)INTEGER
START_TIME処理開始時刻TIMESTAMP
APPLICATION_NAMEアプリケーション名STRING
SQLクエリ文字列STRING
QUERY_IDクエリIDSTRING
JOB_IDジョブIDSTRING

実行中イベント情報

実行中のイベントに関する情報を取得できます。

テーブル名

#events

スキーマ

列名内容
NODE_ADDRESS処理実行中のノードのアドレス(system)STRING
NODE_PORT処理実行中のノードのポート(system)INTEGER
START_TIME処理開始時刻TIMESTAMP
APPLICATION_NAMEアプリケーション名STRING
SERVICE_TYPEサービス種別(SQL/TRANSACTION/CHECKPOINT/SYNC)STRING
EVENT_TYPEイベント種別(PUT/CP_START/SYNC_START など)STRING
WORKER_INDEXワーカーのスレッド番号INTEGER
CLUSTER_PARTITION_INDEXクラスタパーティション番号INTEGER

コネクション情報

接続中のコネクションに関する情報を取得できます。

テーブル名

#sockets

スキーマ

列名内容
SERVICE_TYPEサービス種別(SQL/TRANSACTION)STRING
SOCKET_TYPEソケット種別STRING
NODE_ADDRESS接続元ノードのアドレス(ノード視点)STRING
NODE_PORT接続元ノードのポート(ノード視点)INTEGER
REMOTE_ADDRESS接続先ノードのアドレス(ノード視点)STRING
REMOTE_PORT接続先ノードのポート(ノード視点)INTEGER
APPLICATION_NAMEアプリケーション名STRING
CREATION_TIMEソケット生成時刻TIMESTAMP
DISPATCHING_EVENT_COUNTイベントハンドリングの要求を開始した総回数LONG
SENDING_EVENT_COUNTイベント送信を開始した総回数LONG

ソケット種別は次の通り。

説明
SERVERサーバ間同士のTCP接続
CLIENTクライアントとのTCP接続
MULTICASTマルチキャストソケット
NULL接続中など現時点で不明の場合

クライアントとのTCP接続(ソケット種別:CLIENT)の場合に限り、そのコネクションが 実行待ちかどうかを判別することができます。

具体的には、DISPATCHING_EVENT_COUNTの方がSENDING_EVENT_COUNTより大きい場合、 実行待ち状態のタイミングが存在した可能性が比較的高いと判定できます。

sh
SELECT CREATION_TIME, NODE_ADDRESS, NODE_PORT, APPLICATION_NAME FROM "#sockets"
WHERE SOCKET_TYPE='CLIENT' AND DISPATCHING_EVENT_COUNT > SENDING_EVENT_COUNT;

CREATION_TIME             NODE_ADDRESS   NODE_PORT  APPLICATION_NAME
--------------------------------------------------------------------
2019-03-27T11:30:57.147Z  192.168.56.71  20001      myapp
2019-03-27T11:36:37.352Z  192.168.56.71  20001      myapp
          :