해양 AIS 데이터 분산 공간 데이터웨어하우스 DIPAAL
초록
본 논문은 전 세계 해양 자동식별시스템(AIS) 데이터를 정제·변환·저장하기 위한 모듈형 ETL 파이프라인과, PostgreSQL 기반의 분산 공간 데이터웨어하우스를 설계·구현한다. 셀 기반 래스터 표현과 kd‑tree 기반 공간 파티셔닝을 활용해 셀·히트맵 쿼리를 고속화하고, Citus 샤딩을 통해 5배 워커 확장 시 354 %~1164 %의 성능 향상을 입증한다. 현재 312 백만 km의 선박 궤적과 80억 행을 보유하고 있다.
상세 분석
DIPAAL은 AIS 데이터의 특성(대량, 잡음, 비정형)을 고려해 5개의 독립 모듈로 구성된 ETL 파이프라인을 제시한다. 파일 다운로드 → 데이터 클리닝 → 궤적 생성 → 롤업(셀 변환) 순으로 진행되며, 각 단계는 워커 노드에서 병렬 실행이 가능하도록 설계돼 데이터 파이프라인 전체의 I/O와 CPU 부하를 균등하게 분산한다. 특히 클리닝 단계에서는 MMSI 오류, 비현실적 선박 크기, 육지 상 위치 등을 제거해 후속 분석의 정확성을 확보한다.
데이터웨어하우스는 PostgreSQL에 Citus, PostGIS, MobilityDB 확장을 적용해 시공간 데이터와 분산 저장을 동시에 지원한다. Citus의 샤딩 메커니즘을 이용해 관계를 물리적 샤드로 나누고, 동일한 분배 키를 가진 행을 같은 워커에 배치함으로써 데이터 로컬리티를 극대화한다. 이는 셀 기반 쿼리에서 조인 비용을 최소화하고, 비동기 히트맵 생성 시 워커 간 네트워크 트래픽을 크게 감소시킨다.
셀 표현은 5 km × 5 km 영역을 5,000 m, 1,000 m, 200 m, 50 m 네 가지 해상도로 세분화한 그리드이며, 각 셀은 트래젝터리의 진입·이탈 시점, 평균 속도(SOG), 코스 변동(ΔCOG) 등을 측정값으로 저장한다. 히트맵은 이러한 셀 데이터를 래스터 형태로 집계해 5 km × 5 km 셀당 10,000개의 픽셀(50 m 해상도)까지 표현한다. 이중 집계(pre‑aggregation) 구조는 파라미터화된 히트맵 생성 시 실시간 연산량을 크게 줄여준다.
공간 파티셔닝은 연간 AIS 데이터를 기반으로 kd‑tree 알고리즘을 적용해 영역을 재귀적으로 분할한다. 큰 파티션은 여러 워커에 걸쳐 균등히 배분되고, 작은 파티션은 셀·히트맵 데이터가 한 워커에 집중되도록 설계돼, 셀 쿼리 시 전체 데이터 스캔이 아닌 해당 파티션만 탐색하도록 만든다. 실험 결과, 셀 기반 쿼리는 트래젝터리 기반 쿼리보다 평균 3배 이상 빠르며, 워커 수를 1→5로 늘렸을 때 셀·히트맵 분석 모두 3.5배~11.6배의 스케일‑업을 달성했다.
강점으로는 모듈형 ETL, 오픈소스 스택 기반의 비용 효율성, kd‑tree 파티셔닝을 통한 데이터 로컬리티 확보, 그리고 다양한 해상도·시간 해상도의 히트맵 지원을 들 수 있다. 반면, 현재 파티션은 연간 데이터에 한정돼 계절·연도 변동에 대한 적응성이 낮으며, 셀 크기 선택이 도메인 전문가 의견에 의존해 유연성이 제한된다. 또한, PostgreSQL 기반이므로 초대규모 실시간 스트리밍(초당 수십만 메시지)에는 추가적인 스트리밍 엔진이 필요할 것으로 보인다.
댓글 및 학술 토론
Loading comments...
의견 남기기