KR20170095044A - 공간 스트림 데이터 분산 처리 시스템 및 방법 - Google Patents

공간 스트림 데이터 분산 처리 시스템 및 방법 Download PDF

Info

Publication number
KR20170095044A
KR20170095044A KR1020160016537A KR20160016537A KR20170095044A KR 20170095044 A KR20170095044 A KR 20170095044A KR 1020160016537 A KR1020160016537 A KR 1020160016537A KR 20160016537 A KR20160016537 A KR 20160016537A KR 20170095044 A KR20170095044 A KR 20170095044A
Authority
KR
South Korea
Prior art keywords
data
spatial
stream
distributed
processor
Prior art date
Application number
KR1020160016537A
Other languages
English (en)
Inventor
주인학
이강우
장인성
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160016537A priority Critical patent/KR20170095044A/ko
Publication of KR20170095044A publication Critical patent/KR20170095044A/ko

Links

Images

Classifications

    • G06F17/30545
    • G06F17/30194
    • G06F17/30286
    • G06F17/30333

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

입력된 공간 데이터에 대한 공간 색인을 생성하는 단계; 생성된 공간 색인을 기반으로 공간 데이터를 분산 저장하는 단계; 스트림 데이터를 상기 생성된 공간 색인을 기반으로 분산 저장하는 단계; 및 상기 분산 저장된 공간 데이터 및 상기 스트림 데이터를 연산하여, 사용자로부터 입력된 질의에 대한 결과를 생성하는 단계를 포함하는 공간 스트림 데이터 분산 처리 방법이 개시된다.

Description

공간 스트림 데이터 분산 처리 시스템 및 방법{SPATIAL DATA STREAM DISTRIBUTED PROCESSING SYSTEM AND METHOD}
본 발명은 공간 스트림 데이터를 분산 처리하는 기술에 관한 것으로서, 구체적으로는 분산 시스템에서 실시간으로 수집되는 공간 좌표를 포함하는 데이터와 지도 데이터를 연계하여, 공간 질의를 분산 처리하는 기술에 관한 것이다.
빅데이터의 대부분은 위치정보를 포함한다. IoT(Internet Of Things), SNS(Social Network Service), 모바일 디바이스를 포함한 다양한 비즈니스에서 생산 및 이용되는 정보의 80% 이상이 위치정보(공간정보)와 직간접적으로 관련되어 있다. 따라서 최근 빅데이터 이슈의 등장과 함께 하둡 등과 같은 분산 플랫폼에 기반하여 소셜 네트워크 서비스, 웹, 각종 사진 등에 포함된 공간정보를 사용하고 처리하기 위한 요구가 증가하고 있다. 이는 최근 빅데이터의 등장과 함께 이슈가 되고 있는 다양하고 많은 양의 데이터로부터 공간정보를 획득 및 처리하고 공간정보와 연산하여 공간정보에 기반한 다양한 분석을 고속으로 처리할 수 있다는 장점을 제공한다. 빅데이터의 대부분은 생산 주기가 매우 빠르다. 센서 네트워크(sensor network), 제조 공정 실시간 데이터, SNS 데이터와 같이 동적으로 계속하여 발생하는 데이터는 네트워크를 통해 끊임없이 흐르는 특징을 보인다. 최근에는 IoT 시대의 도래에 따라 빅데이터의 실시간 분석에 대한 니즈가 급증하고 있다. 주기적으로 이루어지는 배치(batch) 분석과 달리 실시간 분석은 데이터가 생성되는 시점에 최대한 가깝게 바로 처리하고 분석한다. 실시간 분석이 대상으로 하는 데이터는 주로 수많은 센서, 모바일 디바이스나 소셜미디어에서 생성되는 시계열(time series) 데이터와 각종 로그데이터이다. 실시간 분석을 통하여 생성되는 데이터를 바로 처리하고 분석하여 고객 행동, 센서 기록, 보안 위협, 사기 행위 등 적시에 의미가 있는 가치와 인사이트를 빠르고 정확하게 얻을 수 있다.
이러한 지속적으로 변화하는 데이터를 처리하기 위한 시스템으로 데이터 스트림 처리 시스템이 개발되었으나 빅데이터 환경에서는 빠른 데이터 생성 속도와 이에 따른 많은 데이터 양 때문에 단일 데이터 스트림 소스로부터의 수많은 질의를 처리하는 데 부하가 발생하게 되는 문제점이 있다.
그러나 공간 데이터 처리 분야에서는 실시간으로 수집되는 데이터에 대한 분석은 물론이고 지도 등 대용량 공간 데이터와 실시간 데이터를 동시에 연계하여 분석해야 하는 경우가 많다. 분산환경에서 실시간 데이터를 처리하는 기술들 및 분산환경에서 공간 데이터 처리 기술들은 많이 개발되어 왔으나 대부분은 서로간에 별도의 기술로서 개발되었고 상호 데이터 연계에 의한 분석 기술이나 방법은 미흡하였다.
본 발명의 목적은 분산환경에서 공간 스트림 데이터와 지도 데이터를 동시에 연계하여 분석하기 위하여 분산환경에서 동작하는 공간 데이터 융합처리 기술을 제공하는 것이다.
또한, 본 발명의 목적은 모바일 디바이스나 SNS 등에서 발생되면서 위치정보를 포함하고 있는 대량의 스트림 데이터를 빅데이터 분산 환경에서 위치정보에 따른 분석 및 서비스의 효율을 높이기 위하여 지도 데이터와 연계하여 검색하고 분석하는 기술을 제공하는 것이다.
또한, 본 발명의 목적은 빅데이터 분산 환경에서 공간좌표를 포함하는 대량의 스트림 데이터를 지도 등 정적인 공간 데이터와 연산하는 공간 질의를 효율적으로 처리하는 기술을 제공하는 것이다.
본 발명의 일 측면에 따르면, 입력된 공간 데이터에 대한 공간 색인을 생성하는 단계; 생성된 공간 색인을 기반으로 공간 데이터를 분산 저장하는 단계; 스트림 데이터를 상기 생성된 공간 색인을 기반으로 분산 저장하는 단계; 및 상기 분산 저장된 공간 데이터 및 상기 스트림 데이터를 연산하여, 사용자로부터 입력된 질의에 대한 결과를 생성하는 단계;를 포함하는 공간 스트림 데이터 분산 처리 방법 이 제공된다.
본 발명의 실시예에 따르면, 분산처리 환경에서 공간좌표를 포함하는 대량의 스트림 데이터를 지도 등 정적인 공간 데이터와 연산을 하여 질의에 대한 결과를 계산할 때 분산되어 스트림 데이터를 처리하는 스트림 데이터 처리기가 연산에 필요한 공간 데이터를 자신이 접근하기 빠른 데이터 영역에 미리 저장해 두어 공간 데이터를 읽기 위한 통신 비용을 최소화하여 스트림 데이터와 공간 데이터를 동시에 필요로 하는 공간질의를 효율적으로 처리하는 것이 가능하게 된다.
도 1은 본 발명의 일 실시예에 따른 공간 스트림 데이터 분산 처리 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 공간 스트림 데이터 분산 처리 방법의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 공간 스트림 데이터 분산 처리의 예를 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
최근 기존의 데이터 관리 기술로 처리할 수 없을 정도로 데이터의 생성 양, 주기, 형식 등이 방대한 빅데이터(big data)가 폭넓게 생산되는 빅데이터 환경이 도래하였다. 대규모 데이터를 처리하여 분석함으로써 의미있는 가치를 발견하는 빅데이터 기술에 대한 관심이 높아지고 있으며 기업들의 빅데이터 분석에 대한 투자가 활발히 이루어지는 등 빅데이터 시대로의 도입이 이루어지고 있다. 빅데이터는 기존 데이터에 비해 그 양이 너무 크기 때문에 데이터베이스 관리 시스템만으로는 데이터의 수집, 저장, 검색, 분석을 위한 처리 시간이 급증하는 문제점이 있다. 즉, 종래의 데이터베이스 관리 시스템은 지속적으로 변화하는 대량의 데이터에 대한 질의를 처리할 때 부하(overhead)가 증가하게 되어 질의에 대한 빠른 응답이 어려운 문제점이 있다. 이러한 문제점을 해결하기 위하여 빅데이터를 처리할 수 있는 기술이 많이 개발되고 있다. 빅데이터 처리 기술 중에서 대표적인 것은 대용량의 자료를 처리할 수 있는 컴퓨터 클러스터에서 동작하는 분산 응용프로그램을 지원하는 프레임워크(framework)인 하둡(Hadoop)이다. 대표적인 빅데이터 플랫폼인 하둡은 기본적으로 배치(batch) 처리를 위한 아키텍처를 가지므로 빅데이터 환경에서 스트림 데이터를 분산병렬처리하기 위한 프레임워크인 아파치 스톰(Apache Storm) 이나 아파치 스파크(Apache Spark) 등의 기술이 개발되었다. 스트림 데이터에 대한 분석을 메모리상에서 바로 수행하는 CEP(Complex Event Processing, 복합이벤트처리) 기술이 Esper CEP, Drools Fusion CEP을 통해 개발되었다. CEP 기술은 데이터의 저장 단계 전에 특정 로직을 통해 예외상황 등의 이벤트를 확인하고 처리하는 방식이며 아파치 스톰이나 아파치 스파크 등의 프레임워크와 결합하여 사용된다.
본 발명에서는 센서 네트워크, SNS 데이터, 모바일 디바이스 데이터와 같이 동적으로 매 순간 발생하는 데이터는 스트림 데이터라고 하며, 좌표나 위치정보를 포함하는 스트림 데이터를 공간 스트림 데이터라고 한다. 이하의 설명에서 혼동이 없는 한 스트림 데이터라고 함은 공간 스트림 데이터를 말하는 것으로 한다. 스트림 데이터의 소스(source)는 다양하고 이질적이므로 스트림 처리 시스템들은 이를 시스템에서 처리할 수 있는 공통의 입력 형태로 변환하는 어댑터(adaptor)를 가지고 있는 것이 일반적이나 본 발명과 직접적으로 관련되지 않으므로 도면 및 설명에서 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 공간 스트림 데이터 분산 처리 시스템의 구성도이다.
도 1을 참조하면, 공간 스트림 데이터 분산 처리 시스템은 공간 데이터 처리기(110), 분산 데이터 저장소(120), 데이터 동기화기(130), 스트림 분산기(140), 분산 스트림 처리기(150), 질의 처리기(160)을 포함할 수 있다.
공간 데이터 처리기(110)는 공간 데이터를 입력 받아, 공간 색인을 생성하고 공간 데이터를 분산한다. 구체적으로, 공간 데이터 처리기는 공간 색인 생성부 및 공간 데이터 분산부를 포함한다(미도시). 공간 색인 생성부는 입력된 공간 데이터에 대한 공간 색인을 생성한다. 여기서, 공간 데이터는 갱신주기가 길고 자주 변화하지 않는 데이터이며 주로 용량이 크며, 예컨대 수치지형도나 행정구역도 등의 전자지도 및 POI(Points Of Interests, 관심점) 데이터 등을 말한다. 또한, 공간 색인(spatial index)이란, 정수나 문자열같이 1차원적인 순서를 부여할 수 없는 2차원 이상의 공간객체를 색인하는 것으로 검색 속도를 높이기 위해 통상적인 공간 데이터를 다루는 데이터베이스 시스템에서 널리 사용하고 있다. 공간 색인 생성은 데이터가 있는 공간을 2차원 공간에서 직사각형 형태를 가지는 영역으로 나누고 이를 트리 구조로 구성하는 방법이 주로 사용되며, 대표적인 것으로 R-트리, 쿼드트리(quadtree), 그리드(grid) 등이 있다. R-트리는 공간 데이터를 효율적으로 처리하기 위한 대표적인 트리구조로서 객체에 대한 최소 경계 사각형(MBR)에 저장된다. 그 외에도 고정 타일을 가지는 그리드가 사용될 수 있으며, 그리드 기반으로 위도/경도의 좌표 2개를 하나의 값으로 표현하기 위한 코드인 GeoHash가 사용될 수 있다. 공간 데이터 분산부는 생성된 공간 색인을 기반으로 공간 데이터를 분산하여, 분산 데이터 저장소(120)에 저장되도록 한다.
분산 데이터 저장소(120)는 생성된 공간 색인을 기반으로 공간 데이터를 분산하여 저장한다. 구체적으로, 공간 데이터 분산부는 공간 데이터를 공간 색인의 셀(cell)이나 노드 단위로 나누어져 저장한다. 이때, 분산되는 공간 데이터의 단위는 분산 저장될 저장소의 물리적 개수에 따라 정해 질 수 있다. 또한, 공간 색인의 단위 개수가 저장소의 물리적 개수 보다 많은 경우에는 다 수의 셀을 묶어서 분산 저장될 단위로 지정될 수 있다. 실시예에 따라서 분산 데이터 저장소(120)는 물리적으로 분리된 별개의 서버로 구성될 수 있다.
데이터 동기화기(130)는 분산 데이터 저장소(120)에 분산되어 저장된 공간 데이터를 분산 스트림 처리기에 전송한다.
스트림 분산기(140)는 입력 스트림를 입력 받아, 공간 색인을 참조하여 다수의 분산 스트림 처리기에 분산하여 전송한다. 구체적으로, 스트림 분산기(140)는 입력 스트림을 공간 색인에 따라 분산한 스트림 데이터로 각 분산 스트림 처리기(150)에 전송한다. 이때, 입력되는 입력 데이터는 성질이 다른 다수의 데이터가 입력될 수 있다.
분산 스트림 처리기(150)는 스트림 데이터와 공간 데이터를 연산하여 서브 질의를 처리한다. 연산의 예로는 <학교에서 1km 범위내에서 발생한 SNS 게시물 갯수의 시간대별 집계를 구하라> 와 같은 것이 있다. 이러한 연산의 대부분은 지역적으로 서로 가까운 스트림 데이터와 공간 데이터에 대하여 이루어진다.
또한, 분산 스트림 처리기는 다른 분산 스트림 처리기가 갖고 있는 공간 데이터가 필요하다고 판단되면, 다른 분산 스트림 처리기에 공간 데이터를 요청할 수 있다. 분산 스트림 처리기는 서브 질의에 대한 결과를 질의 처리기에 전송한다. 또한, 데이터 동기화기(130)로부터 전송 받은 데이터를 메모리에 저장한다. 이때, 데이터가 저장되는 메모리는 메인 메모리로 구현하는 것이 바람직하며, 하드웨어 및 스프트웨어의 환경에 따라 유사한 관리 방법을 사용할 수 있다. 예를 들어, Apache Spark 에서는 이를 RDD (Resilient Distributed DataSet)를 이용할 수 있다. 또한, 분산 스트림 처리기의 데이터A, 데이터B,...와 같이 나타낸 데이터는 분산 스트림 처리기#1, 분산 스트림 처리기#2,..에 각각 대응되며, 대응하는 분산 스트림 처리기가 있는 곳의 데이터 영역에 저장된다. 입력 스트림(스트림 데이터)의 스트림 A, 스트림 B,...와 같이 나타낸 것은 SNS, 센서데이터 등 서로 다른 스트림 데이터의 종류를 나타낸 것이며, 스트림 데이터(1000)에서 스트림 #1, 스트림#2,...등으로 나타낸 것은 스트림 분산부가 소정의 기준에 따라 나누어 분산시키는 스트림 데이터이다. 이러한 스트림 #1, 스트림#2,..는 분산 스트림 처리기#1, 분산 스트림 처리기#2, ...로 각각 보내어져 처리된다.
질의 처리기(160)는 사용자로부터 질의를 입력 받고, 입력된 질의를 서브 질의로 분리하여, 다수의 분산 스트림 처리기(150)에 각각 전달하고, 분산 스트림 처리기로부터의 서브 질의에 대한 결과를 집계하여, 질의 결과를 생성하고, 생성된 질의 결과를 사용자에게 전달한다. 실시예에 따라서, 질의 처리기는 ODBC(Open DataBase Connectivity), JDBC(Java DataBase Connectivity) 등의 데이터 처리 API(Application Programming Interface)에 의하여 데이터를 조회하는 외부 응용프로그램 내지 서비스일 수 있다.
도 2는 본 발명의 일 실시예에 따른 공간 스트림 데이터 분산 처리 방법의 흐름도이다. 이하, 상기 방법은 공간 스트림 데이터 분산 처리 시스템에 의해 수행되는 것을 예시로 설명한다.
도 2를 참조하면, 단계 S201 에서, 공간 색인 생성부는 공간 데이터에 대한 공간 색인을 생성한다. 구체적으로, 공간 데이터는 스트림 데이터와 달리 계속적으로 입력되는 것이 아니며 상당한 용량을 가지므로, 공간 색인 생성부는 배치(batch)방식으로 공간 색인을 생성한다.
단계 S202에서, 공간 데이터 분산부는 공간 데이터 공간 데이터를 분산하여 분산 데이터 저장소(120)에 저장한다. 구체적으로, 공간 데이터 분산부는 공간 데이터를 공간 색인의 셀(cell)이나 노드 단위로 나누어져 저장한다. 이때, 분산되는 공간 데이터의 단위는 분산 저장될 저장소의 물리적 개수에 따라 정해 질 수 있다. 또한, 공간 색인의 단위 개수가 저장소의 물리적 개수 보다 많은 경우에는 다 수의 셀을 묶어서 분산 저장될 단위로 지정될 수 있다.
단계 S203에서, 데이터 동기화기(130)는 분산 데이터 저장소(120)의 각 데이터를 분산 스트림 처리기에 전송한다. 분산 스트림 처리기는 데이터 동기화기(130)로부터 전송 받은 데이터를 메모리에 저장한다. 이때, 데이터가 저장되는 메모리는 메인 메모리로 구현하는 것이 바람직하며, 하드웨어 및 스프트웨어의 환경에 따라 유사한 관리 방법을 사용할 수 있다. 예를 들어, Apache Spark 에서는 이를 RDD (Resilient Distributed DataSet)를 이용할 수 있다.
단계 S304에서, 질의 처리기는 사용자의 질의 요청을 입력 받는다. 이러한 사용자의 질의 요청은 스트림 데이터가 입력되기 전에 요청되어 있다고 가정하는 것이 바람직하나, 일반적으로 스트림 데이터가 입력되기 시작한 후에도 가능하다.
단계 S305에서, 질의 처리기는 공간 색인을 참조하여 사용자 질의를 서브 질의로 분할한다.
단계 S306에서, 질의 처리기는 서브 질의를 분산 스트림 처리기에 전송한다.
단계 S307에서, 스트림 분산기(140)는 스트림 데이터를 입력 받는다. 실시예에 따라서는 성질이 다른 다수의 스트림 데이터가 입력될 수 있다.
단계 S308에서, 스트림 분산기(140)는 공간 색인을 참조하여 스트림 데이터를 다수의 분산 처리기로 분산하여 전달한다. 또한, 성질이 다른 다수의 스트림 데이터가 입력되는 경우에도, 스트림 분산기(140)는 공간 색인을 참조하여 스트림 데이터를 다수의 분산 스트림 처리기로 분산하여 전달한다.
단계 S309에서, 분산 스트림 처리기는 사용자 질의를 처리하기 위해 공간 데이터가 더 필요한지 여부를 확인한다. 구체적으로, 분산 스트림 처리기는 다른 분산 스트림 처리기가 가진 공간 데이터가 더 필요한지 여부를 판단할 수 있다. 분산 스트림 처리기는 다른 분산 스트림 처리기의 공간 데이터가 필요하다고 판단되면 공간 데이터를 요청한다(S310). 예를 들어 10kmX10km 크기의 셀로서 공간 색인을 구성하였고 이를 기준으로 공간 데이터와 스트림 데이터를 각각 분산한 경우에 하나의 분산 스트림 처리기(예컨대 도1의 분산스트림 처리기 #1)는 10kmX10km 내의 공간 데이터만을 가지고 있으므로(도1에서 데이터 A) 20km 내의 데이터에 대한 질의가 주어지면 이에 대한 결과값을 모두 얻을 수 없다. 이 경우는 다른 분산 스트림 처리기가 관리하고 있는 데이터(예컨대 도1에서 데이터B)를 접근해야 하므로 분산 스트림 처리기 간에 데이터를 요청하고 수신하는 과정이 추가로 필요하다.
단계 S311에서, 분산 스트림 처리기는 입력되는 스트림 데이터와 공간 데이터를 연산하여 서브 질의를 처리한다.
단계 S312에서, 분산 스트림 처리기는 서브 질의를 처리한 결과를 질의 처리기에 전송한다.
단계 S313에서, 질의 처리기는 각 분산 스트림 처리기로부터 전송 받은 서브 질의 처리 결과를 집계한다.
단계 S314에서, 질의 처리기는 집계된 질의 처리 결과를 사용자에게 전송한다.
단계 S315에서, 공간 스트림 데이터 분산 처리 시스템는 스트림 데이터가 계속 입력되는 지 여부를 확인한다. 공간 스트림 데이터 분산 처리 시스템은 스트림 데이터가 계속 입력되면 상기 단계 307에서 단계 314를 반복한다. 공간 스트림 데이터 분산 처리 시스템은 스트림 데이터가 입력되지 않으면 질의 분석을 종료한다.
스트림이 입력되면(S308), 스트림 분산부는 공간 색인을 참조하여 스트림 데이터를 다수의 분산 스트림 처리기로 분산하여 전달, 입력한다(S309). 상기 S308 과정에서는 단일 입력 스트림에 대하여 설명하나, 성질이 다른 다수의 스트림이 입력될 수 있으며(도1의 스트림A, 스트림B 등) 이 경우에도 각각의 입력 스트림에 대하여 같은 방법으로 다수의 분산 스트림 처리기로 전달한다. 각각의 분산 스트림 처리기는 입력되는 스트림 데이터와 자신의 데이터 영역에 있는 데이터를 연산하여 사용자의 질의(S307 과정에서 수신한 서브질의를 말함)를 처리한다(S312).
상기 S312 과정에서 분산 스트림 처리기는 자신의 데이터 영역에 있는 공간 데이터를 읽어 연산을 하지만, 때로는 요청받은 질의를 처리하기 위하여는 자신의 데이터 영역에 있는 데이터만으로는 부족할 수 있다. 예를 들어 10kmX10km 크기의 셀로서 공간 색인을 구성하였고 이를 기준으로 공간 데이터와 스트림 데이터를 각각 분산한 경우에 하나의 분산 스트림 처리기(예컨대 도1의 분산스트림 처리기 #1)는 10kmX10km 내의 공간 데이터만을 가지고 있으므로(도1에서 데이터 A) 20km 내의 데이터에 대한 질의가 주어지면 이에 대한 결과값을 모두 얻을 수 없다. 이 경우는 다른 분산 스트림 처리기가 관리하고 있는 데이터(예컨대 도1에서 데이터B)를 접근해야 하므로 분산 스트림 처리기 간에 데이터를 요청하고 수신하는 과정이 추가로 필요하다. 즉 S312 과정 이전에 분산 스트림 처리기는 자신이 관리하는 공간 데이터가 요청받은 연산을 하는데 충분한지 판단하여(S310) 공간 데이터가 더 필요한 경우는 다른 분산 스트림 처리기에 공간 데이터를 요청하여 데이터 영역 또는 임시 메모리 등에 복사하여(S311) S312 과정을 수행한다.
다음으로 분산 스트림 처리기는 서브질의에 대한 연산결과를 질의처리부로 전송하며(S313) 질의처리부는 분산 스트림 처리기의 연산 결과를 집계하여(S314) 질의결과를 사용자에게 전송한다(S315) 상기 S308~S315 과정은 입력 스트림이 계속 입력되는 동안 반복적으로 계속되며, 스트림 입력이 중단되면 종료한다.
도 3은 본 발명의 일 실시예에 따른 공간 스트림 데이터 분산 처리 방법을 구체적으로 설명하기 위한 도면이다.
도 3을 참조하면, 왼쪽 그림에서 지도 영역으로 도시된 공간 데이터는 행정구역 경계선의 좌표 데이터를 말한다. 통상 행정 구역도에는 좌표 외에도 행정구역 이름, 인구 수 등과 같은 속성데이터도 있으나 본 발명과 직접 관계가 없으므로 설명에서는 생략한다. 이러한 공간 데이터가 8X12의 셀로 나누어져 공간 색인을 생성한다고 가정하면, 96개의 셀에 각각 포함되는 공간 데이터는 이 셀을 기준으로 96개의 분산 데이터 저장소(120)에 나누어져 저장된다. 도1의 데이터 동기화기(130)는 이를 96개의 분산 스트림 처리기에 각각 전송하여 데이터 영역에 복사한다. 이후, 입력되는 다수의 스트림 데이터는 예컨대 도3의 오른쪽 그림에서 예시한 바와 같이 좌표가 포함된 SNS의 로그 데이터, 스마트폰 등 모바일 디바이스에서 로깅되는 현재위치 데이터, 센서가 센싱하는 온도값 등 여럭 가지가 있을 수 있으며 이를 스트림 분산기(140)에서 96개의 스트림으로 분산하여 96개의 분산 스트림 처리기로 각각 전달한다. 각 분산 스트림 처리기가 입력받는 스트림 데이터와 데이터 영역에 가지고 있는 공간 데이터는 도3에서 셀로 표시된 같은 영역에 존재하는 좌표를 가지는 데이터이므로 다른 처리기와의 데이터 요청이나 통신 없이 질의에 필요한 연산을 가능하게 한다.
사용자가 질의하는 예로서 설명하면, 예를 들어 <서울시 영등포구의 학교에서 1km 범위 내에서 발생한 SNS 게시물 갯수의 시간대별 집계를 구하라> 와 같이 한정된 지역에 대한 질의가 요청되었고 해당 영역이 A 셀 영역 하나에 해당된다고 가정하자. 그러면 질의 처리기는 해당 분산 스트림 처리기에만 이 질의 요청을 전달한다. (이 분산 스트림 처리기를 분산 스트림 처리기 A 라고 한다) 그러면 분산 스트림 처리기 A는 A 영역에서 발생하는 스트림 데이터만 입력받고 있으며 A 영역에 해당하는 공간 데이터를 데이터 영역에 가지고 있으므로 이로부터 공간적 연산을 수행하여 질의 결과를 질의처리기에 전송한다. 질의처리기는 그 결과를 사용자에게 전송한다.
다음으로는 사용자가 요청한 질의에 해당하는 영역이 좀더 넓은 경우, 예컨대 충청남도에 대하여 유사한 질의를 요청한 경우는 질의처리기는 공간 색인을 참조하여 이 지역의 해당하는 영역이 B~J 9개라는 것을 판단하여 질의요청을 9개의 서브질의로 분할하여 분산 스트림 처리기 B에서 J까지 9개의 분산 스트림 처리기에 서브질의 요청을 전송한다. 분산 스트림 처리기 B~J는 각각 자신의 영역에 해당하는 공간 데이터를 데이터 영역에 가지고 있으며 또한 자신의 영역에 해당하는 스트림 데이터를 입력받고 있다. 따라서 각각의 분산 스트림 처리기 B~J는 자신의 데이터로 공간 연산을 수행하고 그 결과를 질의처리기에 전송한다. 이 과정은 다수의 분산 스트림 처리기에 의하여 병렬적으로 수행되며 질의처리기는 전송받은 결과를 집계하여 최종 질의 결과를 생성한 뒤 사용자에게 전송한다.
공간 데이터를 요청하는 과정의 예를 설명하면, 사용자가 충청남도에 있는 스트림 데이터를 필요로 하는 질의를 했다고 가정하자. 질의처리기는 공간 색인을 참조하여 분산 스트림 처리기 B~J 까지에게 서브질의를 전송하면서 공간 데이터 요청이 필요함을 알려준다. 분산 스트림 처리기 F는 충청남도 전체의 공간 데이터를 데이터 영역에 가지고 있지 않으므로 주변의 B~J 까지의 셀의 데이터를 분산 스트림 처리기 B~E 및 G~J 에게 요청한다. 분산 스트림 처리기 F는 요청하여 전송받은 데이터를 가지고 공간 연산을 수행하여 질의결과를 상기와 같은 방법으로 질의처리기에게 전송한다. 이 과정은 분산 스트림 처리기 B~J 에서도 동일하게 수행된다. 이 예에서는 분산 스트림 처리기 B~J 에서는 서로 공간 데이터 요청이 일어나 같은 공간 데이터를 가지고 연산을 하고, 스트림 데이터는 각각의 영역에 할당되어 입력되는 데이터를 병렬로 연산하게 된다.
상기의 설명에서는 분산 스트림 처리기가 셀의 개수만큼 있는 것으로 예를 들었으나, 실제 하드웨어의 자원 제약 때문에 많은 수의 분산 스트림 처리기를 둘 수 없는 경우에는 분산 스트림 처리기의 수 및 하나의 셀에 해당하는 데이터 용량 등을 고려하여 하나의 분산 스트림 처리기가 다수의 셀들에 해당하는 데이터를 관리하도록 실시될 수도 있다. 이 경우에도 공간 연산의 효율을 위하여 하나의 분산 스트림 처리기가 관리하는 다수의 셀들의 데이터가 인접하도록 한다. 예컨대 영역의 크기를 가로세로 2배씩 늘여 셀 B,C,E,F 에 해당하는 데이터를 하나의 분산 스트림 처리기가 관리하도록 할당할 수 있으며, 공간적 영역의 크기만 커지고 같은 방법으로 처리될 수 있다.
이상에서 설명된 본 발명의 실시 예들은 임의의 다양한 방법으로 구현될 수 있다. 예를 들어, 본 발명의 실시 예들은 하드웨어, 소프트웨어 또는 그 조합을 이용하여 구현될 수 있다. 소프트웨어로 구현되는 경우에, 다양한 운영 체제 또는 플랫폼을 이용하는 하나 이상의 프로세서 상에서 실행되는 소프트웨어로서 구현될 수 있다. 추가적으로, 그러한 소프트웨어는 다수의 적합한 프로그래밍 언어들 중에서 임의의 것을 사용하여 작성될 수 있고, 또한 프레임워크 또는 가상 머신에서 실행 가능한 기계어 코드 또는 중간 코드로 컴파일될 수 있다.
또한, 본 발명의 실시 예들이 하나 이상의 프로세서 상에서 실행되는 경우 이상에서 논의된 본 발명의 다양한 실시 예들을 구현하는 방법을 수행하기 위한 하나 이상의 프로그램이 기록된 프로세서 판독 가능 매체(예를 들어, 메모리, 플로피 디스크, 하드 디스크, 콤팩트 디스크, 광학 디스크 또는 자기 테이프 등)로 구현될 수 있다.
본 발명의 실시예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
110 : 공간 데이터 처리기
120 : 분산 데이터 저장소
130 : 데이터 동기화기
140 : 스트림 분산기
150 : 분산 스트림 처리기
160 : 질의 처리기

Claims (1)

  1. 입력된 공간 데이터에 대한 공간 색인을 생성하는 단계;
    생성된 공간 색인을 기반으로 공간 데이터를 분산 저장하는 단계;
    스트림 데이터를 상기 생성된 공간 색인을 기반으로 분산 저장하는 단계; 및
    상기 분산 저장된 공간 데이터 및 상기 스트림 데이터를 연산하여, 사용자로부터 입력된 질의에 대한 결과를 생성하는 단계;
    를 포함하는 공간 스트림 데이터 분산 처리 방법.
KR1020160016537A 2016-02-12 2016-02-12 공간 스트림 데이터 분산 처리 시스템 및 방법 KR20170095044A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160016537A KR20170095044A (ko) 2016-02-12 2016-02-12 공간 스트림 데이터 분산 처리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160016537A KR20170095044A (ko) 2016-02-12 2016-02-12 공간 스트림 데이터 분산 처리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20170095044A true KR20170095044A (ko) 2017-08-22

Family

ID=59757652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160016537A KR20170095044A (ko) 2016-02-12 2016-02-12 공간 스트림 데이터 분산 처리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20170095044A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102147175B1 (ko) * 2020-01-07 2020-08-25 (주)에스티로직 공간 데이터 처리효율 증대를 위한 공간키 기반 공간 데이터 관리방법, 장치 및 프로그램

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102147175B1 (ko) * 2020-01-07 2020-08-25 (주)에스티로직 공간 데이터 처리효율 증대를 위한 공간키 기반 공간 데이터 관리방법, 장치 및 프로그램

Similar Documents

Publication Publication Date Title
US9158843B1 (en) Addressing mechanism for data at world wide scale
Mahmood et al. Spatio-temporal access methods: a survey (2010-2017)
US9733094B2 (en) Hybrid road network and grid based spatial-temporal indexing under missing road links
JP6032467B2 (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
US11204896B2 (en) Scalable space-time density data fusion
US20150026158A1 (en) Systems, methods, and software for unified analytics environments
US20140019490A1 (en) Event processing for graph-structured data
Agarwal et al. Performance analysis of MongoDB versus PostGIS/PostGreSQL databases for line intersection and point containment spatial queries
Liu et al. A cloud‐based taxi trace mining framework for smart city
Bakli et al. Distributed moving object data management in MobilityDB
Pandey et al. How good are modern spatial libraries?
Jhummarwala et al. Parallel and distributed GIS for processing geo-data: an overview
Puri et al. MPI-Vector-IO: Parallel I/O and partitioning for geospatial vector data
Zhang et al. High-performance online spatial and temporal aggregations on multi-core cpus and many-core gpus
US20150293971A1 (en) Distributed queries over geometric objects
CN106649636A (zh) 一种基于移动终端的人员流动性分析方法及装置
Xu et al. Continuous k nearest neighbor queries over large multi-attribute trajectories: a systematic approach
US10169083B1 (en) Scalable method for optimizing information pathway
KR20170095044A (ko) 공간 스트림 데이터 분산 처리 시스템 및 방법
Liu et al. ST4ML: Machine learning oriented spatio-temporal data processing at scale
Wang et al. HBase storage schemas for massive spatial vector data
Sui et al. A privacy-preserving compression storage method for large trajectory data in road network
Volz et al. Integration of spatial data within a generic platform for location-based applications
Zhang et al. U2sod-db: a database system to manage large-scale ubiquitous urban sensing origin-destination data
Kang et al. Cloud-based framework for spatio-temporal trajectory data segmentation and query