KR20180077728A - Skyline querying method based on quadtree - Google Patents

Skyline querying method based on quadtree Download PDF

Info

Publication number
KR20180077728A
KR20180077728A KR1020160182373A KR20160182373A KR20180077728A KR 20180077728 A KR20180077728 A KR 20180077728A KR 1020160182373 A KR1020160182373 A KR 1020160182373A KR 20160182373 A KR20160182373 A KR 20160182373A KR 20180077728 A KR20180077728 A KR 20180077728A
Authority
KR
South Korea
Prior art keywords
skyline
node
point
points
computer device
Prior art date
Application number
KR1020160182373A
Other languages
Korean (ko)
Other versions
KR101914784B1 (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 KR1020160182373A priority Critical patent/KR101914784B1/en
Publication of KR20180077728A publication Critical patent/KR20180077728A/en
Application granted granted Critical
Publication of KR101914784B1 publication Critical patent/KR101914784B1/en

Links

Images

Classifications

    • G06F17/30424
    • 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/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • G06F17/30327

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer And Data Communications (AREA)

Abstract

A skyline querying method based on a quadtree includes a step in which a computer device generates a point quadtree using a data set; a step in which the computer device determines a local skyline for each of a plurality of end nodes which exist in the quadtree; and a step in which the computer device determines a global skyline using the local skyline for the plurality of end nodes. Accordingly, the present invention can perform a very fast skyline query.

Description

쿼드 트리에 기반한 스카이라인 질의 방법{SKYLINE QUERYING METHOD BASED ON QUADTREE}[0001] SKYLINE QUERYING METHOD BASED ON QUADTREE [0002]

이하 설명하는 기술은 스카이라인 질의 기법에 관한 것이다.The techniques described below relate to skyline query techniques.

인터넷 보급 및 스마트 기기의 대중화를 통해 네트워크에 매우 많은 데이터가 축적되고 있다. 최근 축적되는 데이터를 분석하여 정보를 제공하는 빅 데이터 서비스가 주목받고 있다.With the spread of the Internet and the popularization of smart devices, a lot of data is accumulating in the network. Big data services that provide information by analyzing recently accumulated data are attracting attention.

데이터 분석을 위한 다양한 기법이 있다. 그 중에서도 스카이라인 질의(skyline queries)는 사용자 및 기업의 의사 결정에 도움을 줄 수 있는 데이터 분석 기술이다.There are various techniques for data analysis. Among them, skyline queries are data analysis techniques that can help users and enterprises make decisions.

한국공개특허 제10-2015-0089542호Korean Patent Publication No. 10-2015-0089542

한대의 컴퓨터 장치를 이용하여 스카이라인을 연산하는 BNL, D&Q, SFS, Bitmap, NN, BBS등 다양한 기술들이 존재한다. 다만 이러한 기술은 다수의 컴퓨터를 이용한 병렬 처리가 어렵기 때문에 대용량의 데이터에 대해서는 매우 오랜 시간이 소요되거나 매우 큰 메모리 공간을 필요로 한다는 단점이 있다. 한편 다수의 컴퓨터나 멀티코어 프로세서를 활용하여 병렬적으로 스카이라인을 연산하는 MRBNL, PPPS등의 알고리즘들이 있지만, 이러한 알고리즘은 병렬 처리를 최대한 활용하지 못한다는 단점이 있다. There are a variety of technologies such as BNL, D & Q, SFS, Bitmap, NN, and BBS that use a single computer to compute the skyline. However, this technique has a disadvantage in that it requires a very long time or a very large memory space for a large amount of data because parallel processing using a plurality of computers is difficult. Meanwhile, there are algorithms such as MRBNL and PPPS that use parallel computer and multicore processor to compute the skyline in parallel, but these algorithms have a disadvantage that they can not make full use of parallel processing.

이하 설명하는 기술은 점 쿼드트리(point quadtree) 자료구조를 사용하여 데이터를 병렬처리에 적합하도록 분산하는 스카이라인 질의 기법을 제공하고자 한다.The technique described below is to provide a skyline query method that distributes data suitable for parallel processing using a point quadtree data structure.

쿼드 트리에 기반한 스카이라인 질의 방법은 컴퓨터 장치가 데이터 집합을 이용하여 점 쿼트드리를 생성하는 단계, 상기 컴퓨터 장치가 상기 쿼드 트리에 존재하는 복수의 말단 노드 각각에 대한 지역 스카이라인을 결정하는 단계 및 상기 컴퓨터 장치가 상기 복수의 말단 노드에 대한 지역 스카이라인을 이용하여 전역 스카이 라인을 결정하는 단계를 포함한다.A quad tree-based skyline query method includes the steps of a computer device generating a point quadtree using a data set, the computer device determining a local skyline for each of a plurality of end nodes present in the quadtree, And the computing device determining the global skyline using the local skyline for the plurality of end nodes.

이하 설명하는 기술은 맵리듀스 프레임워크(MapReduce framework)와 같은 병렬 처리 시스템에서 복수의 연산 장치에 연산량을 균등하게 분배하여 매우 빠른 스카이라인 질의가 가능하다.The techniques described below enable a very fast skyline query by evenly distributing computation quantities to a plurality of computing devices in a parallel processing system such as MapReduce framework.

도 1은 쿼드 트리에 기반한 스카이라인 질의 방법에 대한 순서도의 예이다.
도 2는 데이터가 분배되는 점 쿼드트리와 지역 쿼드트리에 대한 예이다.
도 3은 데이터가 분배되는 점 쿼드 트리에 대한 다른 예이다.
도 4는 데이터가 분배되는 점 쿼드 트리에 대한 또 다른 예이다.
도 5는 점 쿼드트리가 분할되는 예이다.
도 6은 점 쿼드트리가 생성되는 과정에 대한 순서도이다.
Figure 1 is an example of a flowchart for a quadtree-based skyline query method.
FIG. 2 is an example of a point quadtree and a local quadtree to which data is distributed.
Figure 3 is another example of a point quadtree in which data is distributed.
Figure 4 is another example of a point quadtree where data is distributed.
5 is an example in which a point quadtree is divided.
6 is a flowchart illustrating a process of generating a point quadtree.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The following description is intended to illustrate and describe specific embodiments in the drawings, since various changes may be made and the embodiments may have various embodiments. However, it should be understood that the following description does not limit the specific embodiments, but includes all changes, equivalents, and alternatives falling within the spirit and scope of the following description.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, A, B, etc., may be used to describe various components, but the components are not limited by the terms, but may be used to distinguish one component from another . For example, without departing from the scope of the following description, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.As used herein, the singular " include " should be understood to include a plurality of representations unless the context clearly dictates otherwise, and the terms " comprises & , Parts or combinations thereof, and does not preclude the presence or addition of one or more other features, integers, steps, components, components, or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Before describing the drawings in detail, it is to be clarified that the division of constituent parts in this specification is merely a division by main functions of each constituent part. That is, two or more constituent parts to be described below may be combined into one constituent part, or one constituent part may be divided into two or more functions according to functions that are more subdivided. In addition, each of the constituent units described below may additionally perform some or all of the functions of other constituent units in addition to the main functions of the constituent units themselves, and that some of the main functions, And may be carried out in a dedicated manner.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.Also, in performing a method or an operation method, each of the processes constituting the method may take place differently from the stated order unless clearly specified in the context. That is, each process may occur in the same order as described, may be performed substantially concurrently, or may be performed in the opposite order.

이하 설명하는 기술은 스카이라인 질의 기법에 관한 것이다. 먼저 스카이라인 질의에 대해 간략하게 설명한다. 스카이라인 질의는 다수의 기준이 있는 경우에 의사결정을 내리기 위한 기법에 해당한다. The techniques described below relate to skyline query techniques. First, the skyline query is briefly described. Skyline queries are a technique for making decisions when there are multiple criteria.

튜플(tuple)들의 전체집합을 D라고 하고, D에 포함된 튜플 p를 d개의 차원 값을 갖는 점이라고 생각할 때, p는 <p(1), p(2), …, p(d)>로 나타낼 수 있다. D에 포함된 두 개의 튜플 p와 r이 있을 때, (i) 모든 차원 k에 대해서 p(k) ≤ r(k)이고, (ii) 최소한 하나의 차원 j에 대해서 p(j) < r(j)인 경우 튜플 p가 튜플 r을 지배(dominate)한다고 정의한다. D의 스카이라인는 어떠한 다른 튜플에도 지배당하지 않는 모든 튜플들의 집합을 의미하고 스카이라인에 포함되는 튜플들을 스카이라인 튜플이라고 한다. Let p be the total set of tuples, and let p be the point with d dimension values. Let p be the p (1), p (2), ... , p (d) &gt;. (K) ≤ r (k) for all dimensions k and (ii) p (j) <r (k) for at least one dimension j when there are two tuples p and r contained in D j) defines that the tuple p dominates the tuple r. D's skyline is the set of all tuples that are not dominated by any other tuple, and the tuples included in the skyline are called skyline tuples.

노트북 종류Type of notebook 가격price 무게(kg)Weight (kg) AA 4040 2.02.0 BB 6060 2.52.5 CC 7070 1.01.0

예를 들어 상기 표 1에서와 같은 종류의 노트북이 존재하며 어떤 사용자가 "가격이 저렴하면서도 가벼운 노트북"을 사려고 한다고 가정하자. 노트북 B의 경우 노트북 A보다 가격도 비싸며, 무게도 더 나가기 때문에 사용자는 노트북 B를 전혀 고려하지 않을 것이다. 한편, 노트북 C는 노트북 A보다 가격은 비싸지만, 무게는 더 가볍기 때문에 사용자가 노트북 C가 A에 비해서 나쁘다고 할 수 없다. 즉, p(1)=40 ≤ r(1)=60, p(2)=2.0 ≤ r(2)=2.5 이며, j=1 인 경우에 대해 p(j)<r(j) 가 성립하므로 노트북 A는 노트북 B를 지배한다. 따라서 지배당한 노트북 B는 스카이라인의 정의에 따라 스카이라인에 포함되지 않는다. 한편 생각 해 볼 수 있는 다른 튜플들의 조합인 A와 C, B와 C에 대해서는 어느 한 튜플이 다른 튜플을 지배하지 못한다. 따라서 D의 스카이라인은 한번도 지배당하지 않은 A와 C의 집합이 된다.For example, suppose that there is a notebook of the same kind as in Table 1, and a user wants to buy a "lightweight notebook at a low price." Notebook B is more expensive and heavier than notebook A, so the user will not consider the notebook B at all. On the other hand, the notebook C is more expensive than the notebook A, but since the weight is lighter, the user can not say that the notebook C is worse than A. That is, since p (j) <r (j) holds for the case where p (1) = 40 ≤ r (1) = 60, p (2) = 2.0 ≤ r The notebook A dominates the notebook B. Thus, the ruled notebook B is not included in the skyline as defined by the skyline. On the other hand, for a combination of other tuples A and C, B and C, one tuple does not dominate the other. Thus, the skyline of D is a set of A and C that have never been dominated.

이하 설명하는 기술은 분산 처리 시스템에서 수행할 수 있다. 예컨대, 빅 데이터 처리와 관련하여 주목받는 맵리듀스 프레임워크 기반의 시스템에서 이하 설명하는 스카이라인 질의를 수행할 수 있다. The techniques described below can be performed in a distributed processing system. For example, the skyline query described below can be performed in a system based on the MapReduce framework, which is attracting attention in connection with big data processing.

구글에서 발표한 맵리듀스(MapReduce)는 분산 컴퓨팅을 효율적으로 지원하기 위한 프레임워크(Framework)이다. 맵리듀스 프레임워크에서는 다수의 컴퓨터(노드)를 네트워크로 연결하여 하나의 큰 클러스터를 구성한다. 데이터를 키와 값으로 이루어진 키-값 쌍(key-value pair)의 형태로 나타내며, 분산 파일 시스템(Distributed file system)에 의해서 다수의 컴퓨터에 분할 저장한다. 저장되어 있는 데이터에 연산을 수행하는 경우 사용자가 정해주는 두 가지 함수인 맵 함수(map function)와 리듀스 함수(reduce function)에 의해 수행된다. 맵 함수는 분산 파일 시스템에 저장되어 있는 키-값 쌍 하나를 입력으로 받아서 몇 개의 키-값 쌍을 출력해 준다. 출력된 모든 키-값 쌍들은 셔플링 단계(Shuffling phase)에 의해서 같은 키를 갖는 키-값 쌍들을 리스트로 모아준다. 리듀스 함수는 각각의 구분된 키 값과 그 키를 공유하는 값의 리스트를 입력으로 받아 몇 개의 키-값 쌍을 출력하여 다시 분산 파일 시스템에 저장한다. 모든 리듀스 함수가 끝남으로써 한 번의 맵리듀스 작업이 끝이 나며, 리듀스 함수의 출력을 이용하여 다른 맵리듀스 작업을 수행할 수 도 있다.Google MapReduce is a framework for efficiently supporting distributed computing. In the MapReduce framework, a large cluster is formed by connecting a large number of computers (nodes) via a network. Data is represented in the form of a key-value pair consisting of keys and values, and is divided and stored in a plurality of computers by a distributed file system. When performing the operation on the stored data, it is performed by a map function (function) and a reduce function (function), which are two functions to be set by the user. The map function takes one key-value pair stored in the distributed file system as input and prints out a few key-value pairs. All output key-value pairs list key-value pairs having the same key by the shuffling phase. The Reduce function takes a list of each distinct key value and a value that shares the key, outputs a few key-value pairs, and stores it in the distributed file system. One end of the MapReduce operation is done by ending all the Reduce functions, and you can perform other MapReduce operations using the output of the Reduce function.

분산 파일 시스템에 저장되어 있는 키-값을 이용하여 맵 함수를 호출하거나 셔플링 단계를 실행 하여 같은 키 값을 갖는 키-값의 리스트를 만들거나 하는 일들은 맵리듀스 프레임워크에서 사용자가 개입하지 않아도 자동으로 처리된다. 따라서 사용자는 맵 함수와 리듀스 함수가 입력을 받았을 때 각각의 함수에서 어떠한 연산을 하여 키-값 쌍을 출력할지를 정해주면, 맵리듀스 프레임워크가 연산을 분산시켜 수행한다. 다양한 맵리듀스 프레임워크의 구현이 있지만, 오픈 소스 진영의 하둡(Hadoop)이라는 구현이 널리 사용되고 있다.Calling a map function using a key-value stored in a distributed file system, or executing a shuffling step to create a list of key-values with the same key value, does not require the user to intervene in the MapReduce framework It is processed automatically. Therefore, when the map function and the reduction function receive input, the user decides which operation is performed by each function to output a key-value pair, and the MapReduce framework executes the operation in a distributed manner. There are a variety of implementations of the MapReduce framework, but an open source folkship called Hadoop is widely used.

맵리듀스 프레임워크를 활용하면 다양한 경우에 대해서 다수의 컴퓨터를 이용한 분산처리를 쉽게 할 수 있다. 이해를 돕기 위해서 파일에 들어있는 단어의 출현 횟수를 세는 예를 들어보자. 파일의 이름이 키로, 파일의 내용이 값으로 하는 키-값 쌍으로 분산 파일 시스템에 저장되어 있다고 가정하자. 이 때 사용자는 파일에 등장하는 모든 단어의 종류와 그 출현 횟수를 계산하고자 한다. 앞에서 설명 했듯이 사용자는 맵 함수와 리듀스 함수만을 목적에 맞게 정의해 주면 된다. 먼저 파일이름-파일내용 쌍이 맵 함수의 입력으로 들어간다. 그 때, 맵 함수는 파일내용에 들어 있는 단어를 키로 값은 숫자 1로 설정하여 출력한다. 그렇게 되면, (단어, 1)의 키-값 쌍들이 만들어 질 것이며, 키가 특정 단어인 키-값 쌍의 개수는 전체 문서에서의 그 특정 단어의 출현 횟수가 될 것이다. 따라서 셔플링 단계에 의해서 같은 키를 갖는 키-값 쌍들이 모여서 리듀스 함수의 입력으로 넘겨주고, 리듀스 함수에서는 그 키-값 쌍들의 개수를 세어주면 그 키의 출현 횟수를 알 수 있다. 따라서 리듀스 함수는 단어를 키로 그 단어의 출현 횟수를 값으로 하는 키-값 쌍을 만들어 출력하면, 우리는 그 단어의 모든 문서에서의 출현 횟수를 알 수 있다.By using the MapReduce framework, it is easy to distribute a large number of computers using various computers. For example, to count the number of occurrences of a word in a file. Suppose that the name of a file is a key, and the contents of the file are stored in the distributed file system as key-value pairs. At this time, the user wants to calculate the kind of each word appearing in the file and the number of occurrences thereof. As described earlier, you only need to define map functions and reduce functions to suit your purposes. First, the file name - file content pair enters the input of the map function. At that time, the map function outputs the word contained in the file contents as a key, and sets the value to 1. Then, the key-value pairs of (word, 1) will be created and the number of key-value pairs in which the key is a specific word will be the number of occurrences of that particular word in the entire document. Therefore, the key-value pairs having the same key are gathered by the shuffling step, and are passed to the input of the reduction function. In the reduction function, the number of the key-value pairs can be known by counting the number of the key-value pairs. Thus, if we print out a key-value pair with the word as the key and the number of occurrences of the word as the value, we can know the number of occurrences of the word in all documents.

키(파일이름)Key (file name) 값(파일내용)Value (file content) AA Hello WorldHello World BB Hello HadoopHello Hadoop CC Bye WorldBye World

3개의 파일과 그 내용이 상기 표 2에서와 같다고 가정한다. 키-값 쌍을 (키, 값)의 형태로 나타낸다고 하자. 먼저 3개의 맵 함수가 각각 (A, "Hello World"), (B, "Hello Hadoop"), (C, "Bye World")를 입력으로 하여 호출된다. (A, "Hello World")를 입력으로 받은 맵 함수는 단어를 분리하여 ("Hello", 1), ("World", 1)을 출력한다. 마찬가지로 ("Hello", 1), ("Hadoop", 1), ("Bye", 1), ("World", 1)이 나머지 두 개의 맵 함수에 의해서 출력이 될 것이다. 셔플링 단계에서는 맵 함수들이 출력한 총 6개의 키-값 쌍을 같은 키를 갖는 것끼리 묶어 준다. 즉, (("Hello", 1), ("Hello", 1)), (("World", 1), ("World", 1)), (("Hadoop", 1)), (("Bye", 1))로 묶이게 된다. 총 4개의 다른 키 값이 존재 하므로, 4개의 리듀스 함수가 각각의 키와 키-값 리스트를 입력으로 하여 호출된다. 먼저 (("Hello", 1), ("Hello", 1))에 의해서 호출 된 리듀스 함수는 총 2개의 키-값 쌍이 있으므로 ("Hello", 2)를 출력하며, 이는 "Hello"라는 단어가 2번 나왔음을 의미한다. 마찬가지로 ("World", 2), ("Hadoop", 1), ("Bye", 1)의 키-값 쌍이 발생하고 따라서 우리는 "Hello" 2번, "World" 2번, "Hadoop" 1번, "Bye" 1번 나왔음을 알 수 있다. 실제로는 이러한 과정이 맵리듀스 프래임워크에 의해서 다수의 컴퓨터를 활용하여 병렬적으로 처리가 되므로, 많은 양의 데이터에서 연산을 하게 되면 하나의 컴퓨터를 활용 하는 것 보다 더 빠르게 연산을 수행 하게 된다.It is assumed that the three files and their contents are as shown in Table 2 above. Suppose that a key-value pair is represented in the form of (key, value). First, the three map functions are called with (A, "Hello World"), (B, "Hello Hadoop"), and (C, "Bye World" ("Hello", 1), ("World", 1) is output as a map function that receives input (A, "Hello World" Likewise ("Hello", 1), ("Hadoop", 1), ("Bye", 1), ("World", 1) will be output by the remaining two map functions. In the shuffling step, a total of six key-value pairs output by the map functions are grouped together with the same key. 1), (("Hadoop", 1)), (("World", 1) "Bye", 1)). Since there are a total of four different key values, four reduction functions are called with each key and key-value list input. First, the reduction function called by (("Hello", 1), ("Hello", 1)) outputs a total of two key-value pairs ("Hello", 2) It means that the word came out twice. Similarly, key-value pairs of ("World", 2), ("Hadoop", 1), ("Bye", 1) occur so we have "Hello" 2, "World" 2, "Hadoop" And "Bye" 1 times. In practice, this process is performed in parallel by using multiple computers by the MapleDesktop framework. Therefore, when a large amount of data is processed, the operation is performed faster than using one computer.

이제 전술한 맵리듀스 프레임워크와 같은 시스템을 이용하여 스카이라인 질의를 수행하는 방법에 대해 설명한다. 이하 설명의 편의를 위해 스카이라인 질의를 수행하는 장치를 컴퓨터 장치라고 명명한다. 컴퓨터 장치는 분산 처리가 가능한 장치를 의미한다. Now, a method of performing a skyline query using the same system as the MapReduce framework described above will be described. For convenience of explanation, the apparatus for performing the skyline query will be referred to as a computer apparatus. A computer device means a device capable of distributed processing.

도 1은 쿼드 트리에 기반한 스카이라인 질의 방법(100)에 대한 순서도의 예이다. 컴퓨터 장치는 먼저 분석을 위한 데이터를 입력 받는다(110). 이후 크게 3가지 단계로 스카이라인 질의를 수행한다. 컴퓨터 장치는 입력 데이터를 이용하여 쿼드트리를 생성한다(120). 후술하겠지만 여기서 쿼드트리는 점 쿼드트리를 의미한다. 컴퓨터 장치는 쿼드트리의 말단 노드에 포함된 튜플 중에서 지역 스카이라인(local skyline)을 결정한다(130). 이후 컴퓨터 장치는 지역 스카이라인, 가상최대점 및 스카이필터를 이용하여 전역 스카이라인(global skyline)을 결정한다(140). 이하 각 단계에 대해 구체적으로 설명한다.Figure 1 is an example of a flowchart for a quadtree-based skyline query method 100. The computer device first receives data for analysis (110). Thereafter, the skyline query is performed in three stages. The computer device generates the quadtree using the input data (120). As will be described later, a quad tree means a point quad tree. The computer device determines 130 the local skyline among the tuples included in the end node of the quadtree. The computer device then determines a global skyline using local skylines, virtual maximum points, and sky filters (140). Each step will be described in detail below.

점 쿼드트리 생성Create point quad tree

데이터 집합 D는 d 차원 벡터의 집합이다. 데이터 집합 D에서 일부를 샘플링하여 점 쿼드트리를 생성할 수 있다. 즉 컴퓨터 장치는 D에 속한 샘플 집합 S를 기준으로 점 쿼드트리를 생성할 수 있다. 지역 쿼드트리를 사용하는 경우 쿼드트리 분기(분할)를 위해 일정한 임계값(threshold)을 설정해야 한다. 그러나 점 쿼드트리를 사용하면 노드 분할을 위한 임계값이 필요 없고, 노드를 자식 노드들로 나누는 경우 반드시 하나의 노드에 속한 점들은 모두 스카이라인이 아니다. 도 2는 데이터가 분배되는 점 쿼드트리와 지역 쿼드트리에 대한 예이다. 도 2(a)는 점 쿼드트리의 예이고, 도 2(b)는 지역 쿼드트리에 대한 예이다. 도 2(a)와 같은 경우 노드 4에 있는 모든 점들은 점1에 의해서 지배 되기 때문에 노드 4에는 스카이라인 점이 없음을 알 수 있다. 이에 반하여 도 2(b)에서와 같이 지역 쿼드트리를 사용한 경우 노드 4에 있는 점은 노드 1에 아무 점도 없기 때문에 제거되지 않는다. Data set D is a set of d dimensional vectors. You can create a point quad tree by sampling a portion of data set D. That is, the computer device can generate a point quad tree based on the sample set S belonging to D. If you use a local quadtree, you must set a certain threshold for quadtree branching. However, using a point quadtree does not require a threshold for node partitioning, and when dividing a node into child nodes, all the points belonging to one node are not skylines. FIG. 2 is an example of a point quadtree and a local quadtree to which data is distributed. FIG. 2 (a) is an example of a point quad tree, and FIG. 2 (b) is an example of a region quad tree. In the case of FIG. 2 (a), all the points in node 4 are dominated by point 1, so node 4 has no skyline point. On the other hand, when a local quad tree is used as shown in FIG. 2 (b), the point at node 4 is not removed because there is no point at node 1.

지역 쿼드트리의 노드를 나눌 때 항상 중앙 값으로 나눴기 때문에 문제가 되지 않지만, 점 쿼드트리를 사용하기 위해서는 어떤 점으로 나눠야 하는지를 결정해야 한다. 또한 언제 쿼드트리 나누기를 멈춰야 하는지도 결정해야 한다. It is not a problem because you always divide the nodes of the region quad tree by the median value, but you have to decide which point to divide to use the point quad tree. You also have to decide when to stop the quadtree break.

먼저 어느 점으로 나눠야 하는지는 다음과 같이 결정할 수 있다. 도 2(a)에서와 같이 점1로 데이터를 나눈 경우를 보자. 단순한 스카이라인 연산 알고리즘이라면 노드1에 있는 점이 노드1에 있는 다른 점을 지배하는지, 노드 1에 있는 점이 노드 2에 있는 다른 점을 지배하는지, …, 노드 4에 있는 점이 노드 4에 있는 다른 점을 지배하는지의 총 4*4 = 16가지의 경우를 따진다. 그리고 각각을 (노드x,노드y)로 나타낸다. 이 경우 (노드2,노드2)는 노드 2의 각각의 점들이 노드 2의 다른 점들에 의해 지배되는지를 따진다는 뜻이다. 노드 2에는 점이 4개가 있으므로 각 점들은 자신을 제외한 3개의 점에 의해서 지배되는지를 따져야 한다. 즉 4*3 번의 비교를 해야한다. (노드2, 노드3)의 경우 노드 2에는 점이 4개, 노드 3의 경우 점이 1개 이므로 4*1번의 비교를 해야한다. 정리하면 (노드1, 노드1), …, (노드4, 노드4) 의 총 16가지의 경우를 따져야 하며 각각의 경우도 노드에 포함되어 있는 점의 수에 따라 비교횟수가 결정된다.First, it is possible to decide which point to divide into as follows. As shown in FIG. 2 (a), let us consider a case where data is divided into a point 1. A simple skyline operation algorithm determines if a point on node 1 dominates another point on node 1, a point on node 1 dominates another point on node 2, ... , And whether the point at node 4 dominates the other point in node 4 is 4 * 4 = 16 cases. And denote each (node x, node y). In this case (node 2, node 2) it means that each point of node 2 is dominated by the other points of node 2. Since there are four points in node 2, each point must be judged by three points excluding itself. That is, 4 * 3 comparisons are required. (Node 2, node 3), the node 4 has 4 points and the node 3 has 1 point. In summary (Node 1, Node 1), ... , (Node 4, node 4). In each case, the number of comparisons is determined by the number of points included in the node.

하지만 도 2(a)의 점 쿼드트리를 이용하는 경우 노드 3에 있는 점들은 노드 2의 점들을 지배하지 못함을 알 수 있다. 따라서 점1로 나눈 경우에는 노드 3에 있는 점들끼리, 노드 2에 있는 점들끼리만 비교하면 스카이라인을 구할 수 있다. 노드 4는 이미 지배 됐음을 알 수 있기에 노드 2의 점이 노드 4의 점을 지배하는지 비교하지 않아도 되며, 노드 1에는 점1만 포함되어 노드 1에 있는 점과 노드 1에 있는 다른 점을 비교하지 않아도 된다. 정리하면 4*4가지 중에 (노드3, 노드3), (노드2, 노드2)에서 내부적으로 스카이라인을 찾는 횟수만 따지면 된다. 노드3에는 1개의 점만 있으므로 (노드3,노드3)은 1*0=0회만 비교하면 되고, 노드2에는 4개의 점이 있어 (노드2,노드2)는 4*3=12회 비교하여야 해서 전체적으로는 12회를 비교해야한다.However, when the point quad tree of FIG. 2 (a) is used, it can be seen that the points at the node 3 do not dominate the points at the node 2. Therefore, when dividing by the point 1, the skyline can be obtained by comparing only the points on the node 3 and the points on the node 2. Since node 4 has already been dominated, it is not necessary to compare whether the point of node 2 dominates the point of node 4, and node 1 contains only point 1, so that the point on node 1 is not compared with the other points on node 1 do. In summary, you only need to find the number of skylines internally in 4 * 4 nodes (node 3, node 3), (node 2, node 2). Since there is only one point in node 3 (node 3, node 3), it is only necessary to compare 1 * 0 = 0 times and there are 4 points in node 2 (node 2 and node 2) Should compare 12 times.

도 3은 데이터가 분배되는 점 쿼드 트리에 대한 다른 예이다. 도 3과 같이 점 2로 노드를 나눈 경우, (노드3,노드3)은 2*1 = 2회, (노드2,노드2)는 1*0=0회 이므로 총 2회의 비교만으로 스카이라인을 찾을 수 있다. 따라서 도 2(a)보다 도 3이 더 효율적인 점-쿼드트리이다. Figure 3 is another example of a point quadtree in which data is distributed. As shown in FIG. 3, when the node is divided into two points (node 3 and node 3), 2 * 1 = 2 times and (node 2, node 2) Can be found. Thus, Figure 3 is a more efficient point-quad tree than Figure 2 (a).

2차원 데이터의 경우 항상 두 가지 경우만 따지면 되지만 다차원의 경우 더욱 많은 경우의 수가 생긴다. 다차원의 경우를 일반적으로 처리하기 위해 아래의 수학식 1을 사용한다. 수학식 1은 주어진 노드 n을 노드 안의 점 p로 나눴을 때 줄어드는 비교 횟수를 계산한다. 따라서 줄어드는 비교 횟수가 최대인 점으로 나누는 것이 가장 효율적인 점-쿼드트리가 된다.For two-dimensional data, there are always two cases, but for multidimensional cases, there are more cases. In order to deal with the multidimensional case in general, the following Equation 1 is used. Equation 1 computes the number of comparisons that are reduced when a given node n is divided by a point p in the node. Therefore, dividing by the maximum number of comparisons is the most efficient point-quad tree.

Figure pat00001
Figure pat00001

수학식 1에서 S(n)은 노드 n의 영역에 포함되어 있는 샘플 점들의 집합이다. 또한 n.child는 노드 n을 점 p로 나눴을 때 자식 노드의 집합이며 nr은 점 p에 의해 확실하게 지배당하는 노드이다(예컨대, 도 2(a)의 노드4). 점 p에 의해 확실하게 지배당하는 노드는 어느 차원 데이터의 경우에도 단 하나만 존재한다.

Figure pat00002
는 자식 노드 nc에 들어 있는 샘플 점들의 스카이라인 점들의 좌표의 최대 값으로 만든 점이다.
Figure pat00003
를 가상최대점이라고 한다. 예를 들어 점들이 (2,8), (4,5), (1,7)이 있다면 가상 최대점은 (max(2,4,1), max(8,5,7))=(4,8) 이다. 만약 점p가 이 가상 최대점을 지배하지 못하는 경우, 점 p는 자식 노드 nc안에 포함된 어떠한 점도 지배하지 못한다. 수학식 1의 첫 번째 항은 지배되지 않은 노드 (nr 이 아닌 모든 노드)의 점들이 비교하지 않아도 되는 점들의 횟수를 구한다. 수학식 1의 두 번째 항은 nr에 있는 점들은 항상 스카이라인 점이 아니므로 줄어드는 비교 횟수를 의미한다.In Equation (1), S (n) is a set of sample points included in the region of the node n. Also n.child is the node being reliably controlled by a set of child nodes, n r is the time point p divided the node n to a point p (e.g., nodes of FIG. 2 (a) 4). There is only one node that is reliably governed by point p in any dimension data.
Figure pat00002
Is the maximum value of the coordinates of the skyline points of the sample points contained in the child node n c .
Figure pat00003
Is called a virtual maximum point. For example, if the points are (2,8), (4,5), (1,7), the virtual maximum point is max (2,4,1), max (8,5,7) , 8). If the point p does not dominate this virtual maxima, the point p does not dominate any points contained in the child node n c . The first term of Equation (1) finds the number of points at which the points of an unguided node (all nodes other than n r ) need not be compared. The second term in Equation (1) means the number of comparisons reduced because the points in n r are not always skyline points.

노드 n을 나누는 경우 노드 n에 있는 모든 점에 대해서 줄어드는 비교 횟수를 수학식 1을 이용하여 계산하고 그것이 최소로 되는 점을 기준으로 쿼드트리를 나눈다. 이때, 노드에 있는 모든 점들을 기준으로 나눠 볼 필요는 없다. 도 4는 데이터가 분배되는 점 쿼드 트리에 대한 또 다른 예이다. 도 4와 같이 점3은 점1에 의해서 지배되는 데, 점3을 기준으로 데이터를 나누게 되면, 점1을 이용하여 나눴을 때보다 항상 더 많은 비교를 해야한다. 따라서 샘플 중에 스카이라인인 점을 고르고, 그 스카이라인 점마다 그 점으로 나눴을 때 줄어드는 비교 횟수를 구하고, 그 횟수가 가장 큰 점으로 노드를 나누는 것이 바람직하다.If node n is divided, the number of comparisons to be reduced for all points in node n is calculated using Equation 1, and the quad tree is divided based on the minimum number of comparisons. At this time, it is not necessary to divide all the points in the node. Figure 4 is another example of a point quadtree where data is distributed. As shown in FIG. 4, point 3 is dominated by point 1, but if we divide the data by point 3, we must always make more comparisons than when we divide point 1. Therefore, it is desirable to select a skyline point in the sample, obtain the number of times of comparison when the skyline point is divided by that point, and divide the node by the point of greatest number of times.

도 5는 점 쿼드트리가 분할되는 예이다. 데이터 집합 D에 속한 샘플 집합 S ={p2, p4, p6, p8, p10, p12, p14, p16}이다. 도 5(a)는 샘플 집합 S에 속한 점들이 루트 노드인 n0에 배치된 상태를 도시한다. SL(S) = {p2, p4, p8, p10, p12, p14}이다. SL(P)는 점의 집합 P에 대한 스카이라인을 의미한다. 따라서 SL(S)는 도 5(a)의 전제 샘플 집합 S에 대한 스카이라인을 의미한다. 스카이라인에 속하는 점들이 이후 노드를 분할하는 기준이 되는 후보가 된다. 즉, 노드 n을 분할하기 위한 후보 집합을 C(n)라고 하면 C(n0) = SL(S)이다.5 is an example in which a point quadtree is divided. The sample set S = {p 2 , p 4 , p 6 , p 8 , p 10 , p 12 , p 14 , p 16 } belonging to the data set D is. FIG. 5 (a) shows a state in which points belonging to the sample set S are arranged at n 0 , which is a root node. SL (S) = {p 2 , p 4 , p 8 , p 10 , p 12 , p 14 }. SL (P) denotes the skyline for the set P of points. Therefore, SL (S) means the skyline for the prime sample set S of FIG. 5 (a). The points belonging to the skyline become candidate candidates for dividing the node thereafter. That is, let C (n) be a candidate set for dividing node n, C (n 0 ) = SL (S).

도 5(b)와 같이 n0가 점 p4를 기준으로 분할된다면, S는 S(n1) = {p4}, S(n2) = {p2, p10, p14, p16}, S(n3) = {p8, p12}, S(n4) = {p6}가 된다. C(n2) = {p2, p10, p14}이기 때문에 n2의 가상 최대점

Figure pat00004
은 = {5,9}이다. 도 5(b)에서 가상 최대점을 별표로 표시하였다. p4
Figure pat00005
를 지배하지 못하기 때문에 S(n2)에 속한 점들 중 어느 점이 지역 스카이라인지 따질 때 p4를 판단할 필요가 없다. Even if n 0 is divided based on the points p 4 as shown in 5 (b), S is S (n 1) = {p 4}, S (n 2) = {p 2, p 10, p 14, p 16 }, S (n 3 ) = {p 8 , p 12 }, and S (n 4 ) = {p 6 }. Since C (n 2 ) = {p 2 , p 10 , p 14 }, the virtual maximum point of n 2
Figure pat00004
Is = {5,9}. In FIG. 5 (b), the virtual maximum points are marked with an asterisk. p 4 is
Figure pat00005
It is not necessary to determine p 4 when a point in S (n2) belongs to the local skyline.

노드 n4는 최소점이 p4이기 때문에 배제(pruned)된다. p4는 스카이 필터에 해당한다. p6는 배제(pruned)되는 노드 n4에 위치기 때문에 p6를 제외한 나머지 샘플 점에 대해서는 p6를 지배하는지 판단할 필요가 없다. 도 5(b)에서는 배제된 노드를 삭제선으로 표시하였다. C(n0)에 속한 모든 점들에 대하여 (n0,p4)에 대한 수학식 1의 연산 값 ≥ (n0,pi)에 대한 수학식 1의 연산 값의 관계를 갖는다. 따라서 n0를 분할하기 위한 점으로 p4를 선택한다.Node n 4 is pruned because the minimum point is p 4 . p 4 corresponds to a sky filter. Since p 6 is located at the node n 4 to be pruned, it is not necessary to determine if it dominates p 6 for the remaining sample points except p 6 . In Fig. 5 (b), the excluded nodes are indicated by deletion lines. (N 0 , p i ) in Equation (1) with respect to (n 0 , p 4 ) for all points belonging to C (n 0 ). Therefore, we choose p 4 as the point for dividing n 0 .

노드 n2는 n1 이나 n3보다 많은 샘플 점들을 갖는다. 도 5(c)는 n2에 대한 분할 예를 설명한다. C(n2)에 속한 후보 점들 중에서 p14가 수학식 1의 결과값이 가장 크기 때문에 p14를 n2에 대한 기준점으로 선택한다. Node n 2 has more than n 1 or n 3 sample points. Figure 5 (c) illustrates the example split for n 2. Among candidate points belonging to the C (n 2) p. 14, because the size is the result of the equation (1) selects the p 14 as a reference point for n 2.

도 5(c)에서 n2를 분할하는 예를 도시하였다. n2를 분할하면 지역 스카이라인과 전역 스카이라인을 연산하는 시간이 줄어든다는 전제하에 n2를 분할하는 것이다. 즉, n2를 분할하기 위한 기준점을 찾은 후 실제 분할하기에 앞서서 노드를 분할하는 것이 스카이라인 연산 시간을 줄이는 것인지 확인해야 한다. 이를 판단하기 위해 각 노드의 스카이라인을 구한데 필요한 시간을 예측한다. 스카이라인 연산 시간을 예측하는 방법은 종래 연구된 기법을 활용할 수도 있다.FIG. 5C shows an example of dividing n 2 . Dividing the n 2 to n 2 divide the assumption is the time to calculate a local and global skyline skyline reduced. In other words, it is necessary to find a reference point for dividing n 2, and confirm that dividing the node before the actual division reduces the skyline operation time. To determine this, we estimate the time required to find the skyline of each node. The method of predicting the skyline operation time may utilize a conventionally studied technique.

스카이라인 개수는 AlogB|N|로 추정할 수 있다. 여기서 A, B는 상수이고, N는 집합에 있는 점들의 숫자이다. 점 쿼드트리를 생성하기 위해 샘플한 점들을 2개의 그룹 S1과 S2로 나눈다. 이 때 그룹의 크기는 같지 않게 한다. 나눠진 그룹마다 각자 스카이라인을 계산한다. 샘플이기 때문에 간단한 알고리즘을 써도 빠르게 계산할 수 있다. 상수 A와 B는 아래의 수학식 2를 통해 연산할 수 있다.The number of skylines can be estimated as Alog B | N |. Where A and B are constants and N is the number of points in the set. To create a point quad tree, divide the sampled points into two groups S 1 and S 2 . The size of the group is not equal. Each divided group calculates its own skyline. Because it is a sample, it can be calculated quickly by using a simple algorithm. The constants A and B can be calculated by the following equation (2).

Figure pat00006
Figure pat00006

SL(S1)은 그룹 S1의 스카이라인 점들의 집합이고, SL(S2)은 그룹 S2의 스카이라인 점들의 집합이다.SL (S 1 ) is a set of skyline points of group S 1 , and SL (S 2 ) is a set of skyline points of group S 2 .

이제 점-쿼드트리의 각각의 노드에 있는 점들의 예상되는 스카이라인 개수를 구할 수 있다. 컴퓨터 장치는 주어진 쿼드트리를 사용하였을 때 예상되는 지역 스카이라인 및 전역 스카이라인 연산 시간을 예측하고, 현재 구성된 쿼드트리에서 노드를 더 분할하는 것이 연산 시간이 줄어든다고 예상되면 노드를 분할한다.Now we can get the expected number of skylines of the points at each node of the point-quad tree. The computer device predicts the expected local skyline and global skyline computing time when using a given quadtree and splits the node if it is expected that further partitioning of the node in the currently configured quadtree will reduce the computation time.

쿼드트리의 노드 n이 주어 졌을 때, 지역 스카이라인 계산 시간은

Figure pat00007
으로 계산한다. 여기서 |S|는 쿼드트리를 만들기 위해 사용한 샘플 점의 수이고, |D|는 전체 데이터의 수이다. 전역 스카이라인 계산 시간은
Figure pat00008
으로 계산한다. |up(n)|은 노드 n에 있는 점들을 지배할 수도 있는 점들의 집합의 크기이다. Given node n in the quadtree, the local skyline computation time is
Figure pat00007
. Where | S | is the number of sample points used to create the quadtree, and | D | is the total number of data. The global skyline calculation time is
Figure pat00008
. | up (n) | is the size of the set of points that may dominate the points at node n.

한편 컴퓨터 장치는 병렬 처리가 가능한 개별 머신에 일정한 작업을 분산 처리한다. 따라서 노드에 대한 스카이라인 연산을 개별 머신에 일정하게 분배하는 것을 전제로 스카이라인 연산 시간을 예상한다. 또한 실제 스카이라인 연산에서도 스카이라인 연산 시간 예상에서 분배한 대로 작업을 수행한다. 병렬 처리 시스템을 고려하여 아래의 수학식 3과 같이 지역 스카이라인 연산 시간과 전역 스카이라인 연산 시간을 합산한 전체 스카이라인 연산 시간

Figure pat00009
을 예측할 수 있다.On the other hand, computer devices distribute certain tasks to individual machines capable of parallel processing. Therefore, the skyline operation time is expected based on the assumption that the skyline operation on the node is uniformly distributed to individual machines. In addition, the actual skyline operation is performed in accordance with the distribution of the skyline calculation time estimate. In consideration of the parallel processing system, the total skyline calculation time obtained by adding the local skyline operation time and the global skyline operation time as shown in Equation 3 below
Figure pat00009
Can be predicted.

Figure pat00010
Figure pat00010

여기서 m은 분산 처리 시스템에서 이용가능한 개별 머신의 개수를 의미한다.Where m is the number of individual machines available in the distributed processing system.

전술한 점 쿼드트리 생성과정을 정리한다. 도 6은 점 쿼드트리가 생성되는 과정(200)에 대한 순서도이다. 컴퓨터 장치는 노드에 소속된 샘플점을 입력받는다(210). 최초에는 루트노드부터 시작하게 된다. 이후 컴퓨터 장치는 전술한 바와 같이 수학식 1을 이용하여 해당 노드를 분할하기 위한 기준점을 선택한다(220). 컴퓨터 장치는 기준점을 이용하여 분할되는 경우 스카이라인 연산 시간을 예상한다(230). 컴퓨터 장치는 기준점을 사용하여 분할한 노드를 이용한 스카이라인 연산 시간과 분할 전 현재 쿼드 트리를 이용한 연산 시간을 비교한다(240). 분할하는 경우 연산시간이 줄어든다면, 컴퓨터 장치는 선택한 기준점을 사용하여 노드를 분할한다(250). 더 이상 노드를 분할할 수 없다면 쿼드트리가 완성된 것이다. 이후 완성된 쿼드트리를 기반으로 스카이라인을 결정한다. 스카이라인을 결정하는 과정은 종래 기법과 유사할 수 있다.The point quad tree generation process described above is summarized. FIG. 6 is a flowchart of a process 200 of generating a point quadtree. The computer device receives a sample point belonging to the node (210). Initially, it starts with the root node. Then, the computer device selects a reference point for dividing the corresponding node using Equation (1) as described above (220). The computer device estimates the skyline operation time when it is divided using the reference point (230). The computer device compares the operation time of the skyline using the node divided using the reference point with the operation time using the quad tree before division (240). If the computation time is reduced in the case of partitioning, the computer device divides the node using the selected reference point (250). If you can not split the node anymore, the quad tree is complete. The skyline is then determined based on the completed quad tree. The process of determining the skyline may be similar to the conventional technique.

지역 스카이라인 결정 Regional Skyline Decision

지역 스카이라인은 맵리듀스 프레임워크와 같은 병렬 처리 시스템에서 수행한다. 전술한 쿼드트리 생성과정에서 연산 시간을 예측하면서 개별 머신에 작업을 분배하는 것을 가정하였다. 실제 지역 스카이라인 결정에서도 예측 과정에서 분배한 대로 각 개별 머신이 각 노드에 대한 연산을 수행한다. The local skyline is performed in a parallel processing system such as the MapReduce framework. It is assumed that the task is distributed to individual machines while predicting the computation time in the quad tree generation process described above. In the actual regional skyline determination, each individual machine performs computation on each node as it is distributed in the forecasting process.

점 쿼드트리 말단 노드에서 지역 스카이라인을 결정한다. 쿼드트리 생성과정에서 배제된 노드에 대해서는 스카이라인을 결정하지 않는다. 전술한 바와 같이 해당 노드에 포함된 샘플에 대해 연산을 수행하여 스카이라인을 결정한다. 스카이라인이 결정되면 이후 과정에서 지배 관계를 확인하는 횟수를 줄이기 위해 가상 최대점과 스카이필터를 결정한다. 가상 최대점은 스카이라인을 구성하는 점 중에서 가장 큰 값을 갖는 점을 의미한다. 스카이 필터는 해당 노드에서 가장 최젓값을 갖는 점을 의미한다. 전술한 바와 같이 가상 최대점과 스카이 필터는 쿼드트리를 생성하는 과정에 사용된다.The point quad tree determines the local skyline at the end node. The skyline is not determined for the nodes excluded from the quad tree generation process. As described above, an operation is performed on the samples included in the node to determine the skyline. Once the skyline is determined, the virtual maximum point and the sky filter are determined to reduce the number of times the dominant relationship is confirmed in the process. The virtual maximum point means the point having the largest value among the points constituting the skyline. The sky filter means the point at which the node has the most value. As described above, the virtual maximum point and the sky filter are used in the process of generating a quadtree.

전역 스카이라인 결정Determining the global skyline

배제되지 않은 쿼트트리 말단 노드에서, 각각 지역 스카이라인을 구성하는 점을 결정하였다. 스카이라인을 구성하는 점 p가 지역 스카이라인을 구성하는 점 중에서 가상 최대점을 지배하는 점 p'에 의해 지배되지 않는다면 해당 점 p는 전역 스카이라인을 구성하는 점으로 결정된다.At the non-excluded quadtree end node, we decided to construct the local skyline, respectively. If the point p constituting the skyline is not dominated by the point p 'that dominates the virtual maximum point among the points constituting the local skyline, the point p is determined as a point constituting the global skyline.

본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.The present embodiment and drawings attached hereto are only a part of the technical idea included in the above-described technology, and it is easy for a person skilled in the art to easily understand the technical idea included in the description of the above- It will be appreciated that variations that may be deduced and specific embodiments are included within the scope of the foregoing description.

Claims (7)

컴퓨터 장치가 데이터 집합을 이용하여 점 쿼트드리를 생성하는 단계;
상기 컴퓨터 장치가 상기 쿼드 트리에 존재하는 복수의 말단 노드 각각에 대한 지역 스카이라인을 결정하는 단계; 및
상기 컴퓨터 장치가 상기 복수의 말단 노드에 대한 지역 스카이라인을 이용하여 전역 스카이 라인을 결정하는 단계를 포함하는 쿼드 트리에 기반한 스카이라인 질의 방법.
The computer device generating a point quadrature using the data set;
Determining a local skyline for each of a plurality of end nodes present in the quadtree; And
Wherein the computer device determines a global skyline using a local skyline for the plurality of end nodes.
제1항에 있어서,
상기 컴퓨터 장치는 특정 점을 이용하여 자식 노드를 분할하는 경우 줄어드는 비교 횟수가 최대인 상기 특정 점으로 자식 노드를 분할하면서 상기 점 쿼드트리를 생성하는 쿼드 트리에 기반한 스카이라인 질의 방법.
The method according to claim 1,
Wherein the computer device generates the point quadtree by dividing a child node into the specific point where the number of comparisons is minimized when dividing a child node using a specific point.
제1항에 있어서,
상기 컴퓨터 장치는 아래 수식을 이용하여 상기 데이터 세트를 갖는 노드를 상기 노드에 속한 어느 하나의 점으로 분할하는 방식으로 상기 점 쿼드트리를 생성하되,
상기 하나의 점은 상기 노드에 속한 점들 중에 상기 노드를 복수의 서브 노드로 분할하는 경우 상기 서브 노드 중 스카이라인 연산을 위해 상기 어느 하나의 점에 지배되지 않는 서브 노드에 속한 점들 중 비교하지 않아도 되는 점들의 횟수 및 상기 어느 하나의 점에 지배되는 서브 노드에 속한 점들의 횟수를 합한 값이 최대가 되는 점인 쿼드 트리에 기반한 스카이라인 질의 방법.
The method according to claim 1,
The computer device generates the point quadtree by partitioning a node having the data set into one point belonging to the node using the following equation,
Wherein the one point is a point among the points belonging to the subnodes that are not dominated by any one of the points for the skyline operation of the subnodes when the node is divided into a plurality of subnodes among the points belonging to the node Wherein the sum of the number of points and the number of points belonging to a sub node dominated by any one of the points is a maximum.
제1항에 있어서,
상기 생성하는 단계는
상기 컴퓨터 장치는 특정 점을 이용하여 노드를 분할하는 경우 줄어드는 비교 횟수가 최대인 상기 특정 점을 결정하는 단계; 및
상기 컴퓨터 장치가 상기 특정 점으로 자식 노드를 분할하는 경우 상기 분할된 자식 노드에 속한 점들 중 일부인 점들을 2개의 샘플 집합으로 샘플링하고, 상기 샘플 집합에 속한 점들에 대해 스카이라인을 연산하여, 현재 트리의 구조보다 상기 특정 점으로 자식노드를 분할하는 경우 스카이라인 연산시간이 줄어들면, 상기 특정 점을 이용하여 상기 자식 노드를 분할하는 단계를 포함하는 쿼드 트리에 기반한 스카이라인 질의 방법.
The method according to claim 1,
The generating step
The computer device comprising: determining the specific point at which the number of comparisons to be reduced is maximum when dividing a node using a specific point; And
When the computer device divides a child node into the specific point, sampling points that are part of the points belonging to the divided child node into two sample sets, calculating a skyline for points belonging to the sample set, And dividing the child node using the specific point if the skyline operation time is reduced when dividing the child node into the specific point than the structure of the quad tree.
제1항에 있어서,
상기 컴퓨터 장치는 상기 복수의 말단 노드에 대한 지역 스카이라인, 가상 최대점 및 스카이필터를 이용하여 상기 전역 스카이라인을 결정하는 쿼드 트리에 기반한 스카이라인 질의 방법.
The method according to claim 1,
Wherein the computer device determines the global skyline using a local skyline, a virtual maximum point, and a sky filter for the plurality of end nodes.
제1항에 있어서,
상기 컴퓨터 장치는 맵리듀스 프레임워크에 기반한 시스템인 쿼드 트리에 기반한 스카이라인 질의 방법.
The method according to claim 1,
Wherein the computer device is a system based on a MapReduce framework, the quad tree based skyline query method.
제6항에 있어서,
상기 맵리듀스 프레임워크에 속한 복수의 개별 머신이 상기 지역 스카이라인 또는 상기 전력 스카이라인을 결정하는 과정을 병렬적으로 수행하되,
상기 말단 노드에 속한 점들의 개수를 기준으로 상기 맵리듀스 프레임워크에 속한 개별 머신에서 전체 연산 시간이 최소가 되도록 상기 지역 스카이라인 또는 상기 전력 스카이라인 결정 작업을 상기 개별 머신에 분산하는 쿼드 트리에 기반한 스카이라인 질의 방법.
The method according to claim 6,
Wherein a plurality of individual machines belonging to the MapReduce framework determine the local skyline or the power skyline in parallel,
Based on a quadtree that distributes the local skyline or power skyline determination operations to the respective machines such that the total computation time is minimized on an individual machine belonging to the MapReduce framework based on the number of points belonging to the end node Skyline query method.
KR1020160182373A 2016-12-29 2016-12-29 Skyline querying method based on quadtree KR101914784B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160182373A KR101914784B1 (en) 2016-12-29 2016-12-29 Skyline querying method based on quadtree

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160182373A KR101914784B1 (en) 2016-12-29 2016-12-29 Skyline querying method based on quadtree

Publications (2)

Publication Number Publication Date
KR20180077728A true KR20180077728A (en) 2018-07-09
KR101914784B1 KR101914784B1 (en) 2018-11-02

Family

ID=62919120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160182373A KR101914784B1 (en) 2016-12-29 2016-12-29 Skyline querying method based on quadtree

Country Status (1)

Country Link
KR (1) KR101914784B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459971A (en) * 2020-04-01 2020-07-28 辽宁大学 Skyline-join query processing method based on crowdsourcing

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947904B (en) * 2019-03-22 2021-07-30 东北大学 Preference space Skyline query processing method based on Spark environment
CN110245151B (en) * 2019-05-30 2021-07-13 湖南大学 Data point group query method and device, computer equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090100852A (en) * 2008-03-21 2009-09-24 고려대학교 산학협력단 Method and apparatus of continuous skyline queries using cell state and recording medium using this
KR20100097834A (en) * 2009-02-27 2010-09-06 고려대학교 산학협력단 Apparatus and method for executing continuous skyline query
KR20110067781A (en) * 2009-12-15 2011-06-22 한국과학기술원 A method for multi-dimensional histograms using a minimal skew cover in a space partitioning tree and recording medium storing program for executing the same
KR20140139646A (en) * 2013-05-27 2014-12-08 건국대학교 산학협력단 Visible neighbor query for spatial skyline in mobile environment
KR20150089542A (en) * 2014-01-28 2015-08-05 서울대학교산학협력단 System and method for skyline queries

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090100852A (en) * 2008-03-21 2009-09-24 고려대학교 산학협력단 Method and apparatus of continuous skyline queries using cell state and recording medium using this
KR20100097834A (en) * 2009-02-27 2010-09-06 고려대학교 산학협력단 Apparatus and method for executing continuous skyline query
KR20110067781A (en) * 2009-12-15 2011-06-22 한국과학기술원 A method for multi-dimensional histograms using a minimal skew cover in a space partitioning tree and recording medium storing program for executing the same
KR20140139646A (en) * 2013-05-27 2014-12-08 건국대학교 산학협력단 Visible neighbor query for spatial skyline in mobile environment
KR20150089542A (en) * 2014-01-28 2015-08-05 서울대학교산학협력단 System and method for skyline queries

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ma Zhixin 외 3명. QBSQ: A Quad-Tree Based Algorithm for Skyline Query. 2008 International Conference on Computer Science and Software Engineering. 2008년. 1부. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459971A (en) * 2020-04-01 2020-07-28 辽宁大学 Skyline-join query processing method based on crowdsourcing
CN111459971B (en) * 2020-04-01 2023-11-10 辽宁大学 Skyline-join query processing method based on crowdsourcing

Also Published As

Publication number Publication date
KR101914784B1 (en) 2018-11-02

Similar Documents

Publication Publication Date Title
US9798774B1 (en) Graph data search method and apparatus
Mullesgaard et al. Efficient skyline computation in MapReduce
CN107391554B (en) Efficient distributed locality sensitive hashing method
KR101554569B1 (en) System and method for skyline queries
Alfarrarjeh et al. Scalable spatial crowdsourcing: A study of distributed algorithms
US11003649B2 (en) Index establishment method and device
CN104111936B (en) Data query method and system
KR101914784B1 (en) Skyline querying method based on quadtree
US11030196B2 (en) Method and apparatus for processing join query
CN108052514A (en) A kind of blending space Indexing Mechanism for handling geographical text Skyline inquiries
CN110955732B (en) Method and system for realizing partition load balance in Spark environment
CN110659278A (en) Graph data distributed processing system based on CPU-GPU heterogeneous architecture
Deng et al. An efficient online direction-preserving compression approach for trajectory streaming data
Park et al. Efficient processing of skyline queries using MapReduce
Ansari et al. Data categorization using Hadoop MapReduce-based parallel K-means clustering
CN111400301B (en) Data query method, device and equipment
Al Jawarneh et al. Cost-effective strategies for provisioning NoSQL storage services in support for industry 4.0
Prasanna et al. Iterative Approach for Frequent Set Mining Using Hadoop Over Cloud Environment
CN103902614B (en) A kind of data processing method, equipment and system
Kumar et al. Graphsteal: Dynamic re-partitioning for efficient graph processing in heterogeneous clusters
Xu et al. Efficient similarity join based on Earth mover’s Distance using Mapreduce
CN110909072B (en) Data table establishment method, device and equipment
Nirmal et al. Issues of K means clustering while migrating to map reduce paradigm with big data: A survey
Wijayanto et al. LShape Partitioning: Parallel Skyline Query Processing Using $ MapReduce $ M a p R e d u c e
Bao et al. A spatial big data framework for maritime traffic data

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
GRNT Written decision to grant