KR20190081670A - 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법 - Google Patents

분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법 Download PDF

Info

Publication number
KR20190081670A
KR20190081670A KR1020170184381A KR20170184381A KR20190081670A KR 20190081670 A KR20190081670 A KR 20190081670A KR 1020170184381 A KR1020170184381 A KR 1020170184381A KR 20170184381 A KR20170184381 A KR 20170184381A KR 20190081670 A KR20190081670 A KR 20190081670A
Authority
KR
South Korea
Prior art keywords
spatial
web object
space
information
web
Prior art date
Application number
KR1020170184381A
Other languages
English (en)
Other versions
KR102036314B1 (ko
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 KR1020170184381A priority Critical patent/KR102036314B1/ko
Publication of KR20190081670A publication Critical patent/KR20190081670A/ko
Application granted granted Critical
Publication of KR102036314B1 publication Critical patent/KR102036314B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 분산 처리 기반 공간 웹 객체 검색 시스템에 관한 것으로, 본 발명은 외부 저장장치에 저장된 데이터를 메모리 상에서 사용되는 인 메모리 데이터로 변경하는 인 메모리 분산 처리부; 상기 인 메모리 분산 처리부에서 변경된 인 메모리 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체를 생성하는 공간 웹 객체 생성부; 및 상기 공간 웹 객체 생성부에서 생성된 공간 웹 객체에 특정 공간 정보와 단어 정보에 대한 질의를 수행하여 해당 공간 정보와 단어 정보가 포함된 공간 웹 객체를 검색하는 공간 웹 객체 질의부;를 포함하는 것을 특징으로 한다.

Description

분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법{SPATIAL WEB OBJECT RETRIEVAL SYSTEM BASED ON DISTRIBUTED PROCESSING AND SPATIAL WEB OBJECT RETRIEVAL METHOD IN USING SAME}
본 발명의 실시예는 분산 처리 기반 공간 웹 객체 검색 시스템 및 방법에 관한 것이다.
공간 웹 객체는 GPS 좌표나, 지역이름, 우편번호 등, 지역에 대한 정보를 확인할 수 있는 정보를 포함하고 있는 문서를 말한다. 최근 스마트폰과 같은 모바일 장치의 발달로 인하여 이러한 공간 웹 객체가 기하급수적으로 생성되고, 또한 공간 웹 객체를 검색하는 서비스들의 사용량이 증가하고 있다.
공간 웹 객체는 위치 정보와 문서의 단어 정보를 모두 갖고 있기 때문에, 이러한 공간 웹 객체를 검색하기 위해서는 단어 정보나 위치 정보를 이용하여 1차 검색을 하고, 검색된 결과에 위치 정보나 단어 정보를 재이용하여 2차 검색을 해야 정확한 결과를 찾을 수 있다.
따라서, 종래의 공간만을 검색하는 공간 검색 기법이나, 단어만을 검색하는 단어 검색 기법, 또는 공간 인덱스의 각 노드에 단어에 대한 정보를 위한 단어 인덱스를 추가하거나, 단어 인덱스의 각 노드에 공간 정보를 위한 공간 인덱스를 추가하는 하이브리드 인덱스 형태의 검색 기법은 공간 웹 객체를 검색하기 위한 효율적인 방법이라 할 수 없다.
따라서, 본 출원인은 기존의 공간 웹 객체 검색 방법을 대용량의 데이터 분석에 적합하도록 분산처리 환경 기반에 적용함으로써 공간 웹 객체의 검색에 있어서 우수한 성능을 보여줄 수 있는 시스템을 발명하였다.
대한민국 공개특허공보 제10-2009-0072619호(2009.07.02.)
본 발명은 공간 분할을 이용하여 분산처리 시스템을 효율적으로 이용하고, 분할된 공간에 대한 검색의 효율성을 높일 수 있는 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 데이터의 검색을 위하여 공간 정보와 단어 정보를 같이 사용하여 인덱스를 구축하는 QP-tree를 적용함으로써 공간 웹 객체의 검색에 있어서 우수한 성능을 보여줄 수 있는 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법을 제공하는데 그 목적이 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 시스템은 외부 저장장치에 저장된 데이터를 메모리 상에서 사용되는 인 메모리 데이터로 변경하는 인 메모리 분산 처리부; 상기 인 메모리 분산 처리부에서 변경된 인 메모리 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체를 생성하는 공간 웹 객체 생성부; 및 상기 공간 웹 객체 생성부에서 생성된 공간 웹 객체에 특정 공간 정보와 단어 정보에 대한 질의를 수행하여 해당 공간 정보와 단어 정보가 포함된 공간 웹 객체를 검색하는 공간 웹 객체 질의부;를 포함하는 것을 특징으로 한다.
또한, 상기 인 메모리 분산 처리부는, 상기 외부 저장장치에 저장된 데이터를 상기 인 메모리 데이터인 탄력적 분산 데이터 집합인 알디디(Resilient Distributed Dataset,RDD)로 변경할 수 있다.
또한, 상기 공간 웹 객체 생성부는, 상기 인 메모리 분산 처리부에서 생성된 알디디인 텍스트 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체의 집합인 공간 웹 알디디를 생성하는 공간웹알디디(SpatialWebRDD) 모듈; 상기 공간 웹 알디디를 공간 분할 알고리즘을 이용하여 공간 분할을 하고 분할된 각각의 공간을 하나의 파티션으로 구축한 그리드 알디디를 생성하는 그리드알디디(GriddedRDD) 모듈; 및 상기 그리드 알디디의 각 파티션에 포함된 공간 웹 객체의 검색을 위한 인덱스를 구축한 인덱스 알디디를 생성하는 인덱스알디디(IndexedRDD) 모듈;을 포함할 수 있다.
또한, 상기 그리드알디디(GriddedRDD) 모듈은, 상기 공간 웹 알디디를 공간 분할 알고리즘인 STR 알고리즘 또는 BSP 알고리즘을 이용하여 공간 분할을 수행할 수 있다.
또한, 상기 인덱스알디디(IndexedRDD) 모듈은, 상기 공간 웹 객체의 인덱스로 QP-tree를 사용할 수 있다.
또한, 상기 공간 웹 객체 질의부는, 상기 공간 정보와 단어 정보를 입력받아 해당 공간 범위 안에 있는 공간 웹 객체 중 해당 단어를 모두 포함하는 문서를 검색하는 불 레인지 질의(Boolean Range Query) 모듈; 및 공간 정보와 단어 정보를 입력받아 해당 공간 위치에서 해당 단어를 모두 포함하는 가장 근접한 공간 웹 객체 K개를 검색하는 불 탑 케이 질의(Boolean Top-k Query) 모듈;을 포함할 수 있다.
또한, 본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 방법은 인 메모리 분산 처리부가 외부 저장장치에 저장된 데이터를 메모리 상에서 사용되는 인 메모리 데이터로 변경하는 인 메모리 분산 처리 단계; 공간 웹 객체 생성부가 인 메모리 분산 처리부에서 변경된 인 메모리 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체를 생성하는 공간 웹 객체 생성 단계; 및 공간 웹 객체 질의부가 공간 웹 객체 생성부에서 생성된 공간 웹 객체에 특정 공간 정보와 단어 정보에 대한 질의를 수행하여 해당 공간 정보와 단어 정보가 포함된 공간 웹 객체를 검색하는 공간 웹 객체 질의 단계;를 포함할 수 있다.
또한, 상기 인 메모리 분산 처리 단계는, 상기 인 메모리 분산 처리부가 외부 저장장치에 저장된 데이터를 인 메모리 데이터인 탄력적 분산 데이터 집합인 알디디(RDD)로 변경할 수 있다.
또한, 상기 공간 웹 객체 생성 단계는, 공간웹알디디(SpatialWebRDD) 모듈이 상기 인 메모리 분산 처리부에서 생성된 알디디인 텍스트 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체의 집합인 공간 웹 알디디를 생성하는 공간웹알디디 생성 공정; 그리드알디디(GriddedRDD) 모듈이 상기 공간 웹 알디디를 공간 분할 알고리즘을 이용하여 공간 분할을 하고 분할된 각각의 공간을 하나의 파티션으로 구축한 그리드 알디디를 생성하는 그리드알디디 생성 공정; 및 인덱스알디디(IndexedRDD) 모듈이 상기 그리드 알디디의 각 파티션에 포함된 공간 웹 객체의 검색을 위한 인덱스를 구축한 인덱스 알디디를 생성하는 인덱스알디디 생성 공정;을 포함할 수 있다.
아울러, 상기 공간 웹 객체 질의 단계는, 불 레인지 질의(Boolean Range Query) 모듈이 공간 정보와 단어 정보를 입력받아 해당 공간 범위 안에 있는 공간 웹 객체 중 해당 단어를 모두 포함하는 문서를 검색하는 불 레인지 질의 공정; 및 불 탑 케이 질의(Boolean Top-k Query) 모듈이 공간 정보와 단어 정보를 입력받아 해당 공간 위치에서 해당 단어를 모두 포함하는 가장 근접한 공간 웹 객체 K개를 검색하는 불 탑 케이 질의 공정;을 포함할 수 있다.
상기한 바와 같이 본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법에 의하면, 공간 분할을 이용하여 분산처리 시스템을 효율적으로 이용하고, 분할된 공간에 대한 검색의 효율성을 높일 수 있는 효과가 있다.
또한, 본 발명은 데이터의 검색을 위하여 공간 정보와 단어 정보를 같이 사용하여 인덱스를 구축하는 QP-tree를 적용함으로써 공간 웹 객체의 검색에 있어서 우수한 성능을 보여줄 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 분산 처리 기반 공간 웹 객체 검색 시스템의 구성도이다.
도 2는 본 발명에 따른 공간 웹 객체 생성부의 구성도이다.
도 3은 본 발명에 따른 그리드알디디(GriddedRDD) 모듈의 그리드알디디 생성 알고리즘을 나타내는 도이다.
도 4는 본 발명에 따른 인덱스알디디(IndexedRDD) 모듈의 인덱스알디디 생성 알고리즘을 나타내는 도이다.
도 5는 본 발명에 따른 공간 웹 객체 질의부의 구성도이다.
도 6은 본 발명에 따른 불 레인지 질의(Boolean Range Query) 모듈의 질의 수행 알고리즘을 나타내는 도이다.
도 7은 본 발명의 일 실시예에 따른 분산 처리 기반 공간 웹 객체 검색 방법의 블록도이다.
도 8은 본 발명에 따른 공간 웹 객체 생성 단계의 블록도이다.
도 9는 본 발명에 따른 공간 웹 객체 질의 단계의 블록도이다.
도 10은 불 레인지 질의(Boolean Range Query) 성능 비교를 나타내는 도이다.
도 11은 데이터 양에 의한 질의 성능 비교를 나타내는 도이다.
도 12는 불 탑 케이 질의(Boolean Top-k Query) 성능 비교를 나타내는 도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다. 우선, 도면들 중 동일한 구성요소 또는 부품들은 가능한 한 동일한 참조부호를 나타내고 있음에 유의해야 한다. 본 발명을 설명함에 있어서 관련된 공지기능 혹은 구성에 대한 구체적인 설명은 본 발명의 요지를 모호하게 하지 않기 위해 생략한다.
도 1은 본 발명의 일 실시예에 따른 분산 처리 기반 공간 웹 객체 검색 시스템의 구성도이다.
본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 시스템은 도 1에 도시된 바와 같이, 인 메모리 분산 처리부(100), 공간 웹 객체 생성부(200) 및 공간 웹 객체 질의부(300)을 포함한다.
상기 인 메모리 분산 처리부(100)는 외부 저장장치에 저장된 데이터를 메모리 상에서 사용되는 인 메모리(In-memory) 데이터로 변경할 수 있다.
상기 인 메모리 분산 처리부(100)는 하둡(High-Availability Distributed Object-Oriented Platform,Hadoop)이나 로컬디스크로 이루어지는 외부 저장장치에 저장된 데이터를 인 메모리 기반의 분산처리 시스템, 즉, Spark에서 사용가능한 인 메모리 데이터 형식인 탄력적 분산 데이터 집합, 다시 말해서 알디디(Resilient Distributed Dataset,RDD)로 변경할 수 있다.
구체적으로, 상기 인 메모리 분산 처리부(100)는 해당 데이터를 raw알디디(rawRDD)로 변경할 수 있고, 이러한 raw알디디(rawRDD)는 한 줄에 공간 웹 객체의 원시 데이터 하나를 저장할 수 있다.
상기 공간 웹 객체 생성부(200)는 상기 인 메모리 분산 처리부에서 변경된 인 메모리 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체를 생성할 수 있다.
도 2는 본 발명에 따른 공간 웹 객체 생성부의 구성도이다.
구체적으로, 상기 공간 웹 객체 생성부(200)는 도 2에 도시된 바와 같이, 공간웹알디디(SpatialWebRDD) 모듈(210), 그리드알디디(GriddedRDD) 모듈(220) 및 인덱스알디디(IndexedRDD) 모듈(230)을 포함할 수 있다.
상기 공간웹알디디(SpatialWebRDD) 모듈(210)은 상기 인 메모리 분산 처리부에서 생성된 알디디인 텍스트 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체의 집합인 공간 웹 알디디를 생성할 수 있다.
상기 그리드알디디(GriddedRDD) 모듈(220)은 상기 공간 웹 알디디를 공간 분할 알고리즘을 이용하여 공간 분할을 하고 분할된 각각의 공간을 하나의 파티션으로 구축한 그리드 알디디를 생성할 수 있다.
상기 그리드알디디(GriddedRDD) 모듈(220)은 전체 데이터의 공간 영역을 전역 그리드로 분할하고 하나의 그리드에 속하는 데이터를 하나의 파티션에 할당하여 검색의 효율성을 높일 수 있다.
구체적으로, 그리드알디디(GriddedRDD) 모듈(220)은 전체 영역을 공간 분할 알고리즘인 STR 알고리즘 또는 BSP 알고리즘을 이용하여 공간 분할을 수행할 수 있고, 이후 분할된 각 영역에 속하는 데이터를 <gridid, spatialwebobject> 형태로 분류할 수 있으며, 이후, 데이터를 gridid별로 그룹을 만들고 그룹별로 파티션을 재구성할 수 있다.
도 3은 본 발명에 따른 그리드알디디(GriddedRDD) 모듈의 그리드알디디 생성 알고리즘을 나타내는 도이다.
상기 그리드알디디(GriddedRDD) 모듈(220)은 도 3에 도시된 바와 같은 알고리즘을 이용하여 그리드알디디를 생성할 수 있다.
구체적으로, 상기 그리드알디디(GriddedRDD) 모듈(220)은 spark.textFile함수를 통하여 원시 파일인 텍스트 파일을 원시RDD 파일인 rawRDD로 생성할 수 있다.
이후, 생성된 rawRDD는 Spark의 함수인 map함수를 통해 공간 웹 객체를 저장하는 RDD인 swoRDD로 변형시킬 수 있고, 또한 genGrids 함수를 통해 grid분할 작업을 수행할 수 있는데, 여기서, genGrids 함수는 RDD와 분할 알고리즘의 종류, 샘플 비율 σ, 파티션 수 β를 입력받은 후, 입력된 RDD를 분할 알고리즘을 적용하여 공간으로 분할하고, 분할된 그리드의 집합을 ArrayList형태로 리턴해줄 수 있다.
한편, 그리드 분할이 완료되면, swoRDD에 mapToPair함수를 이용하여 griddedRDD를 생성할 수 있는데, 이러한 mapToPair 함수는 RDD에 있는 데이터를 하나의 쌍으로 이루어진 데이터로 변경해주는 함수로 RDD안에 있는 swo(공간 웹 객체) 객체 하나를 가져와 girds에 있는 grid와의 포함 관계를 판단하여 swo의 공간 위치가 grid의 영역에 포함이 되면, 해당 swo를 <gridid, swo> 형태의 tuple로 만들어 주고, 이러한 <gridid, swo> 형태의 RDD인 griddedRDD에 넣어줄 수 있다.
즉, mapToPair 함수를 거치면 griddedRDD는 공간 웹 객체 하나당 그리드 아이디 하나씩 쌍으로 이루어진 rdd로 구성이 되고, 또한 griddedRDD의 데이터 크기는 원시 데이터보다 증가해 있기 때문에 파티션을 재분할할 필요가 있다.
따라서, 그리드의 개수 만큼의 파티션을 만들기 위하여 partitionBy함수를 실행할 수 있고, 파티션의 개수가 변경이 되면 griddedRDD에 groupByKey함수를 실행하여 grid별로 그룹을 만들어 groupRDD를 생성할 수 있는데, 이때 생성된 RDD는 데이터의 쌍을 저장할 수 있는 PairRDD로 <gridid, set of swo>로 이루어질 수 있다.
상기 인덱스알디디(IndexedRDD) 모듈(230)은 상기 그리드 알디디의 각 파티션에 포함된 공간 웹 객체의 검색을 위한 인덱스를 구축한 인덱스 알디디를 생성할 수 있다.
구체적으로, 상기 인덱스알디디(IndexedRDD) 모듈(230)은 하나의 파티션에 하나의 Index를 구축할 수 있고, 또한, 상기 공간 웹 객체의 인덱스로 QP-tree를 사용할 수 있는데, 이러한 QP-tree는 전체 데이터를 공간 웹 객체의 공간 정보를 이용하여 Quad-tree로 만들고, Quad-tree의 말단노드에는 해당 노드에 속해 있는 단어 정보들의 빠른 검색을 위한 Patricia-trie로 구성될 수 있다.
도 4는 본 발명에 따른 인덱스알디디(IndexedRDD) 모듈의 인덱스알디디 생성 알고리즘을 나타내는 도이다.
상기 인덱스알디디(IndexedRDD) 모듈(230)은 도 4에 도시된 바와 같은 알고리즘을 이용하여 인덱스알디디를 생성할 수 있다.
구체적으로, mapPartitions 함수는 griddedRDD 단계에서 생성된 groupRDD의 각 파티션마다 실행이 되는데, 해당 함수가 실행되면 현재 파티션의 공간 영역 정보(MBR)를 가져와 index, 즉 QP-tree를 생성할 수 있다.
이후, 현재 파티션에 있는 공간 웹 객체들을 하나씩 가져와 index에 삽입하여 인덱스를 구축할 수 있는데, tuple._1() 함수는 현재 튜플의 첫 번째 값을 가져오는 함수이다.
이후, 인덱스의 구축이 완료되면 결과값에 <gridid, index> 형태의 데이터로 결과리스트에 넣어줄 수 있고, mapPartitions 함수가 종료되면 indexedRDD는 그리드 아이디와 인덱스의 데이터 쌍을 갖는 RDD가 되고, 추후 질의에 사용할 때 빠른 처리를 위하여 메모리에 저장하는 역할을 하는 persist함수를 실행할 수 있다.
상기 공간 웹 객체 질의부(300)는 상기 공간 웹 객체 생성부에서 생성된 공간 웹 객체에 특정 공간 정보와 단어 정보에 대한 질의를 수행하여 해당 공간 정보와 단어 정보가 포함된 공간 웹 객체를 검색할 수 있다.
도 5는 본 발명에 따른 공간 웹 객체 질의부의 구성도이다.
구체적으로, 상기 공간 웹 객체 질의부(300)는 도 5에 도시된 바와 같이, 불 레인지 질의(Boolean Range Query) 모듈(310) 및 불 탑 케이 질의(Boolean Top-k Query) 모듈(320)을 포함할 수 있다.
상기 불 레인지 질의(Boolean Range Query) 모듈(310)은 공간 정보와 단어 정보를 입력받아 해당 공간 범위 안에 있는 공간 웹 객체 중 해당 단어를 모두 포함하는 문서를 검색할 수 있다.
구체적으로, 상기 불 레인지 질의(Boolean Range Query) 모듈(310)은 사용자가 공간 정보(위치 정보)와 단어 정보를 입력하면 각 RDD는 입력된 공간 정보를 이용하여 자신이 가지고 있는 인덱스(QP-tree)에 공간 정보를 이용한 질의를 수행할 수 있다.
이후, 질의를 수행하면 root의 MBR을 이용하여 해당 RDD가 질의에 해당하는지 확인이 가능하기 때문에 질의에 해당하지 않는 RDD라면 더 이상 검색을 실행하지 않고 다음 RDD를 불러올 수 있고, 질의에 해당하는 RDD일 경우, 질의의 공간 정보를 이용하여 QP-tree에서 검색을 수행할 수 있다.
QP-tree에 의해서 말단노드까지 검색하면, 말단 노드에 포함되어 있는 Patricia-trie에서 사용자가 입력한 단어를 포함하는 객체를 검색하여 결과로 리턴할 수 있다.
도 6은 본 발명에 따른 불 레인지 질의(Boolean Range Query) 모듈의 질의 수행 알고리즘을 나타내는 도이다.
즉, 상기 불 레인지 질의(Boolean Range Query) 모듈(310)은 도 6에 도시된 바와 같이, 먼저 인덱스로 구성된 indexedRDD를 입력받아, indexedRDD에 사용자가 입력한 정보(위치, 범위, 단어)를 사용하여 각 파티션에 있는 인덱스에 질의를 수행할 수 있고, 질의 수행의 결과는 최종 결과인 result 리스트에 저장하고 결과로 리턴해주며, 각 파티션에서 수행된 결과는 master에 집계될 수 있다.
상기 불 탑 케이 질의(Boolean Top-k Query) 모듈(320)은 공간 정보와 단어 정보를 입력받아 해당 공간 위치에서 해당 단어를 모두 포함하는 가장 근접한 공간 웹 객체 K개를 검색할 수 있다.
구체적으로, 상기 불 탑 케이 질의(Boolean Top-k Query) 모듈(320)은 사용자가 공간 정보(위치 정보)와 단어 정보를 입력하면 입력된 정보를 이용하여 각 RDD마다 BkQ 질의를 수행하는데, 이러한 불 탑 케이 질의(Boolean Top-k Query) 모듈(320)은 RDD에 있는 각 Index에서 우선순위 큐를 이용하여 k개의 객체를 검색하고, 검색된 결과는 master에게 결과로 넘길 수 있으며, Master는 각 파티션에서 얻어진 k*파티션의 수 만큼의 임시 결과에서 다시 우선순위 큐를 이용하여 최우선순위를 갖는 K개의 검색 결과를 찾아낼 수 있다.
이하, 본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 방법을 설명한다.
도 7은 본 발명의 일 실시예에 따른 분산 처리 기반 공간 웹 객체 검색 방법의 블록도이다.
본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 방법은 도 7에 도시된 바와 같이, 인 메모리 분산 처리 단계(S10), 공간 웹 객체 생성 단계(S20) 및 공간 웹 객체 질의 단계(S30)를 포함한다.
상기 인 메모리 분산 처리 단계(S10)는 인 메모리 분산 처리부(100)가 외부 저장장치에 저장된 데이터를 메모리 상에서 사용되는 인 메모리 데이터로 변경하는 단계이다.
구체적으로, 상기 인 메모리 분산 처리 단계(S10)에서는 상기 인 메모리 분산 처리부(100)가 외부 저장장치에 저장된 데이터를 인 메모리 데이터인 탄력적 분산 데이터 집합인 알디디(RDD)로 변경할 수 있다.
상기 공간 웹 객체 생성 단계(S20)는 공간 웹 객체 생성부(200)가 인 메모리 분산 처리부에서 변경된 인 메모리 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체를 생성하는 단계이다.
도 8은 본 발명에 따른 공간 웹 객체 생성 단계의 블록도이다.
구체적으로, 상기 공간 웹 객체 생성 단계(S20)는 도 8에 도시된 바와 같이, 공간웹알디디 생성 공정(S21), 그리드알디디 생성 공정(S22) 및 인덱스알디디 생성 공정(S23)을 포함할 수 있다.
상기 공간웹알디디 생성 공정(S21)은 공간웹알디디(SpatialWebRDD) 모듈(210)이 상기 인 메모리 분산 처리부에서 생성된 알디디인 텍스트 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체의 집합인 공간 웹 알디디를 생성하는 공정이다.
상기 그리드알디디 생성 공정(S22)은 그리드알디디(GriddedRDD) 모듈(220)이 상기 공간 웹 알디디를 공간 분할 알고리즘을 이용하여 공간 분할을 하고 분할된 각각의 공간을 하나의 파티션으로 구축한 그리드 알디디를 생성하는 공정이다.
구체적으로, 상기 그리드알디디 생성 공정(S22)에서는 공간 웹 알디디를 공간 분할 알고리즘인 STR 알고리즘 또는 BSP 알고리즘을 이용하여 공간 분할을 수행할 수 있다.
상기 인덱스알디디 생성 공정(S23)은 인덱스알디디(IndexedRDD) 모듈(230)이 상기 그리드 알디디의 각 파티션에 포함된 공간 웹 객체의 검색을 위한 인덱스를 구축한 인덱스 알디디를 생성하는 공정이다.
구체적으로, 상기 인덱스알디디 생성 공정(S23)에서는 상기 공간 웹 객체의 인덱스로 QP-tree를 사용할 수 있다.
상기 공간 웹 객체 질의 단계(S30)는 공간 웹 객체 질의부(300)가 공간 웹 객체 생성부에서 생성된 공간 웹 객체에 특정 공간 정보와 단어 정보에 대한 질의를 수행하여 해당 공간 정보와 단어 정보가 포함된 공간 웹 객체를 검색하는 단계이다.
도 9는 본 발명에 따른 공간 웹 객체 질의 단계의 블록도이다.
구체적으로, 상기 공간 웹 객체 질의 단계(S30)는 도 9에 도시된 바와 같이, 불 레인지 질의 공정(S31) 및 불 탑 케이 질의 공정(S32)을 포함할 수 있다.
상기 불 레인지 질의 공정(S31)은 불 레인지 질의(Boolean Range Query) 모듈(310)이 공간 정보와 단어 정보를 입력받아 해당 공간 범위 안에 있는 공간 웹 객체 중 해당 단어를 모두 포함하는 문서를 검색하는 공정이다.
상기 불 탑 케이 질의 공정(S32)은 불 탑 케이 질의(Boolean Top-k Query) 모듈(320)이 공간 정보와 단어 정보를 입력받아 해당 공간 위치에서 해당 단어를 모두 포함하는 가장 근접한 공간 웹 객체 K개를 검색하는 공정이다.
이하, 본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 시스템을 이용한 공간 웹 객체 검색 방법의 성능 실험예를 설명한다.
본 실험에서는 실제 Twitter 데이터를 사용하였고, 데이터의 양은 3000만개로 약 5GB의 저장 공간을 필요로 했으며, 실험에 사용된 장치는 마스터 1대, 워커 6대로 구성하였다.
마스터는 인텔 제온 e5540(4코어)에 12GB의 램을 탑재하였고, 워커는 각 인텔 i5 3570(4코어)에 16GB의 램을 탑재하였다. 실제 Spark에서는 각 워커마다 램을 12GB씩 사용하여 전체 24코어 72GB의 램을 탑재하고 있는 시스템을 이용하였다.
실험 데이터는 500만, 1000만, 1500만, 2500만개로 데이터를 각각 만들어 실험에 이용하였고, 또한 본 실험에서는 검색 성능의 비교를 위해 종래의 공간 정보만을 이용하는 인덱스인 R-tree를 사용하는 방법(공간 기법)과, 본 발명의 공간 정보와 단어 정보를 모두 이용하는 인덱스인 QP-tree를 사용하는 방법(공간+단어 기법)으로 실험하였다.
<불 레인지 질의(BRQ) 성능 비교>
본 실험에서는 공간 웹 객체 질의 중 하나인 BRQ 질의의 성능을 비교하였다. 실험에 사용되는 파라미터인 point 정보는 전체 데이터 중 랜덤하게 추출하여 사용하였고, 단어 정보는 전체 단어를 스캔하여 빈도수가 가장 높은 단어, 중간 정도의 빈도수를 갖는 단어, 가장 낮은 빈도수를 갖는 단어를 각각 이용하여 10번씩 반복 하여 질의를 수행하고 질의 수행 시간의 평균을 계산하였다.
실험에 사용된 데이터는 2500만개 데이터를 이용하였고, 검색 범위는 전체 범위의 0.001%, 0.01%, 0.1%, 1%, 10%로 10배씩 증가하여 검색 성능을 측정하였다.
도 10은 불 레인지 질의(Boolean Range Query) 성능 비교를 나타내는 도이다.
실험 결과, 도 10에 도시된 바와 같이, 본 발명과 같이 공간+단어를 이용하는 방법이 종래의 공간만을 이용하는 방법보다 훨씬 좋은 성능을 보여주는 것을 확인할 수 있다.
이는 공간 기법은 공간을 이용하여 데이터를 검색한 후 다시 단어를 추가로 검색하기 때문으로, 1차 검색결과(공간검색)의 결과를 이용하여 2차 검색을 수행하는 시간이 오래 걸리지만, 공간+단어 기법은 indexedRDD에 있는 인덱스에서 공간과 단어를 같이 검색할 수 있기 때문에 공간의 크기에 구애받지 않고 거의 일정한 수준의 검색 성능을 보여줄 수 있다.
<데이터 양에 의한 질의 성능 비교>
본 실험에서는 BRQ 질의를 데이터의 양을 변경하며 질의 수행 시간을 확인하였고. 데이터는 1000만, 1500만, 2000만, 2500만개로 변경하며 실험을 하였으며, 실험에 사용된 검색 범위는 전체 데이터의 0.1%를 사용하였다.
도 11은 데이터 양에 의한 질의 성능 비교를 나타내는 도이다.
실험 결과, 도 11에 도시된 바와 같이, 본 발명에 따른 공간+단어 기법은 데이터의 크기에 따른 검색 시간의 변화가 거의 없는 반면, 종래의 공간 기법은 데이터의 크기가 늘어날수록 검색시간이 오래 걸렸다.
이는 공간 기법은 데이터의 크기가 늘어난다면, 같은 범위의 데이터가 양이 늘어나고, 양이 늘어남에 따라 검색해야 할 객체가 늘어나며 이는 곧 검색해야 할 단어에 대한 데이터가 늘어나기 때문이다.
이에 반해, 공간+단어 기법에서는 데이터의 양이 증가하여도 같은 노드에 있는 단어 정보에 대한 인덱스가 구축이 되어 있으므로, 검색 시간의 변화가 거의 없다.
<불 탑 케이 질의(BkQ) 성능 비교>
본 실험에서는 공간 웹 객체 질의 중 하나인 BkQ 질의의 성능을 비교하였다. 실험에 사용된 데이터는 2500만개의 Twitter데이터이고, 질의를 하는 위치는 전체 데이터 중 랜덤하게 추출을 하였으며, 질의에 사용된 단어는 전체 단어 중, 가장 빈도수가 높은 단어순으로 하였다. 또한 K 값은 10, 20, 30, 40, 50으로 10씩 증가하면서 질의 수행 능력을 실험하였다.
도 12는 불 탑 케이 질의(Boolean Top-k Query) 성능 비교를 나타내는 도이다.
실험 결과, 도 11에 도시된 바와 같이, 종래의 공간 기법은 350ms 근처에서 비슷한 성능을 보였고, 본 발명에 따른 공간+단어 기법은 100ms에서 비슷한 성능을 보였다.
이는 공간 기법은 데이터를 하나의 파티션에 속해있는 R-tree에서 검색 후, 검색된 데이터에서 단어 검색을 추가해야 하는 시간이 걸리지만, 공간+단어 기법은 하나의 파티션에 있는 인덱스(QP-tree)에서 검색을 할 때, 단어까지 포함된 정보를 검색할 수 있기 때문에 수행 시간이 더 적게 걸릴 수 있다.
상기한 바와 같이 본 발명에 따르면, 공간 분할을 이용하여 분산처리 시스템을 효율적으로 이용하고, 분할된 공간에 대한 검색의 효율성을 높일 수 있으며, 데이터의 검색을 위하여 공간 정보와 단어 정보를 같이 사용하여 인덱스를 구축하는 QP-tree를 적용함으로써 공간 웹 객체의 검색에 있어서 우수한 성능을 보여줄 수 있다.
이상과 같이 본 발명에 따른 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법을 예시한 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명이 한정되는 것은 아니며, 본 발명의 기술사상 범위 내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
100:인 메모리 분산 처리부
200:공간 웹 객체 생성부
210:공간웹알디디(SpatialWebRDD) 모듈
220:그리드알디디(GriddedRDD) 모듈
230:인덱스알디디(IndexedRDD) 모듈
300:공간 웹 객체 질의부
310:불 레인지 질의(Boolean Range Query) 모듈
320:불 탑 케이 질의(Boolean Top-k Query) 모듈
S10:인 메모리 분산 처리 단계
S20:공간 웹 객체 생성 단계
S21:공간웹알디디 생성 공정
S22:그리드알디디 생성 공정
S23:인덱스알디디 생성 공정
S30:공간 웹 객체 질의 단계
S31:불 레인지 질의 공정
S32:불 탑 케이 질의 공정

Claims (10)

  1. 외부 저장장치에 저장된 데이터를 메모리 상에서 사용되는 인 메모리 데이터로 변경하는 인 메모리 분산 처리부;
    상기 인 메모리 분산 처리부에서 변경된 인 메모리 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체를 생성하는 공간 웹 객체 생성부; 및
    상기 공간 웹 객체 생성부에서 생성된 공간 웹 객체에 특정 공간 정보와 단어 정보에 대한 질의를 수행하여 해당 공간 정보와 단어 정보가 포함된 공간 웹 객체를 검색하는 공간 웹 객체 질의부;를 포함하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 시스템.
  2. 제 1항에 있어서,
    상기 인 메모리 분산 처리부는,
    상기 외부 저장장치에 저장된 데이터를 상기 인 메모리 데이터인 탄력적 분산 데이터 집합인 알디디(Resilient Distributed Dataset,RDD)로 변경하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 시스템.
  3. 제 2항에 있어서,
    상기 공간 웹 객체 생성부는,
    상기 인 메모리 분산 처리부에서 생성된 알디디인 텍스트 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체의 집합인 공간 웹 알디디를 생성하는 공간웹알디디(SpatialWebRDD) 모듈;
    상기 공간 웹 알디디를 공간 분할 알고리즘을 이용하여 공간 분할을 하고 분할된 각각의 공간을 하나의 파티션으로 구축한 그리드 알디디를 생성하는 그리드알디디(GriddedRDD) 모듈; 및
    상기 그리드 알디디의 각 파티션에 포함된 공간 웹 객체의 검색을 위한 인덱스를 구축한 인덱스 알디디를 생성하는 인덱스알디디(IndexedRDD) 모듈;을 포함하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 시스템.
  4. 제 3항에 있어서,
    상기 그리드알디디(GriddedRDD) 모듈은,
    상기 공간 웹 알디디를 공간 분할 알고리즘인 STR 알고리즘 또는 BSP 알고리즘을 이용하여 공간 분할을 수행하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 시스템.
  5. 제 4항에 있어서,
    상기 인덱스알디디(IndexedRDD) 모듈은,
    상기 공간 웹 객체의 인덱스로 QP-tree를 사용하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 시스템.
  6. 제 5항에 있어서,
    상기 공간 웹 객체 질의부는,
    상기 공간 정보와 단어 정보를 입력받아 해당 공간 범위 안에 있는 공간 웹 객체 중 해당 단어를 모두 포함하는 문서를 검색하는 불 레인지 질의(Boolean Range Query) 모듈; 및
    공간 정보와 단어 정보를 입력받아 해당 공간 위치에서 해당 단어를 모두 포함하는 가장 근접한 공간 웹 객체 K개를 검색하는 불 탑 케이 질의(Boolean Top-k Query) 모듈;을 포함하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 시스템.
  7. 제 1항 내지 제 6항 중 어느 한 항에 따른 분산 처리 기반 공간 웹 객체 검색 시스템을 이용한 분산 처리 기반 공간 웹 객체 검색 방법에 있어서,
    인 메모리 분산 처리부가 외부 저장장치에 저장된 데이터를 메모리 상에서 사용되는 인 메모리 데이터로 변경하는 인 메모리 분산 처리 단계;
    공간 웹 객체 생성부가 인 메모리 분산 처리부에서 변경된 인 메모리 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체를 생성하는 공간 웹 객체 생성 단계; 및
    공간 웹 객체 질의부가 공간 웹 객체 생성부에서 생성된 공간 웹 객체에 특정 공간 정보와 단어 정보에 대한 질의를 수행하여 해당 공간 정보와 단어 정보가 포함된 공간 웹 객체를 검색하는 공간 웹 객체 질의 단계;를 포함하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 방법.
  8. 제 7항에 있어서,
    상기 인 메모리 분산 처리 단계는,
    상기 인 메모리 분산 처리부가 외부 저장장치에 저장된 데이터를 인 메모리 데이터인 탄력적 분산 데이터 집합인 알디디(RDD)로 변경하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 방법.
  9. 제 8항에 있어서,
    상기 공간 웹 객체 생성 단계는,
    공간웹알디디(SpatialWebRDD) 모듈이 상기 인 메모리 분산 처리부에서 생성된 알디디인 텍스트 데이터에 공간 정보와 단어 정보를 각각 포함시켜 공간 웹 객체의 집합인 공간 웹 알디디를 생성하는 공간웹알디디 생성 공정;
    그리드알디디(GriddedRDD) 모듈이 상기 공간 웹 알디디를 공간 분할 알고리즘을 이용하여 공간 분할을 하고 분할된 각각의 공간을 하나의 파티션으로 구축한 그리드 알디디를 생성하는 그리드알디디 생성 공정; 및
    인덱스알디디(IndexedRDD) 모듈이 상기 그리드 알디디의 각 파티션에 포함된 공간 웹 객체의 검색을 위한 인덱스를 구축한 인덱스 알디디를 생성하는 인덱스알디디 생성 공정;을 포함하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 방법.
  10. 제 9항에 있어서,
    상기 공간 웹 객체 질의 단계는,
    불 레인지 질의(Boolean Range Query) 모듈이 공간 정보와 단어 정보를 입력받아 해당 공간 범위 안에 있는 공간 웹 객체 중 해당 단어를 모두 포함하는 문서를 검색하는 불 레인지 질의 공정; 및
    불 탑 케이 질의(Boolean Top-k Query) 모듈이 공간 정보와 단어 정보를 입력받아 해당 공간 위치에서 해당 단어를 모두 포함하는 가장 근접한 공간 웹 객체 K개를 검색하는 불 탑 케이 질의 공정;을 포함하는 것을 특징으로 하는 분산 처리 기반 공간 웹 객체 검색 방법.
KR1020170184381A 2017-12-29 2017-12-29 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법 KR102036314B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170184381A KR102036314B1 (ko) 2017-12-29 2017-12-29 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170184381A KR102036314B1 (ko) 2017-12-29 2017-12-29 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법

Publications (2)

Publication Number Publication Date
KR20190081670A true KR20190081670A (ko) 2019-07-09
KR102036314B1 KR102036314B1 (ko) 2019-10-25

Family

ID=67261241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170184381A KR102036314B1 (ko) 2017-12-29 2017-12-29 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법

Country Status (1)

Country Link
KR (1) KR102036314B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090072619A (ko) 2007-12-28 2009-07-02 삼성전자주식회사 시공간 웹 검색 방법 및 시스템
KR20090122801A (ko) * 2008-05-26 2009-12-01 엔에이치엔비즈니스플랫폼 주식회사 오너 단위의 파일 그룹화를 이용한 분산 파일 시스템 및파일 연산 방법
WO2010048172A1 (en) * 2008-10-20 2010-04-29 Cascaad Srl Social graph based recommender
KR101794883B1 (ko) * 2016-12-23 2017-11-09 주식회사 포스웨이브 분산 파일 시스템에서의 대용량 공간 데이터의 고속 분산 색인 생성 및 저장 방법
KR20170130178A (ko) * 2016-05-18 2017-11-28 전자부품연구원 분산 환경 기반 빅데이터 실시간 분석을 위한 인-메모리 db 연결 지원형 스케줄링 방법 및 시스템
KR101811468B1 (ko) * 2010-06-03 2017-12-21 톰슨 라이센싱 톱-k 처리를 이용한 의미 보강

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090072619A (ko) 2007-12-28 2009-07-02 삼성전자주식회사 시공간 웹 검색 방법 및 시스템
KR20090122801A (ko) * 2008-05-26 2009-12-01 엔에이치엔비즈니스플랫폼 주식회사 오너 단위의 파일 그룹화를 이용한 분산 파일 시스템 및파일 연산 방법
WO2010048172A1 (en) * 2008-10-20 2010-04-29 Cascaad Srl Social graph based recommender
KR101811468B1 (ko) * 2010-06-03 2017-12-21 톰슨 라이센싱 톱-k 처리를 이용한 의미 보강
KR20170130178A (ko) * 2016-05-18 2017-11-28 전자부품연구원 분산 환경 기반 빅데이터 실시간 분석을 위한 인-메모리 db 연결 지원형 스케줄링 방법 및 시스템
KR101794883B1 (ko) * 2016-12-23 2017-11-09 주식회사 포스웨이브 분산 파일 시스템에서의 대용량 공간 데이터의 고속 분산 색인 생성 및 저장 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
http://web.cs.wpi.edu/~matt/courses/cs563/talks/bsp/bsp.html *

Also Published As

Publication number Publication date
KR102036314B1 (ko) 2019-10-25

Similar Documents

Publication Publication Date Title
CN107038207B (zh) 一种数据查询方法、数据处理方法及装置
Xie et al. Simba: Efficient in-memory spatial analytics
CN107391554B (zh) 高效分布式局部敏感哈希方法
WO2015096582A1 (zh) 一种时空数据的索引建立方法、查询方法、装置及设备
US7945569B2 (en) Method and apparatus for querying spatial data
CN109255055B (zh) 一种基于分组关联表的图数据存取方法和装置
Zhang et al. Speeding up large-scale point-in-polygon test based spatial join on GPUs
CN106528787B (zh) 一种基于海量数据多维分析的查询方法及装置
JP2017512338A (ja) 第一クラスデータベース要素としての半構造データの実装
Hu et al. Top-k spatio-textual similarity join
Whitman et al. Distributed spatial and spatio-temporal join on apache spark
Su et al. Indexing and parallel query processing support for visualizing climate datasets
Whitman et al. Spatio-temporal join on apache spark
CN108549696B (zh) 一种基于内存计算的时间序列数据相似性查询方法
CN107451204B (zh) 一种数据查询方法、装置及设备
Belhassena et al. Trajectory big data processing based on frequent activity
Brisaboa et al. k 2-treaps: Range top-k queries in compact space
CN108121807B (zh) Hadoop环境下多维索引结构OBF-Index的实现方法
KR102036314B1 (ko) 분산 처리 기반 공간 웹 객체 검색 시스템 및 이를 이용한 분산 처리 기반 공간 웹 객체 검색 방법
Giannousis et al. Distributed execution of spatial SQL queries
Bachiega et al. An architecture for cost optimization in the processing of big geospatial data in public cloud providers
Zhang et al. Efficient parallel processing of distance join queries over distributed graphs
CN114385555A (zh) 一种数据查询方法、装置、设备及存储介质
CN111309704B (zh) 数据库操作方法和数据库操作系统
Liu et al. GB-Tree: An efficient LBS location data indexing method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right