본문으로 건너뛰기

GeoBAND

오픈소스기반 공간빅데이터 웹시각화 솔루션(GeoBAND)

㈜포스웨이브의 GeoBAND는 공간빅데이터의 문제를 해결하고자 만들어진 여러 오픈소스를 통합하여 확장개발한 오픈소스기반 공간빅데이터 패키지입니다.

  • 검증된 훌륭한 오픈소스 라이브러리들로 구축
  • 수십억의 백터 데이터의 처리 가능
  • Apache, OSGeo, Eclipse LocationTech 재단의 프로젝트를 활용, 통합하여 서비스를 제공하고 오픈소스 재단에 기여.

GeoBand_img1

전통적인 방식의 공간데이터는 RDBMS에 공간데이터를 처리할 수 있도록 확장 모듈을 사용합니다. 이와 비슷하게 빅데이터 처리 플랫폼인 Hadoop 기반에서는 Accumulo, Hbase와 같은 NoSQL 데이터 베이스를 확장하여 사용합니다. 이때 PostGIS와 같은 공간데이터를 처리하는 오픈소스로는 LocationTech 재단의 GeoMesa와 GeoWave가 있습니다.

GeoBand_img2

빅데이터를 처리하기 위해 사용되는 NoSQL 데이터베이스 중 하나인 Accumulo는 Google의 BigTable 디자인을 기반으로 key/value 구조를 가지고 있으며 Hadoop 분산파일시스템 위에 레코드를 저장합니다.

GeoBand_img3

GeoMesa와 GeoWave는 PostgreSQL의 PostGIS와 같은 형태로 Accumulo 데이터 베이스 기반으로 공간 데이터를 처리하도록 하는 오픈소스 입니다. 공간 데이터의 인덱스 방식이 다르고 분석과 시각화를 위해 지원하는 프레임워크가 다르므로 용도에 맞는 선택을 하는 것이 필요합니다.

GeoBand_img4

분석 기술 동향

다음은 빅데이터를 분석을 위한 기술 동향 입니다. 빅데이터를 분산으로 저장하고 검색하는 형태의 변화는 복잡한 프로세스를 구현하는데 제한적 입니다. 이를 해결하기 위해 MapReduce또는 Spark을 활용하여야 합니다. 하둡기반 NoSQL에 공간데이터를 처리 하기 위한 MapReduce InputFormat 인터페이스가 필요합니다. (GeoMesa와 GeoWave는 InputFormat 인터페이스를 제공합니다.) Spark은 인메모리 기반으로 분산병렬처리를 위해 InputFormat의 RDDs로 변경을 제공합니다.

GeoBand_img5

하둡의 MapReduce와 Spark의 차이는 Disk를 이용한 데이터 교환 방식을 In Memory 기반으로 처리하여 성능을 높이는데 있습니다.

GeoBand_img6

시각화 기술 동향

다음은 공간 정보의 시각화에 대한 기술 동향 입니다. 전통적인 방식에서는 서버의 데이터를 Image로 제공하거나 WKT 포멧의 문자열 데이터를 전송합니다. 이를 보다 효율적으로 전송하기 위하여 Google의 Protocol Buffer를 활용하여 Serialization한 Vector Tiles를 사용하고 빠른 렌더링을 위해 WebGL 기술을 활용합니다.

GeoBand_img7

WebGL을 활용한 대표적인 Web Map 오픈 소스로는 Mapzen의 Tangram과 Mapbox를 WebGL로 변경한 Mapbox GL등이 있습니다.

GeoBand_img8

㈜포스웨이브에서는 앞서 설명 드린 기술 트렌드의 통합과 활용을 통해 오픈소스기반 공간빅데이터 웹시각화 솔루션을 개발하였습니다.
크게 GeoServer의 확장 모듈 개발과 Web에서의 시각화를 위한 Component 개발 즉, Web상의 사용자에게 요청을 받아 GeoServer에서 Accumulo에 저장된 데이터를 Spark으로 분석하고 결과를 저장하거나 표출하는데 필요한 부분입니다.

GeoBand_img9

기존의 분석 프로세스를 인메모리 기반으로 분석이 가능하도록 여러 종류의 공간 분석 라이브러리를 확장 개발 하였습니다.

GeoBand_img10

서비스를 위한 전체적인 구조입니다. 하둡 기반의 공간 빅데이터 플랫폼 위에 Web과의 연동을 위해 GeoServer에 필요한 확장 모듈를 개발하고 성능향상을 위해 Cluster로 구성하여 서비스를 제공합니다.

GeoBand_img11

활용 예시

다음은 활용 예시 입니다. Zoom 레벨에 따라 Simplification을 적용하여, 속성값을 포함한 VectorTiles 데이터를 Mapbox GL을 활용하여 렌더링한 화면입니다.

GeoBand_img12

포인트 데이터를 WebGL을 이용하여 시각화한 화면 입니다. 서버의 연산없이 불러온 데이터로 가중치에 따른 컬러 값과 반경을 변경할 수 있는 장점이 있습니다.

GeoBand_img13

빅데이터의 분석은 시간을 많이 필요로 한 작업에 대해, GeoServer의 WPS 확장을 활용하여 Spark분석의 진행상태를 확인하는 화면입니다.

GeoBand_img14

시계열 데이터인 택시운행기록에 대해 행정구역별로 통계 분석을 하고 시각화를 한 화면입니다.

GeoBand_img14