データベースモデル
Platformがデータをどこにどのような形式で格納するかをまとめたドキュメントです。バックアップ範囲の決定、直接照会、または保存期間の調整を行う際に参照してください。
Platformはデータの性質に応じてストレージを使い分けています(polyglot persistence)。どのデータがどこにあるかを把握していないと、不完全なバックアップになります。
| ストレージ | 格納内容 | 規模 |
|---|---|---|
| PostgreSQL | マスタデータ · 設定 · トランザクション | pp スキーマ 169テーブル + 現場アプリ pf スキーマ |
Aster TSDB (pp) | 時系列 · イベント · 集計 · KPI | 125テーブル |
Iceberg (spark.plantpulse) | 長期保存 · 分析 | 1テーブル |
PostgreSQL — マスタと設定
リレーショナルデータが格納されます。スキーマ変更は Flyway が管理し、履歴は flyway_schema_history_v2 に残ります。
テーブル名は mm_ 接頭辞(master/meta)が159個と大半を占めます。グループごとの全リストは 以下 にあります。
| グループ | 代表テーブル |
|---|---|
| 組織·資産 | mm_asset_tree · mm_enterprise · mm_site · mm_area · mm_line · mm_equipment · mm_asset_class |
| 収集定義 | mm_opc · mm_tag · mm_point · mm_edge |
| アラーム | mm_alarm · mm_alarm_config · mm_alarm_delivery · mm_alarm_suppressed · mm_alarm_shelve · mm_alarm_out_of_service |
| 生産 | mm_order · mm_order_oee · mm_product · mm_shift · mm_calendar |
| 整備·故障 | mm_maintenance_order · mm_maintenance_plan · mm_failure_record |
| 担当者·取引先 | mm_employee · mm_customer |
| セキュリティ | mm_security · mm_token · user_login · user_login_session |
関係 — 資産と収集
mm_asset_tree 1つのテーブルに 企業(E) → サイト(S) → 区域(A) → ライン(L) → 設備(M) の5つの階層がすべて含まれます。
名称・説明・設備分類・運転状態・外部番号など、すべての階層が持つ列はツリーのみに存在し、mm_site に site_name が、mm_enterprise に enterprise_name はありません。各階層固有の列は1:1拡張テーブル(mm_enterprise · mm_site · mm_area · mm_line · mm_equipment)にあり、ツリーの行を削除すると同時に削除されます。
| ルール | 制約方法 |
|---|---|
| 親は直上の階層であり、区域以下は同じサイトであること | 外部キー fk_mm_asset_tree_parent · fk_mm_asset_tree_parent_site |
ルートは企業のみであり、企業に site_id は存在せず、サイトの site_id は自己参照であること | CHECK制約 |
階層ごとのID形式 — 正式接頭辞または旧 ASSET_ | CHECK chk_asset_id |
| 設備のみが受け取る列(ワークオーダー・整備・カレンダーなど) | mm_equipment を指す外部キー |
位置パスはビュー mv_path が提供します — ノードごとに asset_type · depth(企業 0 〜 設備 4) · enterprise_id · site_id · area_id · line_id · equipment_id · id_path · name_path。
関係 — アラーム
関係 — 生産とユーザー
上記関係の多くは外部キーで宣言されています。 そのため、参照されている行を直接 DELETE すると拒否されるか、テーブルの設定に応じて同時に削除されます(ON DELETE CASCADE)。削除操作は画面または API で行ってください。
全テーブル (169)
| グループ | テーブル |
|---|---|
| 組織·資産 (29) | mm_area · mm_area_function · mm_asset_class · mm_asset_class_iso_class · mm_asset_connection_status · mm_asset_document · mm_asset_health_status · mm_asset_layout · mm_asset_plan_generation · mm_asset_plan_segment · mm_asset_qr_access_audit · mm_asset_qr_token · mm_asset_relation · mm_asset_standard_profile · mm_asset_status · mm_asset_tree · mm_asset_type · mm_canvas · mm_enterprise · mm_equipment · mm_equipment_criticality · mm_image · mm_line · mm_line_kind · mm_operational_status · mm_site · mm_stats_site · mm_stats_system · mm_status |
| 収集定義 (11) | mm_edge · mm_edge_status_snapshot · mm_opc · mm_opc_connection_status · mm_opc_latency_status · mm_opc_protocol · mm_opc_source_type · mm_point · mm_tag · mm_tag_java_type · mm_tag_type |
| アラーム (16) | mm_alarm · mm_alarm_cause · mm_alarm_config · mm_alarm_config_recipient · mm_alarm_config_revision · mm_alarm_delay · mm_alarm_delivery · mm_alarm_label_revision · mm_alarm_notification · mm_alarm_out_of_service · mm_alarm_resolution_guide · mm_alarm_resolution_guide_cause · mm_alarm_shelve · mm_alarm_signal_gap · mm_alarm_suppressed · mm_tag_alarm_recipient |
| 設備命令·ステートメント (13) | mm_asset_command · mm_asset_command_revision · mm_asset_statement · mm_asset_statement_deployment · mm_asset_statement_plugin · mm_asset_statement_revision · mm_command_area · mm_command_execution · mm_command_execution_event · mm_command_switch · mm_command_switch_audit · mm_event · mm_event_attributes |
| 生産 (35) | mm_calendar · mm_calendar_revision · mm_calendar_type · mm_defect_cause · mm_defect_record · mm_defect_record_revision · mm_holiday · mm_order · mm_order_ems · mm_order_flow · mm_order_note · mm_order_oee · mm_order_pause · mm_order_performance · mm_order_progress · mm_order_quantity_correction · mm_order_quantity_correction_revision · mm_order_ram · mm_order_revision · mm_process_segment · mm_process_segment_asset · mm_product · mm_product_route · mm_product_standard_profile · mm_production_target · mm_shift · mm_shift_override · mm_shift_pattern · mm_shift_pattern_asset · mm_shift_pattern_slot · mm_shift_schedule_revision · mm_shift_slot_break · mm_stop_cause · mm_stop_reason · mm_stop_reason_revision |
| 整備·故障 (25) | mm_failure_record · mm_failure_record_change · mm_failure_record_label · mm_failure_record_link · mm_fault_cause · mm_fault_cause_alarm_cause · mm_fault_code_map · mm_fault_code_map_history · mm_iso_detection_method · mm_iso_equipment_category · mm_iso_equipment_class · mm_iso_failure_cause · mm_iso_failure_mechanism · mm_iso_failure_mode · mm_iso_failure_mode_class · mm_iso_maintainable_item · mm_iso_maintainable_item_class · mm_iso_maintenance_activity · mm_maintenance_attachment · mm_maintenance_code_map · mm_maintenance_code_map_history · mm_maintenance_order · mm_maintenance_order_revision · mm_maintenance_plan · mm_maintenance_plan_revision |
| 担当者·取引先 (10) | mm_app_account · mm_app_account_audit · mm_app_account_revision · mm_app_account_scope · mm_customer · mm_employee · mm_employee_audit · mm_employee_emergency_contact · mm_employee_photo · mm_employee_qualification |
| フロー (5) | mm_flow · mm_flow_health_status · mm_flow_link · mm_flow_node · mm_flow_snapshot |
| セキュリティ (3) | mm_security · mm_security_asset_scope · mm_token |
| その他 (22) | mm_blob · mm_config · mm_diagnostic_code · mm_diagnostic_state · mm_metadata · mm_query_history · mm_reference_external_key · mm_reference_revision · mm_reference_text · mm_report · mm_schedule_fire_log · mm_schedule_watermark · dual · edge_active_flows · flow_snapshots · flyway_schema_history_v2 · metadata · node_component · user_login · user_login_session · version · version_history |
Aster TSDB — 時系列とイベント
キースペースは pp です。125個のテーブルが2つの系統に分かれます。
| 接頭辞 | 個数 | 意味 |
|---|---|---|
tm_ | 117 | 時系列·集計·統計·KPI (time series measurement) |
ts_ | 8 | 汎用時系列エンジン内部構造 |
tm_ は対象別にさらに分かれます — タグ 32 · KPI 26 · 資産 17 · システム 6 · モニタ 6 · オプション 5 · OPC 5 · サイト 3 · blob 3 など。
コアテーブル — tm_tag_point
生の収集値が格納される場所です。他のタグテーブルは概ねこの派生です。
PRIMARY KEY (tag_id, timestamp)
WITH CLUSTERING ORDER BY (timestamp DESC)
| 属性 | 値 |
|---|---|
| パーティションキー | tag_id — タグ1つがパーティション1つ |
| クラスタリング | timestamp 降順 — 最新から読み込むのが基本 |
| 基本TTL | 315360000 秒 = 3650日(10年) — 値の正本は storage.tag.point.ttl です (保存期間設定) |
| Compaction | UnifiedCompactionStrategy (Cassandra 5.0+ 機能) |
| インデックス | asset_id · opc_id に SAI(Storage Attached Index) |
site_id · asset_id · line_id · area_id · opc_id · tag_name · type は static です。タグ1つ(=パーティション1つ)の中で値が同一であるため、パーティションあたり1回のみ保存します。
データポイントごとに繰り返し保存しないため、容量を大幅に削減できます。
派生テーブル — 事前計算
Aster TSDB は照会時の集計コストが高いため、書き込み時に事前作成します。 そのためテーブル数が多くなっています。
| 系統 | 例 |
|---|---|
| 集計 | tm_tag_point_aggregation_{1,5,10,30}_minutes · _1_hours |
| サンプリング | tm_tag_point_sampling_{10,30}_seconds · _{1,5,10,30}_minutes · _1_hours |
| カウント | tm_tag_point_count · _by_date · _by_opc · _by_site |
| 品質·検証 | tm_tag_point_validation · _by_timestamp · _validation_count |
| AI分析 | tm_tag_point_anomalies · _forecasts |
| スナップショット·保存 | tm_tag_point_snapshot · tm_tag_point_archive |
アラームも同様の手法です — tm_tag_alarm と _count · _count_by_date · _count_by_opc · _count_by_site · _duration · _on。
生データから再生成されません。削除すると、その区間の画面・レポートが空になり、復旧はバックアップのみとなります。
KPIテーブル — OEE · RAM · EMS
設備KPI(OEE · RAM · EMS)は tm_kpi_ で始まる26個のテーブルに格納されます — ドメイン別に tm_kpi_oee_* · tm_kpi_ram_* · tm_kpi_ems_* です。計算ジョブが約10秒ごとに設備別値を計算して書き込みます。
tm_asset_oee* · tm_asset_ram* · tm_asset_ems* テーブルは存在しませんKPIは現在、新しいテーブルにのみ書き込まれます。旧名称で照会していたクエリ・レポートは、新しいテーブルとパーティションキーに合わせて修正する必要があります。キーが変更されたため、旧条件をそのまま適用するとエラーではなく空の結果が返される可能性が高く、その空の結果は「データなし」と区別されません。
テーブルは形式に応じて4つの系統に分かれます。
| 系統 | 名称 | プライマリキー | 1行が意味すること |
|---|---|---|---|
| 現在値 | tm_kpi_*_current | (asset_id) | 設備の 現在 の値 — 設備あたり1行、計算のたびに上書き |
| オーダー別 | tm_kpi_oee_order · tm_kpi_ems_order | (order_id) | 作業オーダー1つの値 — オーダーあたり1行、オーダー終了後も保持 |
| 履歴 | tm_kpi_*_history など | ((asset_id, day), timestamp) | 計算1回(ティック)の値 — UTC日付別 パーティション、最新が先頭 |
| ロールアップ | tm_kpi_*_rollup | ((scope, scope_id, day), timestamp) | ライン · 区域 · サイト · 企業単位で集計した値 |
- バケットはUTC日付です。
dayはyyyymmdd,monthはyyyymmの整数であり、行のtimestampを UTC とした日付です — サイト現地時間の日付ではありません。そのため、現地の1日は UTCバケット 2つ にまたがります(韓国時間 00:00 〜 08:59 の行は前日のUTCバケットに存在します)。 - 稀に発生するデータは月バケットです — 設備状態(
tm_kpi_oee_status), 故障(tm_kpi_ram_failure·_failure_rollup), 燃料(tm_kpi_ems_fuel)はmonthでパーティションを分けます。 - ロールアップの
scopeはLINE·AREA·SITE·ENTERPRISEのいずれかであり、scope_idはその ライン·区域·サイト の ID です。企業単位はscope_id = 'ALL'です。 - 原因カウンター
tm_kpi_oee_defect_cause·_stop_cause·_fault_causeは 不良 · 停止 · 故障原因別の日累計です。プライマリキーは((asset_id, month), date, cause_code)です。 - 履歴行はオーダー累計です。
*_historyの1行は、そのティックまでのオーダー全体値(稼働時間 · 生産数 · エネルギーなど)です。行を加算しないでください — 期間値が必要な場合は、オーダー別の最終行または*_order行を読み取ります。 - 設備状態の持続時間は保存しません。
tm_kpi_oee_statusは状態が 変更された時刻 のみを格納し、一つの状態は次の行の時刻まで継続します。月の境界で切断せず、バケットを連続して読み取ってください。
asset_id と day(または month)を すべて 条件に含めます。ALLOW FILTERING は使用しないでください。期間を照会する場合は、期間をUTC日付リストに展開し、バケットごとに1回ずつ 読み取ります。
SELECT timestamp, oee, availability, performance, quality
FROM pp.tm_kpi_oee_history
WHERE asset_id = 'EQUIPMENT_000001' AND day = 20260925
AND timestamp >= '2026-09-25 00:00:00+0000';
サイトに属する設備別の値が必要な場合は、PostgreSQLから設備リストを取得し、設備ごとに tm_kpi_*_current を読み取ります。サイト合計はロールアップテーブルの scope = 'SITE' です。
保存期間は5年です。 バケットを持つテーブル(履歴 · イベント · 状態 · ロールアップなど)の基本TTLは 157680000 秒(1825日)であり、値の正本は storage.asset.kpi.ttl(なければ storage.asset.standard.ttl) です(保存期間設定)。現在値(*_current) · オーダー別(*_order) · 原因カウンターにはTTLがありません。
履歴性テーブル14個は毎日 Iceberg の tw_kpi_* に転記されるため、5年が経過して Aster TSDB から削除された後も Iceberg で照会可能です。
分割方法 — パーティションキーが照会軸となる
Aster TSDB にはJOINがありません。問合せ方法に応じてテーブルを個別に作成します — そのためテーブル数が125個に及びます。同一データが複数のテーブルに異なるパーティションキーで格納されているのは、重複ではなく設計です。
| パーティションキー形式 | 用途 | 例 |
|---|---|---|
(tag_id) + timestamp | 単一タグの時間軸照会 | tm_tag_point |
(asset_id, date, hour) + timestamp | 単一設備の1日·1時間区間 | tm_asset_data |
(asset_id, day) + timestamp | 単一設備のUTC1日KPI | tm_kpi_oee_history |
(scope, scope_id, day) + timestamp | ライン·区域·サイト·企業のUTC1日KPI | tm_kpi_oee_rollup |
(site_id, year, month, day) | サイト単位集計 | tm_site_summary |
(id) のみ | 現在値 — 時間軸がないため期限切れもない | *_count, *_last_update, tm_kpi_*_current |
全テーブル (125)
タグ · ポイント (32)
| テーブル | プライマリキー (パーティション · クラスタリング) |
|---|---|
tm_tag_alarm | tag_id, alarm_seq |
tm_tag_alarm_count | `` |
tm_tag_alarm_count_by_date | tag_id, year, month, day, hour, minute |
tm_tag_alarm_count_by_opc | (opc_id, tag_id), year, month, day, hour, minute |
tm_tag_alarm_count_by_site | (site_id, tag_id), year, month, day, hour, minute |
tm_tag_alarm_duration | alarm_config_id, alarm_seq |
tm_tag_alarm_on | `` |
tm_tag_point | tag_id, timestamp |
tm_tag_point_aggregation_10_minutes | tag_id, timestamp |
tm_tag_point_aggregation_1_hours | tag_id, timestamp |
tm_tag_point_aggregation_1_minutes | tag_id, timestamp |
tm_tag_point_aggregation_30_minutes | tag_id, timestamp |
tm_tag_point_aggregation_5_minutes | tag_id, timestamp |
tm_tag_point_anomalies | job_id, timestamp, tag_id |
tm_tag_point_archive | (site_id, year, month, day, hour), minute, second, tuuid |
tm_tag_point_count | `` |
tm_tag_point_count_by_date | tag_id, year, month, day, hour, minute |
tm_tag_point_count_by_opc | `` |
tm_tag_point_count_by_site | `` |
tm_tag_point_forecasts | job_id, timestamp, tag_id |
tm_tag_point_map | (year, month, day, hour, minute), timestamp |
tm_tag_point_sampling_10_minutes | tag_id, timestamp |
tm_tag_point_sampling_10_seconds | tag_id, timestamp |
tm_tag_point_sampling_1_hours | tag_id, timestamp |
tm_tag_point_sampling_1_minutes | tag_id, timestamp |
tm_tag_point_sampling_30_minutes | tag_id, timestamp |
tm_tag_point_sampling_30_seconds | tag_id, timestamp |
tm_tag_point_sampling_5_minutes | tag_id, timestamp |
tm_tag_point_snapshot | (site_id, snapshot_id, date), timestamp |
tm_tag_point_validation | tag_id, timestamp |
tm_tag_point_validation_by_timestamp | yyyymmdd, timestamp, tag_id |
tm_tag_point_validation_count | tag_id, year, month, day, hour, minute |
資産 (17)
| テーブル | プライマリキー (パーティション · クラスタリング) |
|---|---|
tm_asset_aggregation | asset_id, timestamp |
tm_asset_alarm | asset_id, alarm_seq |
tm_asset_command | asset_id, timestamp |
tm_asset_connection_status | asset_id, timestamp |
tm_asset_context | asset_id, timestamp |
tm_asset_data | (asset_id, date, hour), timestamp |
tm_asset_data_anomalies | job_id, timestamp, asset_id, tag_id |
tm_asset_data_based_day | asset_id, timestamp |
tm_asset_data_based_hour | asset_id, timestamp |
tm_asset_data_based_minute | (asset_id, date), timestamp |
tm_asset_data_based_second | (asset_id, date, hour), timestamp |
tm_asset_data_based_timestamp | (asset_id, date, hour), timestamp |
tm_asset_data_forecasts | job_id, timestamp, asset_id, tag_id |
tm_asset_event | asset_id, timestamp |
tm_asset_health_status | asset_id, timestamp |
tm_asset_status | asset_id, timestamp |
tm_asset_timeline | asset_id, timestamp, timeline_group, timeline_type |
KPI — OEE · RAM · EMS (26)
バケット列の「日」は day(UTC yyyymmdd)、「月」は month(UTC yyyymm) です。
原因カウンターの month は date から取得します。読み方は KPIテーブル 節を参照してください。
| テーブル | プライマリキー (パーティション · クラスタリング) | バケット | 格納内容 |
|---|---|---|---|
tm_kpi_oee_current | asset_id | — | 設備の現在 OEE |
tm_kpi_oee_order | order_id | — | 作業オーダー1つの OEE |
tm_kpi_oee_history | (asset_id, day), timestamp | 日 | 計算ティックごとの OEE(オーダー累計) |
tm_kpi_oee_event | (asset_id, day), timestamp | 日 | OEE入力イベント |
tm_kpi_oee_count | (asset_id, day), timestamp | 日 | 良品 · 不良生産数(ロット · シリアル) |
tm_kpi_oee_rolling | (asset_id, day), timestamp | 日 | 直近 N分 OEE |
tm_kpi_oee_rollup | (scope, scope_id, day), timestamp | 日 | ライン · 区域 · サイト · 企業 OEE |
tm_kpi_oee_status | (asset_id, month), timestamp | 月 | 設備状態変更 |
tm_kpi_oee_status_current | asset_id | — | 設備の直前状態 |
tm_kpi_oee_defect_cause | (asset_id, month), date, cause_code | 月 | 不良原因日累計(カウンター) |
tm_kpi_oee_stop_cause | (asset_id, month), date, cause_code | 月 | 停止原因日累計(カウンター) |
tm_kpi_oee_fault_cause | (asset_id, month), date, cause_code | 月 | 故障原因日累計(カウンター) |
tm_kpi_ram_current | asset_id | — | 設備の現在 RAM |
tm_kpi_ram_history | (asset_id, day), timestamp | 日 | 計算ティックごとの RAM(オーダー累計) |
tm_kpi_ram_failure | (asset_id, month), timestamp | 月 | 故障開始 · 終了イベント |
tm_kpi_ram_failure_rollup | (scope, scope_id, month), timestamp, asset_id | 月 | ライン · 区域 · サイト故障イベント |
tm_kpi_ram_rolling | (asset_id, day), timestamp | 日 | 直近 N分 RAM |
tm_kpi_ram_rollup | (scope, scope_id, day), timestamp | 日 | ライン · 区域 · サイト · 企業 RAM |
tm_kpi_ems_current | asset_id | — | 設備の現在 EMS |
tm_kpi_ems_order | order_id | — | 作業オーダー1つの EMS |
tm_kpi_ems_history | (asset_id, day), timestamp | 日 | 計算ティックごとの EMS(オーダー累計) |
tm_kpi_ems_power | (asset_id, day), timestamp | 日 | 電力計量イベント(kW · kWh) |
tm_kpi_ems_power_rollup | (scope, scope_id, day), timestamp, asset_id | 日 | ライン · 区域 · サイト電力イベント |
tm_kpi_ems_fuel | (asset_id, month), timestamp | 月 | 燃料計量イベント(スコープ 1) |
tm_kpi_ems_rolling | (asset_id, day), timestamp | 日 | 直近 N分 EMS |
tm_kpi_ems_rollup | (scope, scope_id, day), timestamp | 日 | ライン · 区域 · サイト · 企業 EMS |
収集 · サイト (8)
| テーブル | プライマリキー (パーティション · クラスタリング) |
|---|---|
tm_opc_connection_latency_history | opc_id, timestamp |
tm_opc_connection_status_history | opc_id, timestamp |
tm_opc_point_count | `` |
tm_opc_point_count_by_date | opc_id, year, month, day, hour, minute |
tm_opc_point_last_update | `` |
tm_site_status | site_id, timestamp |
tm_site_summary | site_id, year, month, day, hour, minute |
tm_site_summary_total | `` |
モニタリング (13)
| テーブル | プライマリキー (パーティション · クラスタリング) |
|---|---|
tm_monitor_cep_metrics | type, timestamp |
tm_monitor_cluster_metrics | type, ip, timestamp |
tm_monitor_cluster_status | type, ip, timestamp |
tm_monitor_nodes | type, ip |
tm_monitor_platform_health | type, ip, timestamp |
tm_monitor_platform_status | type, ip, timestamp |
tm_system_health_status | app_name, timestamp |
tm_system_log | app_name, timestamp, seq |
tm_system_log_count | (app_name, level), year, month, day, hour, minute |
tm_system_log_hourly | app_name, bucket_start, instance_id, level |
tm_system_properties | property, timestamp |
tm_system_start_date | `` |
tm_system_trend | year, month, day, hour |
バッチ · 監査 (4)
| テーブル | プライマリキー (パーティション · クラスタリング) |
|---|---|
tm_batch_audit | yyyymmdd, timestamp, id |
tm_batch_job_run | yyyymmdd, timestamp, id |
tm_warehouse_audit | yyyymmdd, timestamp, id |
tm_warehouse_storage_usage_daily | year_bucket, day, table_name |
時系列エンジン (TSE専用) (8)
| テーブル | プライマリキー (パーティション · クラスタリング) |
|---|---|
ts_data_points | key, column1 |
ts_row_key_index | key, column1 |
ts_row_key_time_index | metric, table_name, row_time |
ts_row_keys | (metric, table_name, row_time), data_type, tags |
ts_service_index | (service, service_key), key |
ts_spec | spec_type, name |
ts_string_index | key, column1 |
ts_tag_indexed_row_keys | (metric, table_name, row_time, single_tag_pair), data_type, tag_collection_hash, tags |
その他 (17)
| テーブル | プライマリキー (パーティション · クラスタリング) |
|---|---|
tm_blob | blob_id, timestamp |
tm_blob_count_and_size | `` |
tm_blob_object | `` |
tm_data_gateway_count | `` |
tm_data_gateway_log | lang, timestamp |
tm_database_size | keyspace_name, date |
tm_diagnostic | year, timestamp |
tm_diagnostic_count | year, level |
tm_domain_change_history | (domain_type, object_id), timestamp |
tm_edge_status | `` |
tm_option_eql_listener_result | `` |
tm_option_eql_statement | `` |
tm_option_eql_statement_history | stmt_name, timestamp |
tm_option_job_trigger_history | job_name, context_fire_time |
tm_option_listener_push_cache | url, timestamp |
tm_pipeline_exception_history | bucket, timestamp, type, object_id |
tm_trigger_result | trigger_id, timestamp |
Iceberg — 長期保存
アーカイブテーブル(tm_tag_point_archive, 基本365日)のデータをオブジェクトストレージに蓄積して分析します。
生テーブルから直接移行するのではなく、アーカイブを経由します。
| 項目 | 値 |
|---|---|
| カタログ | spark.plantpulse |
| テーブル | tw_tag_point — タグ時系列。tw_asset_* · tw_blob など tw_ で始まる9種類があります。KPIは tw_kpi_* 14種類が別にあります |
| パーティション | site_id → year → month → day |
| フォーマット | Iceberg v2 (row-level delete 対応) |
| 圧縮 | Zstandard |
| 実行 | Spark SQL |
KPIアーカイブ — tw_kpi_*
KPIはアーカイブテーブルを経由せず、tm_kpi_* から直接 移行されます。毎日早朝に前日分をコピーするため、直近データは Aster TSDB と Iceberg の両方に存在し、5年(TTL)が経過したデータは Iceberg にのみ残ります。Iceberg側は削除しません。パーティションは year → month → day (月バケットテーブルは year → month) です。
| Aster TSDB | Iceberg |
|---|---|
tm_kpi_oee_history · _event · _count · _status · _rollup | tw_kpi_oee_history · _event · _count · _status · _rollup |
tm_kpi_ram_history · _failure · _rollup · _failure_rollup | tw_kpi_ram_history · _failure · _rollup · _failure_rollup |
tm_kpi_ems_history · _power · _fuel · _rollup · _power_rollup | tw_kpi_ems_history · _power · _fuel · _rollup · _power_rollup |
現在値(*_current · oee_status_current) · オーダー別(*_order) · 直近 N分(*_rolling) · 原因カウンター(*_cause)は移行しません — 履歴ではないか、履歴から再計算可能な値であるためです。
Aster TSDB には存在しません。Iceberg側を照会してください → 分析階層。 テーブル別の保存期間は データ保存期間(TTL)設定 にあります。
バックアップで漏れやすい点
3つのストレージがそれぞれバックアップ対象となります。PostgreSQLのみをバックアップして安心する場合がありますが、それでは時系列データが丸ごと抜け落ちます。
| ストレージ | 漏れた場合の影響 |
|---|---|
| PostgreSQL | 設備·タグ定義、ユーザー、ダッシュボードが消失する |
| Aster TSDB | 保存期間内の時系列データが消失する |
| Iceberg / オブジェクトストレージ | 長期履歴が消失する |
手順は バックアップおよび復旧 を参照してください。
関連ドキュメント
- バックアップおよび復旧
- ストレージ階層 · 分析階層
- ドメインIDルール —
SITE_·EQUIPMENT_·TAG_接頭辞 - データベース管理 — 設置·運用