データベースモデル
ゲートウェイがデータをどこにどのような形で格納するかを整理したドキュメントです。保存期間を調整したり、ディスクが満杯になったり、直接クエリを実行したりするときに参照します。
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つのテーブルを忘れないでください → バックアップと復旧。
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_LOG | REST 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(マップ) |
| Compaction | TimeWindowCompactionStrategy、10分ウィンドウ |
ゲートウェイは「書き込み、少し読み取り、TTL で破棄する」だけです。時間ウィンドウ単位で SSTable をまとめておくと、期限切れのウィンドウを丸ごと破棄できるため、圧縮コストがほとんどかかりません。
保存期間 — 数字が2か所にあります
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 を増やす — 秒単位の収集が本当に必要なタグだけ残す |
| タグ数 | 未使用タグの自動収集をオフにする |
診断は診断と点検を参照してください。
関連ドキュメント
- バックアップと復旧 — 何を受け取るべきか
- app.properties リファレンス —
edge.ttlを含むキー - モニタリング
- ポイント検索 — 画面で時系列を照会する