Merge pull request 'chore(report): 디지털잔재정리 문서 폐기 + 리포트 .QV 7개 keep 재분류' (#4) from chore/report-keep-qv-and-supersede-cleanup into main
This commit was merged in pull request #4.
This commit is contained in:
@@ -1,8 +1,31 @@
|
||||
# 작업지시: hc900.history_table 디지털 상태점 잔재 정리
|
||||
|
||||
> 다른 LLM/작업자가 이 문서만으로 실행할 수 있도록 작성. 2026-06-09 기준.
|
||||
> ⛔ **SUPERSEDED — 실행 금지 (2026-06-18 검증으로 폐기).**
|
||||
> 이 문서의 삭제 절차(§2·§3)를 **실행하지 말 것.** 작성 시점(2026-06-09) 이후 P0/P2
|
||||
> 셀프서비스 리포트가 추가되면서 전제가 무효가 되었다.
|
||||
>
|
||||
> **2026-06-18 실측 분석 결과** — `archive_enabled=FALSE` 삭제대상(약 2천만 행)의 구성:
|
||||
> | 속성 | 행수 | 숫자비율 | 정체 |
|
||||
> |---|---|---|---|
|
||||
> | `.QV` | 5.45M | 95% | **적산 totalizer — 리포트 production_total/mass_balance_closure가 history_table에서 직접 읽음** |
|
||||
> | `.HZ`/`.HZSET` | 8.88M | 100% | 펌프 주파수 |
|
||||
> | `.PV` | 2.62M | 100% | 공정 측정값 |
|
||||
> | `.SP`/`.OP`/`.LSET` | 3.03M | 100% | 설정·출력·리미트 |
|
||||
>
|
||||
> - 삭제대상에 **디지털 상태점(state 라벨/비숫자) 행은 0개** — 원래 목표였던 디지털 잔재는
|
||||
> 이미 정리 완료 상태다(history_table에 남아있지 않음).
|
||||
> - 남은 비-archive는 잔재가 아니라 **루프 내부 파라미터 + 적산값**이며, 특히 `.QV`는
|
||||
> 리포트 기본 소스(`history_table`)에서 메트릭이 의존한다. **삭제 시 과거 일/월/연 리포트가 깨진다.**
|
||||
> - 후속 조치(완료): 리포트 의존 `.QV` 7개(`FIQ-6115/6215/8115/9115/9215/10115/10215.QV`)가
|
||||
> register-map 누락으로 keep에서 빠져 있어 `archive_enabled=TRUE`로 재분류 →
|
||||
> **[`scripts/sql/report_keep_qv_tags.sql`](../scripts/sql/report_keep_qv_tags.sql)** (멱등, map 재빌드 후 재적용).
|
||||
> 디지털 잔재 정리 자체는 완료로 종결.
|
||||
>
|
||||
> 아래 원문은 이력 보존용으로만 남긴다.
|
||||
|
||||
## 목적
|
||||
---
|
||||
|
||||
## 목적 (원문 — 폐기됨)
|
||||
|
||||
`hc900.history_table`에는 **디지털 상태점**(예: `AG-3202`, `C3601_RUN`, `CH-5601` —
|
||||
`{0 | L-STOP | }` 형태, state 라벨 보유)의 과거 이력 약 **15만 행**이 잘못 쌓여 있다.
|
||||
|
||||
22
scripts/sql/report_keep_qv_tags.sql
Normal file
22
scripts/sql/report_keep_qv_tags.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- 리포트 의존 적산(.QV) 태그를 archive_enabled=TRUE(keep)로 분류.
|
||||
-- 배경: SteamFlow 적산 FIQ-*.QV 7개가 register-map(Sinam xlsx)에 .QV 속성이 없어
|
||||
-- hc900_map_master에서 누락 → archive 기준 "삭제대상"으로 오분류.
|
||||
-- energy_intensity_qv 등 메트릭이 history_table에서 직접 읽는 ~2.36M행이 위험했음.
|
||||
-- 멱등: 이미 있으면 archive_enabled만 보장. realtime_enabled/is_active=FALSE(폴링 부작용 0).
|
||||
-- 적용: docker exec -i iiot-timescaledb psql -U postgres -d iiot_platform -f - < scripts/sql/report_keep_qv_tags.sql
|
||||
-- ※ map 재빌드(build_register_map.py) 후 재적용 필요. 근본 해결은 빌더가 FIQ-*.QV를 포함하는 것.
|
||||
|
||||
INSERT INTO hc900.hc900_map_master
|
||||
(tagname, hc900_tag, modbus_addr, data_type, access, is_active, controller_id, realtime_enabled, archive_enabled)
|
||||
SELECT replace(p.tagname,'.PV','.QV'), replace(p.tagname,'.PV','.QV'), 0, 'float32', 'R',
|
||||
false, p.controller_id, false, true
|
||||
FROM hc900.hc900_map_master p
|
||||
WHERE p.tagname IN ('FIQ-6115.PV','FIQ-6215.PV','FIQ-8115.PV','FIQ-9115.PV','FIQ-9215.PV','FIQ-10115.PV','FIQ-10215.PV')
|
||||
AND NOT EXISTS (SELECT 1 FROM hc900.hc900_map_master q
|
||||
WHERE q.tagname = replace(p.tagname,'.PV','.QV') AND q.controller_id = p.controller_id);
|
||||
|
||||
-- 이미 존재하지만 미분류인 경우 보정(멱등)
|
||||
UPDATE hc900.hc900_map_master
|
||||
SET archive_enabled = true
|
||||
WHERE tagname IN ('FIQ-6115.QV','FIQ-6215.QV','FIQ-8115.QV','FIQ-9115.QV','FIQ-9215.QV','FIQ-10115.QV','FIQ-10215.QV')
|
||||
AND NOT archive_enabled;
|
||||
Reference in New Issue
Block a user