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

データベースモデル

ゲートウェイがデータをどこにどのような形で格納するかを整理したドキュメントです。保存期間を調整したり、ディスクが満杯になったり、直接クエリを実行したりするときに参照します。

ゲートウェイ内に 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(マップ)
CompactionTimeWindowCompactionStrategy、10分ウィンドウ
なぜ TimeWindow なのか

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


保存期間 — 数字が2か所にあります​

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

scheme.cql の default_time_to_live は30日(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 を増やす — 秒単位の収集が本当に必要なタグだけ残す
タグ数未使用タグの自動収集をオフにする

診断は診断と点検を参照してください。


関連ドキュメント​