OSM의 새로운 파일 형식 GOB, PBF보다 30% 작고 가져오기는 5배 빠름

6 days ago 8

  • 전 세계적으로 방대한 OpenStreetMap(OSM) 데이터셋을 더 빠르고 효율적으로 다루기 위해 새로운 파일 형식 GOB(Geo-Object Bundle) 이 도입됨
  • GOB는 기존 Geo-Object Library(GOL) 의 압축 버전으로, 인덱스를 제거해 크기를 줄이고 처리 속도를 높인 형태
  • GOB 파일은 PBF보다 평균 30% 작고, GOL보다 절반 수준이며, 가져오기 속도는 5배 빠름
  • 타일 기반 구조로 지역 단위 추출과 병합이 용이하며, 저사양 시스템에서도 빠른 로딩이 가능
  • 메타데이터와 수정 이력은 포함되지 않지만, 배포·보관용 형식으로 높은 활용성을 보임

GOB 형식의 개요

  • GOB는 OpenStreetMap(OSM) 데이터를 더 작고 빠르게 다루기 위한 새로운 파일 형식임
    • 기존의 GOL보다 절반 크기, PBF보다 평균 30% 더 작음
    • 대용량 데이터 처리를 위한 압축 및 타일 기반 구조를 채택함
  • GOB는 GeoDesk Toolkit의 일부로, 오픈소스로 제공됨
    • GOL Tool 2.1 버전에서 GOB 저장(save)과 불러오기(load) 기능을 지원함

성능 및 효율성

  • GOB는 기존 포맷보다 가져오기 속도가 5배 빠름
    • PBF로부터 GOL을 구축하는 데 걸리는 시간 대비 크게 단축됨
    • 최신 시스템에서는 행성 전체 데이터를 3분 만에 불러옴
    • 32GB 이하 메모리에서도 효율적으로 작동하여 구형 노트북에서도 한 시간 내 처리 가능
  • 예시 크기 비교 (PBF → GOB):
    • Planet: 65.4GB → 46.0GB (-29.7%)
    • France: 4.54GB → 2.84GB (-36.3%)
    • Japan: 2.13GB → 1.34GB (-37.0%)
  • 데이터가 조밀할수록 압축 효율이 높으며, 브라질·중국 등 데이터 밀도가 낮은 지역은 약 23% 감소 수준임

구조와 활용 방식

  • GOB는 타일 단위로 구성되어 있으며, 지도 타일 렌더러의 줌 구조(zoom 6~12)를 모방함
    • 행성 전체 데이터는 약 6만 개 타일로 구성됨
    • 지역별 데이터를 파일 복사 수준의 속도로 추출 및 병합 가능함
  • 이러한 구조 덕분에 지역별 보관, 배포, 부분 갱신이 간편함

제약 사항

  • GOB는 메타데이터(편집자 이름, 타임스탬프 등)와 수정 이력을 포함하지 않음
    • 편집 용도가 아닌 배포 및 아카이브 목적에 최적화됨
    • 최신 데이터를 유지하려면 새 GOB 스냅샷을 재생성해야 함

사용 방법

  • GOB는 GOL Tool 2.1 이상에서 사용 가능함
    • gol save <gol-file> [<gob-file>] 명령으로 GOL을 GOB로 변환
    • gol load <gol-file> [<gob-file>] 명령으로 GOB를 GOL에 불러오기
  • --area 옵션을 사용하면 GeoJSON, WKT, 좌표로 특정 지역만 내보내기/불러오기 가능함
    • 예시: gol save world bodensee -a 9.55,47.4,8.78,47.66,9.01,47.88,9.85,47.58,9.82,47.46

제공 데이터셋 및 향후 계획

  • Open Planet Data에서 매일 업데이트되는 전 세계 GOB 파일(50GB 미만) 을 배포함
  • 개발자는 추가 개선을 진행 중:
    • zlib 외 다른 압축 알고리듬 실험 (zstd는 유의미한 개선 없음)
    • 향후 gol load가 URL에서 직접 GOB를 불러오는 기능을 추가 예정
    • 이를 통해 “다운로드와 병행한 백그라운드 빌드”로 실질적 0분 임포트 목표를 달성하려 함

Read Entire Article