メインコンテンツまでスキップ

データベースモデル

ゲートウェイがデータをどこに何の形で保存するかをまとめた文書です。保存期間を 調整したり、ディスクが満杯になったり、直接照会する必要があるときに参照します。

ゲートウェイ内にCassandraが1つあります

Edgeは自身のデータをローカルCassandra(127.0.0.1:9042、キースペース**PE)に保存します。 上位プラットフォームのCassandra(pp)とは別物**です — ゲートウェイが切断されても単独で収集を 続けるための自身のストレージです。

テーブルは11個だけで、2つのカテゴリに分かれます。

プレフィックス意味
APP_設定 — 何を収集するか
TM_時系列・運用記録 — 収集したデータとそのプロセス

APP_ — 収集設定

画面(接続 · タグ)で作成したものがそのままここに入ります。

テーブル内容
APP_OPC接続定義 — OPC_ID · 名前 · プロトコル(OPC_TYPE) · 対象IP/ポート · 収集間隔(TIMECYCLE) · 自動収集の有無
APP_TAGタグ定義 — 読み取りアドレスとデータ型
この2つが消えると収集が停止します

時系列は再度収集すればよいが、設定は人が作成したものなので復旧する方法がありません。 バックアップからこの2つのテーブルを漏らさないようにしてください → バックアップ


TM_ — 収集値と運用記録

テーブル内容
TM_TAG_POINT生の収集値 — このストレージの本体
TM_TAG_POINT_ARCHIVE保存用コピー
TM_TAG_ERRORタグ単位の収集エラー
TM_TAG_STATタグ別統計
TM_TAG_WRITE書き込み(制御)履歴
TM_OPC_STAT接続別統計
TM_PLC_PING対象設備の応答確認履歴
TM_MONITORゲートウェイのリソース・状態
TM_API_LOGREST API呼び出し記録

TM_TAG_POINT のスキーマ

PRIMARY KEY (TAG_ID, TIMESTAMP)
WITH CLUSTERING ORDER BY (TIMESTAMP DESC)
属性
パーティションキーTAG_ID — 1つのタグが1つのパーティション
クラスタリングTIMESTAMP 降順 — 最新から読み込む
カラムVALUE · QUALITY · ERROR_CODE · TYPE · ATTRIBUTE(マップ)
CompactionTimeWindowCompactionStrategy10分ウィンドウ
なぜTimeWindowなのか

ゲートウェイは「書き込み、少し読み、TTLで削除する」だけです。時間ウィンドウ単位でSSTableを まとめておけば、期限切れのウィンドウをまるごと削除でき、圧縮コストがほぼかかりません。


保存期間 — 数値が2箇所にあります

スキーマの30日が実際の値ではありません

scheme.cqldefault_time_to_live30日(2592000秒)ですが、起動時に app.properties の**edge.ttl** 値でテーブルTTLをALTER TABLE で上書きします。

出荷時のデフォルト値はedge.ttl = 60(日)なので、実際の保存期間は60日です。 スキーマファイルだけを見て30日だと判断しないでください。

変更するにはedge.ttl を修正して再起動します。

cd /opt/kopens/plantpulse-edge/bin
./config.sh --get edge.ttl
./config.sh --set edge.ttl 90
./config.sh --restart # 기동 시 ALTER TABLE 로 반영된다
減らすとすぐに削除されます

TTLを減らすと、それより古いデータは次回のcompactionで回収されます。戻せません。 ディスク容量が逼迫していて減らす場合は、減らす前に必要な期間のデータを上位プラットフォームに アップロードしたか確認してください。


ディスク容量が満杯になったとき

容量はタグ数 × 収集間隔 × 保存日数で決まります。3つのいずれかを削減する必要があります。

変更対象方法
保存日数edge.ttl を減らす(上記参照)
収集間隔接続のTIMECYCLE を増やす — 秒単位の収集が本当に必要なタグだけにする
タグ数不要なタグの自動収集をオフにする

診断については診断を参照してください。


関連文書