kcg-monitoring/database/migration/005_vessel_analysis.sql
htlee feabf16114 feat: 중국어선 분석 인프라 — 허가어선 API 연동 + vessel-analysis 백엔드 + 결과 포맷 확정
- Frontend: ChnPrmShipInfo 타입 + chnPrmShip.ts 서비스 (signal-batch 허가어선 API)
- Frontend: FieldAnalysisModal fetchVesselPermit → lookupPermittedShip 교체
- Frontend: 더미 라벨 정리 (LightGBM → 규칙기반, BD-09/레이더 → STANDBY/미연동)
- Frontend: VesselAnalysisResult 인터페이스 정의 (Python 분석 결과 수신용)
- Backend: vessel-analysis REST API (Entity/Repository/Service/Controller)
- Backend: DB 마이그레이션 005 (kcg.vessel_analysis_results 테이블)
- Backend: AuthFilter 인증 예외 + CacheConfig 캐시 등록

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 11:00:16 +09:00

31 lines
982 B
SQL

CREATE TABLE IF NOT EXISTS kcg.vessel_analysis_results (
id BIGSERIAL PRIMARY KEY,
mmsi VARCHAR(15) NOT NULL,
timestamp TIMESTAMPTZ NOT NULL,
vessel_type VARCHAR(20),
confidence DOUBLE PRECISION,
fishing_pct DOUBLE PRECISION,
cluster_id INTEGER,
season VARCHAR(10),
zone VARCHAR(20),
dist_to_baseline_nm DOUBLE PRECISION,
activity_state VARCHAR(20),
ucaf_score DOUBLE PRECISION,
ucft_score DOUBLE PRECISION,
is_dark BOOLEAN DEFAULT FALSE,
gap_duration_min INTEGER,
spoofing_score DOUBLE PRECISION,
bd09_offset_m DOUBLE PRECISION,
speed_jump_count INTEGER,
cluster_size INTEGER,
is_leader BOOLEAN DEFAULT FALSE,
fleet_role VARCHAR(20),
risk_score INTEGER,
risk_level VARCHAR(20),
features JSONB,
analyzed_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_vessel_analysis_mmsi ON kcg.vessel_analysis_results(mmsi);
CREATE INDEX IF NOT EXISTS idx_vessel_analysis_timestamp ON kcg.vessel_analysis_results(timestamp DESC);