- CollectDB 다중 신호 수집 → S&P Global AIS API 단일 수집으로 전환 - sig_src_cd + target_id 이중 식별자 → mmsi(VARCHAR) 단일 식별자 - t_vessel_latest_position → t_ais_position 테이블 전환 - 레거시 배치/유틸 ~30개 클래스 삭제 (VesselAggregationJobConfig, ShipKindCodeConverter 등) - AisTargetCacheManager 기반 캐시 이중 구조 (최신위치 + 트랙 버퍼) - CacheBasedVesselTrackDataReader + CacheBasedTrackJobListener 신규 추가 - VesselStaticStepConfig: 정적정보 CDC 변경 검출 + hourly job 편승 - SignalKindCode enum: vesselType/extraInfo 기반 선종 자동 분류 - WebSocket/STOMP 전체 mmsi 전환 (StompTrackStreamingService ~40곳) - 모니터링/성능 최적화 코드 mmsi 기반 전환 - DataSource 설정 통합 (snpdb 단일 DB) - AreaBoundaryCache Polygon→Geometry 캐스트 수정 (MULTIPOLYGON 지원) - ConcurrentHashMap 적용 (VesselTrackStepConfig 동시성 버그 수정) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
1.8 KiB
PL/PgSQL
60 lines
1.8 KiB
PL/PgSQL
-- PostGIS를 signal 스키마에 설치하는 스크립트
|
|
-- 10.29.17.90 서버의 mpcdb2 데이터베이스에서 실행
|
|
|
|
-- 방법 1: signal 스키마에 PostGIS extension 생성 (권장)
|
|
-- 이미 public에 설치되어 있다면, signal 스키마에 함수들을 복사하는 방식으로 접근
|
|
|
|
-- 현재 PostGIS 상태 확인
|
|
SELECT extname, extversion, nspname
|
|
FROM pg_extension e
|
|
JOIN pg_namespace n ON e.extnamespace = n.oid
|
|
WHERE extname LIKE 'post%';
|
|
|
|
-- 옵션 1: signal 스키마에 PostGIS 함수 wrapper 생성
|
|
-- (public 스키마의 함수를 호출하는 wrapper)
|
|
CREATE OR REPLACE FUNCTION signal.ST_GeomFromText(text)
|
|
RETURNS geometry
|
|
AS $$
|
|
SELECT public.ST_GeomFromText($1);
|
|
$$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE OR REPLACE FUNCTION signal.ST_GeomFromText(text, integer)
|
|
RETURNS geometry
|
|
AS $$
|
|
SELECT public.ST_GeomFromText($1, $2);
|
|
$$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE OR REPLACE FUNCTION signal.ST_Length(geometry)
|
|
RETURNS double precision
|
|
AS $$
|
|
SELECT public.ST_Length($1);
|
|
$$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE OR REPLACE FUNCTION signal.ST_MakeLine(geometry[])
|
|
RETURNS geometry
|
|
AS $$
|
|
SELECT public.ST_MakeLine($1);
|
|
$$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
-- 자주 사용하는 다른 함수들도 추가
|
|
CREATE OR REPLACE FUNCTION signal.ST_X(geometry)
|
|
RETURNS double precision
|
|
AS $$
|
|
SELECT public.ST_X($1);
|
|
$$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE OR REPLACE FUNCTION signal.ST_Y(geometry)
|
|
RETURNS double precision
|
|
AS $$
|
|
SELECT public.ST_Y($1);
|
|
$$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE OR REPLACE FUNCTION signal.ST_M(geometry)
|
|
RETURNS double precision
|
|
AS $$
|
|
SELECT public.ST_M($1);
|
|
$$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
-- 검증
|
|
SELECT signal.ST_GeomFromText('POINT(126.0 37.0)', 4326);
|