KR101797207B1 - Method of Processing Moving Object Trajectory Data With User Defined Functions - Google Patents

Method of Processing Moving Object Trajectory Data With User Defined Functions Download PDF

Info

Publication number
KR101797207B1
KR101797207B1 KR1020170010767A KR20170010767A KR101797207B1 KR 101797207 B1 KR101797207 B1 KR 101797207B1 KR 1020170010767 A KR1020170010767 A KR 1020170010767A KR 20170010767 A KR20170010767 A KR 20170010767A KR 101797207 B1 KR101797207 B1 KR 101797207B1
Authority
KR
South Korea
Prior art keywords
trajectory
storing
query
data
udf
Prior art date
Application number
KR1020170010767A
Other languages
Korean (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 KR1020170010767A priority Critical patent/KR101797207B1/en
Application granted granted Critical
Publication of KR101797207B1 publication Critical patent/KR101797207B1/en

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
    • G06F17/30241

Landscapes

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

Abstract

The present invention relates to a method to process trajectory data of a moving object based on a user defined function (UDF), capable of enhancing a query function about the trajectory data. According to the present invention, the method comprises the following steps: using a trajectory table storing trajectory data, a trajectory segment table storing sequentially generated trajectory segments, and a meta table storing metainformation of each trajectory to construct a database storing generated trajectory data in the predetermined number of trajectory segment sets; generating a temporary table with mpids (moving point identification) of the trajectory segment table satisfying a query condition when the occurrence of a user query event is detected; generating a generalized search tree (GiST) index dataset from the trajectory segment table and searching for a candidate record set satisfying the query condition from the GiST index dataset; and examining whether or not an actual record exists through a refining step and returning a true/false value depending on the existence of a matched record.

Description

UDF 기반 이동객체 궤적 데이터 처리방법{Method of Processing Moving Object Trajectory Data With User Defined Functions}Field of the Invention < RTI ID = 0.0 > [0001] < / RTI &

본 발명은 UDF 기반 이동객체 궤적 데이터 처리방법에 관한 것으로 더욱 상세하게는 대용량 이동객체 궤적 데이터의 저장 및 관리를 위한 모델링 방법과 궤적 데이터의 질의 성능을 향상시키기 위한 UDF 기반의 궤적 인덱스 기법과 질의 선 실체화 테이블 기법으로 구현되는 UDF 기반 이동객체 궤적 데이터 처리방법에 관한 것이다.The present invention relates to a UDF-based moving object trajectory data processing method, and more particularly, to a modeling method for storing and managing large-capacity moving object trajectory data, a UDF-based trajectory index method and a query line for improving trajectory data query performance. And a UDF-based moving object trajectory data processing method implemented by an instantiation table technique.

본 발명은 국토교통과학기술진흥원 국토공간정보연구사업의 일환으로 수행한 연구로부터 이루어진 것이다[과제번호: 1615007698(80795), 과제명: 공간정보산업 활성화를 위한 오픈소스기반 응용 연계 기술 개발]. The present invention has been made from the research carried out as part of the research project of the national land space information research project of the Ministry of Land, Infrastructure and Transport Technology (Project No: 1615007698 (80795), Project title: Development of open source based application link technology for activation of spatial information industry).

최근 모바일 관련 기술의 발달로 스마트폰 및 태블릿 컴퓨터와 같은 다양한 모바일 장치들이 보급되고 있다. 뿐만 아니라, 모바일 컴퓨팅 환경의 발달로 인하여 기존의 기술과 첨단 기술을 융합하여 새로운 서비스를 제공하려는 시도가 계속 되고 있다. 특히 GPS가 탑재된 모바일 장비들의 보급이 활발해지면서 위치 정보를 이용한 다양한 응용서비스들을 제공할 수 있게 되었다. 초창기 위치기반서비스(LBS)에서는 위치 정보에만 관심을 가졌기 때문에 다른 부가 정보들은 크게 주목 받지 못했다. 하지만, 최근 위치 정보에 기반한 서비스들이 과거, 현재, 미래의 상관관계를 고려하여 분석하기 위해 위치 데이터와 시간 데이터를 함께 활용하고 있다. Recently, various mobile devices such as smart phones and tablet computers have become popular due to the development of mobile related technologies. In addition, due to the development of mobile computing environment, attempts to integrate existing technology with advanced technology and provide new services are continuing. Especially, as the spread of mobile devices equipped with GPS becomes active, various application services using location information can be provided. In the early days of location-based services (LBS), only the location information was interested, so other additional information was not received much attention. However, recent location information based services use location data and time data together to analyze past, present and future correlations.

예를 들면, 실시간으로 도로 교통 현황 및 주변 상황 정보를 제공해주는 실시간 교통 정보 서비스나 이동객체의 GPS좌표를 축적하고, 분석하여 최적의 길 안내 서비스를 제공하는 지능형 네비게이션 서비스, 밤 늦게 귀가하는 청소년 혹은 여성들의 안전한 귀가를 위한 안심귀가 서비스, 통근 시간과 같은 특정 시간대에서 비슷한 경로로 이동하는 사람들을 매칭시켜주는 카풀 서비스 등이 제공되고 있지만, 위치 정보만으로 이러한 서비스들을 신속, 정확하게 제공하는데 한계가 있다. For example, an intelligent navigation service that accumulates and analyzes the GPS coordinates of a real-time traffic information service or a moving object providing real-time road traffic status and surrounding situation information, provides an optimal road guidance service, And a carpool service that matches people traveling on similar routes at certain times such as commuting time. However, there is a limit to providing these services quickly and accurately with location information alone.

따라서 과거 데이터 및 연속적인 데이터들을 분석하기 위해 시간 속성이 함께 고려되어야 한다. 궤적은 연속적인 시간에서 획득한 이동객체 위치 정보들의 집합이다. 그리고 이동객체 궤적 데이터의 특성상 단 며칠만 수집되어도 대량의 데이터셋을 생성한다. 이러한 대용량 궤적 데이터는 일반 데이터베이스에서 처리하기가 적합하지 않다. 따라서 이동 객체의 궤적을 저장, 관리하기 위한 시스템 모델 및 대용량 이동객체 데이터를 빠르게 질의할 수 있는 방법에 대한 연구가 필요하다. Therefore, time attributes should be considered together to analyze historical data and continuous data. The trajectory is a set of moving object location information acquired in successive times. Also, due to the nature of the moving object trajectory data, even if only a few days are collected, a large data set is generated. Such large-volume trajectory data is not suitable for processing in a general database. Therefore, a system model for storing and managing the trajectory of the moving object and a method for quickly querying the large moving object data are needed.

DOMINO(Database fOr MovINg Objects)는 DBMS에서 이동객체를 지원하기 위해 이동객체 시공간 모델(MOST)을 제안하였다. 이 MOST 모델은 이동객체의 현재 위치를 획득하기 위해서 방향 벡터를 저장하고 있다. 또한, 가까운 미래 위치를 예측할 수 있는 FTL(Future Temporal Logic) 질의 언어를 제안하였다. 오라클에서 시공간 질의를 지원할 수 있도록, 오라클 DBMS의 확장 형태로 개발된 HERMES는 ORDBMS에 시공간 질의를 가능하게 하는 연산자들을 제공한다. HERMES의 주요 목표는 연속적인 이동객체의 모델링과 질의의 지원이다. HERMES는 데이터 타입의 집합과 그에 상응하는 연산자들을 정의하였다. HERMES의 ORDBMS 층에는 오라클 ORDBMS 서버에 궤적 데이터 저장과 LBS 지원을 위한 내부 구조의 질의 능력에 적합하게 강화되었다. Guting et al은 ORDBMS에 과거와 현재 데이터 모두 저장하기 위한 데이터 모델을 제안하였다. 또한, 모든 세그먼트들을 무한 개의 커브 셋으로 표현할 수 있는 추상 데이터 타입과 유한 개의 폴리라인으로 표현할 수 있는 불연속 데이터 타입을 제안하였다. SECONDO는 공간 객체를 확장하여 이동객체 데이터 타입과 연산자들을 정의하였고, 이 연산자들을 구현하기 위한 알고리즘을 제안하고 있다. 또한, SECONDO는 이동객체 데이터베이스를 위한 벤치마크 시스템인 BerlinMOD를 지원한다. DOMINO (Database fOr MovINg Objects) proposed moving object space-time model (MOST) to support moving objects in DBMS. This MOST model stores the direction vector to obtain the current position of the moving object. We also proposed a FTL (Future Temporal Logic) query language that can predict the near future location. HERMES, developed as an extension of the Oracle DBMS, provides operators that enable spatiotemporal queries on ORDBMS to support spatiotemporal queries in Oracle. The main goal of HERMES is to support continuous modeling and querying of moving objects. HERMES defines a set of data types and their corresponding operators. HERMES 'ORDBMS layer has been enhanced to fit the internal structure query capabilities for storing the trajectory data and supporting LBS in the Oracle ORDBMS server. Guting et al proposed a data model for storing both past and present data in an ORDBMS. We also proposed an abstract data type that can represent all segments with an infinite set of curves and a discrete data type that can be represented by a finite number of polylines. SECONDO defines a moving object data type and operators by extending a spatial object, and proposes an algorithm for implementing these operators. In addition, SECONDO supports BerlinMOD, a benchmark system for moving object databases.

이러한 종래의 연구들은 일반 DBMS에서 궤적 데이터를 저장, 관리할 수 있는 모델링 방법들에 초점을 맞추고 있다. 하지만 궤적 데이터는 일정한 주기로 연속적으로 수집되기 때문에 일부 응용에서는 대용량의 데이터셋을 만들기도 한다. 따라서, 대용량의 궤적 데이터셋을 효율적으로 질의할 수 있는 방법들의 연구가 필요하다. 이에 대용량 이동객체 궤적 데이터의 저장 및 관리를 위한 새로운 보다 효율적인 기술의 개발이 요구되고 있다.These conventional researches focus on modeling methods for storing and managing the trajectory data in a general DBMS. However, since the trajectory data is continuously collected at regular intervals, some applications may create a large data set. Therefore, it is necessary to study methods for efficiently querying large-volume trajectory data sets. Therefore, it is required to develop a new and more efficient technology for storing and managing large-capacity moving object trajectory data.

본 발명은 상기와 같은 종래 기술을 개선하기 위해 안출된 것으로서, 대용량 이동객체 궤적 데이터의 저장 및 관리를 위한 모델링 방법과 궤적 데이터의 질의 성능을 향상시키기 위한 UDF 기반의 궤적 인덱스 기법과 질의 선 실체화 테이블 기법으로 구현되는 UDF 기반 이동객체 궤적 데이터 처리방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to overcome the above problems, and it is an object of the present invention to provide a modeling method for storing and managing large-capacity moving object trajectory data, a UDF-based trajectory index technique, And to provide a UDF-based moving object locus data processing method.

상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일실시예에 따른 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법은, 궤적 데이터를 저장하기 위한 궤적 테이블(mobject trajtable), 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory column)을 이용하여, 생성되는 궤적 데이터를 선정된 개수의 궤적 세그먼트 셋으로 저장하는 데이터베이스를 구축하는 단계; 궤적 세그먼트 테이블(Trajectory Segment Table)로부터 GiST(Generalized Search Tree) 인덱스 데이터셋을 생성하는 단계; 상기 GiST(Generalized Search Tree) 인덱스 데이터셋에서 질의 조건을 만족하는 후보 레코드셋을 검색하고, 정제(refine) 단계를 거쳐 실제 레코드의 유/무를 검사하는 단계; 및 일치하는 레코드의 존재 유/무에 따라 트루/펄스(true/fulse) 값을 반환하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of processing UDF-based trajectory data of a UDF-based trajectory data system, including: a mobject trajectory table for storing trajectory data; A trajectory segment table for storing trajectory segments generated by the trajectory segments, and a trajectory column for storing meta information of the trajectories, and stores the generated trajectory data in a predetermined number of trajectory segment sets Establishing a database for the database; Generating a GiST (Generalized Search Tree) index dataset from a Trajectory Segment Table; Searching a candidate record set satisfying a query condition in the generalized search tree (GiST) index data set and checking whether there is an actual record through a refine step; And returning a true / fulse value according to the presence or absence of a matching record.

또한, 본 발명의 다른 실시예에 따른 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법은, 궤적 데이터를 저장하기 위한 궤적 테이블(mobject trajtable), 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory column)을 이용하여, 생성되는 궤적 데이터를 선정된 개수의 궤적 세그먼트 셋으로 저장하는 데이터베이스를 구축하는 단계; 사용자 질의 이벤트 발생을 감지하는 경우, 질의 조건을 만족하는 궤적 세그먼트 테이블(Trajectory Segment Table)의 mpid (Moving Point IDentify)들로 임시 테이블(MT)을 생성하는 단계; 궤적 세그먼트 테이블(Trajectory Segment Table)로부터 GiST(Generalized Search Tree) 인덱스 데이터셋을 생성하고, 상기 GiST(Generalized Search Tree) 인덱스 데이터셋에서 질의 조건을 만족하는 후보 레코드셋을 검색하는 단계; 및 정제(refine) 단계를 거쳐 실제 레코드의 유/무를 검사하고, 일치하는 레코드의 존재 유/무에 따라 트루/펄스(true/fulse) 값을 반환하는 단계를 포함한다.The UDF-based trajectory data processing method of the UDF-based trajectory data system according to another embodiment of the present invention includes a trajectory table for storing trajectory data, a trajectory segment table for storing sequentially generated trajectory segments Constructing a database for storing generated trajectory data as a set number of trajectory segments using a trajectory column capable of storing meta information of each trajectory; Generating a temporary table (MT) with mpid (Moving Point IDentify) of a Trajectory Segment Table satisfying a query condition when detecting the occurrence of a user query event; Generating a generalized search tree (GiST) index data set from a trajectory segment table and searching for a candidate record set satisfying a query condition in the generalized search tree (GiST) index data set; And a refine step to check the presence / absence of the actual record, and returning a true / fulse value according to the presence / absence of the matching record.

또한, 본 발명에 있어서 상기 궤적 세그먼트 셋은 이동 객체가 이동한 점 포인트와 그 순간에서의 시간으로 구성된 Tpoint(Time Point) 타입의 어레이(Array) 형태로 생성되는 것을 특징으로 한다.In addition, in the present invention, the locus segment set is generated in the form of a Tpoint (Time Point) type array composed of point points at which a moving object moves and times at the instant.

또한, 본 발명에 있어서 상기 GiST 인덱스 데이터셋은 질의 조건을 검사하는 Consistent(E,q) 함수와 입력 엔트리들을 병합해 주는 Union(P) 함수, 삽입되는 엔트리의 노드 위치를 결정하기 위해 필요한 Penalty(E1,E2) 함수, 노드의 분할을 결정해 주는 PickSplit(P) 함수, 입력 엔트리를 저장 가능한 포맷으로 변경해주는 Compress(E) 함수, Compress(E) 함수의 역함수인 Decompress(E) 함수를 통해 구현되는 것을 특징으로 한다.In the present invention, the GiST index data set includes a Consistent (E, q) function for checking a query condition and a Union (P) function for merging input entries, a penalty function for determining a node position of an inserted entry E, E2), a PickSplit (P) function that determines node partitioning, a Compress (E) function that changes the input entry into a storable format, and a Decompress (E) function that is an inverse of the Compress .

본 발명의 또다른 실시예에 따른 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법은, 궤적 데이터를 저장하기 위한 궤적 테이블(mobject trajtable), 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory column)을 이용하여, 생성되는 궤적 데이터를 선정된 개수의 궤적 세그먼트 셋으로 저장하는 데이터베이스를 유지하는 단계; 사용자 요청에 따라 선정된 UDF 함수 모듈을 실행하는 단계; 및 상기 UDF 함수 모듈이 오브젝트 테이블(Object Table)의 moid와 질의 조건(cond)이 일치하는 레코드를 검색하기 위해 궤적 세그먼트 테이블(Trajectory Segment Table)을 스캔하고, 일치하는 레코드의 존재 유/무에 따라 트루/펄스(true/fulse) 값을 반환하는 단계를 포함한다.A UDF-based trajectory data processing method of a UDF-based trajectory data system according to another embodiment of the present invention includes a trajectory table for storing trajectory data, a trajectory segment table for storing sequentially generated trajectory segments A database for storing generated trajectory data as a set number of trajectory segments using a trajectory column capable of storing meta information of each trajectory; Executing a selected UDF function module according to a user request; And the UDF function module scans a Trajectory Segment Table to retrieve a record whose mood of the object table matches the query condition cond, And returning a true / fulse value.

본 발명의 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법에 따르면, 보다 효율적인 UDF 기반 궤적 인덱스 기법과 질의 선 실체화 테이블 기법을 통해 이동객체의 궤적을 저장, 관리하며 대용량 이동객체 데이터를 빠르게 질의 할 수 있는 효과를 얻을 수 있다.According to the UDF-based trajectory data processing method of the UDF-based trajectory data system of the present invention, it is possible to store and manage the trajectory of the moving object through a more efficient UDF-based trajectory indexing method and a query line instantiation table technique, The effect can be obtained.

도 1은 궤적 데이터를 저장하기 위한 궤적 테이블(mobject_trajtable)과 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 그리고 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory_column)에 대한 도면이다.
도 2는 단순 궤적 UDF의 질의 처리 과정을 나타내는 도면이다.
도 3은 UDF 기반 궤적 인덱스 질의 처리 과정을 나타내는 도면이다.
도 4는 질의 선 실체화 전략의 질의 처리 과정을 나타내는 도면이다.
도 5는 데이터셋의 크기가 증가할 때 각각의 질의 실행 시간을 나타내는 도면이다.
도 6은 질의 윈도우 크기에 따른 질의 실행 시간을 나타내는 도면이다.
FIG. 1 is a block diagram of a trajectory table for storing trajectory data (mobject_trajtable), a trajectory segment table for storing trajectory segments sequentially generated, and a metacat table (trajectory_column) for storing meta information of each trajectory FIG.
FIG. 2 is a diagram showing a query processing process of a simple locus UDF.
3 is a diagram illustrating a UDF-based trajectory index query process.
4 is a diagram showing a query processing process of a query line substantiation strategy.
5 is a diagram showing the execution time of each query when the size of the data set increases.
6 is a diagram showing a query execution time according to the query window size.

이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법에서는 대용량 궤적 데이터의 색인 기법으로 UDF 기반의 3D R-tree 인덱스를 생성하는 방법과 질의 성능을 향상시키기 위하여 임시 뷰 테이블을 생성하고 정제 과정을 수행하는 질의 선 실체화 전략이 구현된다. 본 발명에서 사용되는 UDF(User-Defined Functions)는 사용자 정의 함수를 뜻하며, 사용자가 SQL을 이용하여 만들거나 C 언어와 같은 C-레벨 코드로 오브젝트 파일을 생성하고, 생성된 오브젝트 파일을 직접 DBMS 내부에 설치하여 만들어진 함수들을 말한다. 다시 말하면, 사용자가 DBMS 소스 코드를 건드리지 않고, DBMS를 확장할 수 있는 API(Application Programming Interface)로서 동작하는 방법을 지칭한다. 이러한 UDF 함수는 DBMS 내에서 표준 SQL 명령어와 같이 사용 할 수 있다.In the UDF-based trajectory data processing method of the UDF-based trajectory data system of the present invention, a method of generating a 3D R-tree index based on a UDF using an indexing method of large volume trajectory data and a temporary view table are generated to improve the query performance, Is implemented. User-Defined Functions (UDFs) used in the present invention are user-defined functions, which are created by a user using SQL or by C-level code such as C language, And the functions that are installed and built in. In other words, it refers to a method in which a user operates as an API (application programming interface) capable of extending a DBMS without touching the DBMS source code. These UDF functions can be used within the DBMS as standard SQL commands.

UDF 기반 궤적 시스템 모델UDF-based trajectory system model

도 1은 궤적 데이터를 저장하기 위한 궤적 테이블(mobject_trajtable)과 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 그리고 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory_column)을 나타내고 있다.1 shows a trajectory table (mject_trajtable) for storing trajectory data, a trajectory segment table (trajectory segment table) for storing sequentially generated trajectory segments, and a metagatable (trajectory_column) for storing meta information of each trajectory have.

궤적 테이블(mobject_trajtable)은 사용자가 궤적 정보에 대하여 질의할 수 있는 사용자 정의 테이블이다. 실제로 사용자는 이 사용자 정의 테이블만을 이용하여 궤적 정보에 대하여 질의할 수 있다.The locus table (mobject_trajtable) is a user-defined table in which the user can inquire about the locus information. In fact, the user can inquire about the locus information using only this user defined table.

궤적 세그먼트 테이블(Trajectory Segment Table)은 사용자 정의 테이블을 생성하면 자동으로 생성되는 테이블이다. 이 테이블에는 이동 객체가 이동한 궤적(trajectory)을 저장하게 된다. 각 이동 객체는 각각의 mpid (Moving Point IDentify)를 갖게 되고 각 mpid 마다 많은 수의 데이터가 삽입이 되므로 이를 관리하기 위하여 segid를 만들어 순서를 쉽게 구별 할 수 있도록 하였다. 하나의 segid에는 addTrajectory Column에서 지정해준 숫자(tpseg의 size)만큼의 위치 정보를 저장하게 된다. rect는 한 segid에 있는 위치들을 둘러싼 rectangle을 표현하기 위한 정보이다. 또한 next_segid와 before_segid를 만들어 각 segid를 double linked list처럼 관리를 할 수 있다.Trajectory Segment Table (Trajectory Segment Table) is a table that is automatically generated when a user defined table is created. This table stores the trajectory of moving objects. Each moving object has its own Moving Point IDentify (mpid). Since a large number of data is inserted into each mpid, a segid can be created to manage it. One segid will store the position information of the number specified in the addTrajectory Column (size of tpseg). rect is information to represent the rectangle surrounding locations in a segid. You can also create next_segid and before_segid to manage each segid like a double linked list.

메타 테이블(trajectory_column)은 사용자가 지정한 trajectory_column의 이름과 자동 생성된 trajectory_segtable의 이름 등 각 테이블에 대한 전체적인 정보를 갖고 있는 메타 테이블이다. 해당 객체의 고유 moid와 객체의 trajectory를 저장할 테이블의 oid를 갖는다.The meta table (trajectory_column) is a meta table that contains overall information about each table, including the name of the trajectory_column specified by the user and the name of the automatically generated trajectory_segtable. It has the unique moid of the object and the oid of the table to store the trajectory of the object.

궤적 데이터를 저장하기 위한 가장 간단한 방법은 한 개의 위치 좌표와 시간 값을 한 로우에 저장하는 것이다. 그러나 이러한 방법으로 데이터를 저장할 경우에 몇 가지 문제를 야기할 수 있다. 즉, 주기적으로 계속 생성되는 궤적 데이터를 한 로우에 하나씩 삽입하게 되면 저장되는 데이터의 용량을 불필요하게 증가시키고, 궤적 데이터에 대하여 질의할 때 질의 결과로 반환되는 데이터들의 셋이 커지므로 검색 성능에 상당한 영향을 끼쳐 성능 저하를 야기시킬 수 있다. 따라서 본 발명에서는 궤적 데이터를 저장할 때 지정한 개수의 궤적 세그먼트 셋으로 저장하도록 구현될 수 있다. 궤적 세그먼트 셋은 이동 객체가 이동한 점 포인트와 그 순간에서의 시간으로 구성된 Tpoint(Time Point) 타입의 Array 형태로 만들어짐으로써 궤적 데이터의 질의에서 질의 결과 수를 줄이게 됨으로써 검색 비용을 절약할 수 있도록 한다. The simplest way to store the locus data is to store one position coordinate and one time value in a row. However, storing data in this way can cause some problems. In other words, inserting the trajectory data periodically generated one by one in a row unnecessarily increases the capacity of stored data, and when the trajectory data is inquired, the set of data returned as a query result becomes larger, And may cause performance degradation. Therefore, in the present invention, it is possible to store the trajectory data as a set of the set of trajectory segments when the trajectory data is stored. The trajectory segment set is created as a Tpoint (Time Point) type Array composed of the point at which the moving object moves and the time at that moment, thereby reducing the number of query results in the trajectory data query, do.

아래는 이러한 궤적 시스템 모델을 위한 테이블 생성 질의 및 궤적 컬럼을 생성하는 방법과 궤적 데이터에 대한 사용자 질의를 나타내고 있다.The following table shows how to create a table creation query and a trajectory column for this trajectory system model and a user query on the trajectory data.

CREATE TABLE taxi CREATE TABLE taxi

( taxi_id int, taxi_number text,(taxi_id int, taxi_number text,

taxi_model text, taxi_driver text );taxi_model text, taxi_driver text);

SELECT addtrajectorycolumn SELECT addTrajectoryColumn

('public', 'taxi', 'traj', 4326, 'MOVINGPOINT', 2, 150);('public', 'taxi', 'traj', 4326, 'MOVINGPOINT', 2, 150);

위의 테이블 생성 질의는 이동객체의 메타 정보를 저장할 수 있는 Object Table을 생성한다. 그리고 다음 질의는 생성된 Object Table에 궤적 컬럼을 추가하고, 실제 궤적 데이터를 저장, 관리하는 Trajectory Segment Table 을 생성한다. 이때, 함수의 매개변수로는 순서대로 데이터베이스의 scheme, 궤적 컬럼을 추가할 Object Table의 이름, 궤적 컬럼의 이름, 공간 데이터의 SRID, 데이터 타입, 데이터 타입의 차원, 한 로우에 저장되는 궤적 세그먼트의 개수를 가리킨다. The above table creation query creates an object table that can store the meta information of the moving object. Then, the next query adds a trajectory column to the generated object table, and creates a trajectory segment table to store and manage actual trajectory data. In this case, the parameters of the function include the scheme of the database, the name of the object table to which the trajectory column is added, the name of the trajectory column, the SRID of the spatial data, the data type, the dimension of the data type, Indicates the number.

SELECT taxi_id, taxi_number FROM taxiSELECT taxi_id, taxi_number FROM taxi

WHERE TJ_Passes(traj, TJ_BOX(116.35, 39.93, 116.22, 40.14,WHERE TJ_Passes (traj, TJ_BOX (116.35, 39.93, 116.22, 40.14,

PERIODS(‘2008-02-02 13:30:44’, ‘2008-02-02 15:54:46’))); PERIODS (' 2008-02-02 13:30:44', '2008-02-02 15:54:46')));

위 사용자 질의는 특정 공간 영역을 지정한 시간 주기 동안 통과한 이동객체들의 ID와 Number 정보를 가져온다. 위와 같은 방법으로 사용자는 시공간 궤적 데이터에 대해 질의할 수 있다.The user query retrieves the ID and number information of the moving objects that passed through the specified time period. In this way, the user can query the space-time locus data.

단순 궤적 UDF 기법(Naive)Simple trajectory UDF technique (Naive)

단순 궤적 UDF(User-Defined Functions) 질의는 궤적 질의의 조건부에서 질의 조건을 만족하는 레코드의 유/무를 검사한다. 단순 궤적 UDF 질의를 위해 2차원 공간 데이터의 위상관계 함수들을 확장하여 시공간 궤적 데이터의 위상관계를 표현할 수 있는 함수들로 구현된다. 특정 공간을 통과한 궤적들의 유/무를 검사하는 TJ_Passes() 함수와 특정 공간 안에 머물고 있는 궤적들의 유/무를 검사하는 TJ_Inside() 함수가 궤적의 위상관계를 표현하기 위해 확장하여 사용하고 있는 함수들이다. The simple trajectory UDF (User-Defined Functions) query checks whether a record satisfies the query condition in the condition of the trajectory query. For the simple trajectory UDF query, it is implemented as functions that can express the phase relation of space time trajectory data by extending the phase relation functions of two dimensional spatial data. TJ_Passes () function to check the trajectories passing through a specific space and TJ_Inside () function to check the existence of trajectories staying in a specific space are the functions that are used to express the phase relation of the trajectories.

앞서 설명한 본 발명에 따른 궤적 시스템 모델에서 이동객체에 대한 질의는 이동객체의 메타 정보를 저장하고 있는 Object Table과 이동객체의 궤적 정보를 저장하고 있는 Trajectory Segment Table과의 조인으로 이루어진다. 이때, 사용자는 직접 두 개의 테이블을 조인하지 않고 사용자에게 제공되는 궤적 UDF 함수를 호출하여 질의한다. UDF함수에서는 Object Table의 moid와 질의 조건(cond)이 일치하는 레코드를 검색하기 위해 Trajectory Segment Table을 스캔하고, 일치하는 레코드의 존재 유/무에 따라 true/false 값을 반환한다.In the trajectory system model according to the present invention described above, a query for a moving object is made by joining an object table storing meta information of the moving object and a trajectory segment table storing the trajectory information of the moving object. At this time, the user queries the trajectory UDF function provided to the user without directly joining the two tables. The UDF function scans the Trajectory Segment Table to retrieve records that match the moid of the Object Table and the query condition (cond), and returns a true / false value depending on whether the matching record exists or not.

도 2는 단순 궤적 UDF의 질의 처리 과정을 나타내고 있다. 단순 궤적 UDF 질의는 전체 레코드 셋을 스캔하기 때문에 질의 처리에 드는 비용이 많이 발생하는 단점이 있다. 따라서 본 발명에서는 이러한 질의 처리 비용을 줄이기 위한 UDF 기반 궤적 인덱스 기법과 질의 선 실체화 테이블 기법을 제공한다.FIG. 2 shows a query processing process of a simple locus UDF. The simple trajectory UDF query has a disadvantage in that it costs a lot of query processing because it scans the entire recordset. Accordingly, the present invention provides a UDF-based trajectory index scheme and a query line substantiation table scheme for reducing the query processing cost.

UDF 기반 궤적 인덱스 기법(GiST-R-NT)UDF-based Trajectory Indexing Technique (GiST-R-NT)

궤적 데이터는 기본적으로 2차원의 공간 데이터와 1차원 시간 데이터가 결합된 3차원 데이터이다. 본 발명에서는 이러한 궤적 데이터를 위한 인덱스 알고리즘으로서 GiST(Generalized Search Tree) 인덱스를 확장한 3D R-tree 인덱스를 구현하였고, 구현된 3D R-tree 인덱스를 사용하여 질의 처리 시간을 비교하였다. GiST는 B-tree와 R-tree 또는 그 변형 트리들을 쉽게 구현할 수 있도록 지원하는 템플릿 트리이다. 즉, R-tree 인덱스를 구현하기 위해서 엔지니어는 최소 6개의 핵심 함수들만을 고려하여 구현할 수 있게 되었다. 질의 조건을 검사하는 Consistent(E,q) 함수와 입력 엔트리들을 병합해 주는 Union(P) 함수, 삽입되는 엔트리의 노드 위치를 결정하기 위해 필요한 Penalty(E1,E2) 함수, 노드의 분할을 결정해 주는 PickSplit(P) 함수, 입력 엔트리를 저장 가능한 포맷으로 변경해주는 Compress(E) 함수, Compress(E) 함수의 역함수인 Decompress(E) 함수들이 제공되고 있다.The locus data is basically three-dimensional data in which two-dimensional spatial data and one-dimensional time data are combined. In the present invention, a 3D R-tree index that is an extension of the GiST (Generalized Search Tree) index is implemented as an index algorithm for the locus data, and the query processing time is compared using the implemented 3D R-tree index. GiST is a template tree that supports easy implementation of B-tree and R-tree or its transformation tree. In other words, to implement an R-tree index, the engineer can only implement at least six key functions. Union (P) function to merge input entries with Consistent (E, q) function to check query condition, Penalty (E1, E2) function necessary to determine node position of inserted entry, A function called PickSplit (P), a Compress (E) function that changes the input entry into a storable format, and a Decompress (E) function that is an inverse of the Compress (E) function.

도 3은 UDF 기반 궤적 인덱스 질의 처리 과정을 나타낸다. UDF 기반 궤적 인덱스 질의는 앞서 설명한 단순 궤적 UDF 질의에서 사용한 궤적 위상 함수를 사용한다. 질의 과정은 Trajectory Segment Table로부터 생성한 GiST 인덱스 데이터셋에서 질의 조건을 만족하는 후보 레코드셋을 검색하고, 정제(refine) 단계를 거쳐서 실제 레코드의 유/무를 검사한다. 그리고 단순 궤적 UDF 질의와 같이 true/false 값을 반환한다. PostgreSQL/PostGIS에서는 GiST기반의 2차원 R-tree를 지원할 뿐만 아니라, n차원 R-tree로 확장할 수 있는 함수들을 따로 제공하고 있다. 본 발명에서는 PostgreSQL/PostGIS에서 지원하는 GiST 인덱스의 n차원 R-tree 지원함수들을 확장하여 3D R-tree를 구현한다.3 shows a UDF-based trajectory index query process. The UDF-based trajectory index query uses the trajectory phase function used in the simple trajectory UDF query described above. In the query process, the candidate record set satisfying the query condition is searched in the GiST index data set generated from the trajectory segment table, and the presence / absence of the actual record is checked through a refine step. It returns a true / false value like a simple trajectory UDF query. PostgreSQL / PostGIS not only supports GiST-based 2-D R-tree, but also provides functions that can be extended to n-dimensional R-tree. In the present invention, a 3D R-tree is implemented by extending the n-dimensional R-tree support functions of the GiST index supported by PostgreSQL / PostGIS.

질의 선 실체화 테이블 기법(GiST-R-MT)Query line substantiation table technique (GiST-R-MT)

대용량 데이터의 검색 성능을 향상시키기 위해서 일반적으로는 검색하고자 하는 데이터 셋에 인덱스를 생성하는 방법을 사용한다. 본 발명에서는 검색 성능을 향상시키기 위한 다른 방법으로 질의 선 실체화 테이블 기법이 구현될 수 있다.In order to improve the retrieval performance of a large amount of data, generally, an index is created in a data set to be searched. In the present invention, a query line substantiation table technique may be implemented as another method for improving the search performance.

도 4는 질의 선 실체화 전략의 질의 처리 과정을 나타낸다.4 shows a query processing process of a query line substantiation strategy.

질의 선 실체화 테이블 기법은 Materialized 뷰로 알려져 있는 기법으로, 처음 질의 요구가 있을 때 임시 뷰 테이블을 물리적으로 생성하고 뷰에 다른 질의들이 이어질 것이라는 가정 하에 생성된 임시 뷰 테이블을 유지하는 방법이다. 이때 뷰의 내용을 최신 상태로 유지하기 위해서 기본 테이블이 갱신되었을 때 뷰 테이블을 자동으로 갱신하는 효율적인 방법이 고려되어야 한다. 점진적 갱신의 개념을 이용한 방식은 이런 목적으로 개발되었는데, 이 방법은 정의된 기본 테이블들 중 하나에 변경 사항이 적용될 때 실체화된 뷰 테이블 내에 삽입, 삭제, 갱신해야 할 튜플들을 결정한다. 일반적으로 이 뷰는 질의가 있는 동안 유지된다. 일정 기간 동안 뷰에 질의가 없으면 시스템은 물리적인 뷰 테이블을 자동적으로 삭제하고, 다음에 그 뷰를 참조하는 질의가 있을 때 처음부터 뷰 테이블을 재구성한다. A query materialization table technique is a technique known as a materialized view. It is a method of physically generating a temporary view table when a query is first requested, and maintaining a temporary view table generated on the assumption that other queries will follow the view. In order to keep the contents of the view up-to-date, an efficient way to automatically update the view table when the base table is updated should be considered. The concept of incremental update was developed for this purpose, which determines which tuples should be inserted, deleted, and updated in the materialized view table when the change is applied to one of the defined base tables. Normally, this view is maintained for the duration of the query. If there is no query in the view for a certain period of time, the system automatically deletes the physical view table, and then reconstructs the view table from the beginning when there is a query referring to that view.

질의 선 실체화 전략의 질의 처리 방법을 살펴보면, 먼저 사용자 질의가 있을 때, 질의 조건을 만족하는 Trajectory Segment Table의 mpid 들로 임시 테이블(MT)을 생성한다. 그리고 UDF 기반 궤적 인덱스 질의와 같이 GiST 인덱스 데이터셋에서 질의 조건을 만족하는 후보 레코드셋을 정제시킨 레코드들의 mpid가 생성된 임시 테이블에 존재하는지를 검사한 후 검사 결과에 따라 true/false 값을 반환한다. In the query processing method of the query line substantiation strategy, when there is a user query, a temporary table (MT) is created with the mpids of the trajectory segment table satisfying the query condition. Then, it checks whether the mpid of the records that refine the candidate record set satisfying the query condition exists in the generated temporary table like the UDF based trajectory index query, and then returns true / false according to the result of the check.

실험 환경Experiment environment

UDF 기반 궤적 인덱스로써, 3DR-tree를 사용하여 질의 처리 성능에 대한 실험을 수행하였다. 또한, 본 발명에서 질의 성능을 향상시키기 위해 제안하고 있는 질의 선 실체화 테이블 기법을 사용하여 각 기법들의 성능에 대하여 비교, 분석하였다. 실험은 인텔 코어 i5 3.2GHz CPU와 8GB 메모리를 가진 컴퓨터에서 수행하였고, 운영체제로는 리눅스 우분투 14.04 버전을 사용하였다. 실험에 사용된 데이터는 실제 중국 베이징시의 택시들로부터 수집된 GPS 궤적 데이터로서, 택시들로부터 수집된 대량의 GPS 데이터를 이용하여 신속하고 정확한 그리고 빠르고 안전한 경로로 길 안내를 하기 위한 서비스를 만들기 위하여 수집되었다. 이 데이터는 약 3만대의 택시로부터 6개월가량 수집된 데이터이다. As a UDF-based trajectory index, experiments on query processing performance were performed using 3DR-tree. In order to improve the query performance of the present invention, the performance of each technique is compared and analyzed by using the proposed query materialization table technique. The experiment was performed on a computer with an Intel Core i5 3.2GHz CPU and 8GB memory, and Linux version Ubuntu 14.04 was used as the operating system. The data used in the experiments are GPS locus data collected from taxis in Beijing, China to make a service to guide the route with fast, accurate, fast and safe route using large amount of GPS data collected from taxis. Were collected. This data is collected about six months from about 30,000 taxis.

ParameterParameter SettingSetting Page sizePage size 4k4k Node capacityNode capacity 50, 100, 150, 200, 25050, 100, 150 , 200, 250 Query window sizeQuery window size 2%, 4%, 6%, 8%, 10%2%, 4%, 6% , 8%, 10% Number of queriesNumber of queries 200200 Dataset sizeDataset size 100K, 300k, 500K, 700k, 1M100K, 300k, 500K , 700k, 1M

표 1은 질의 성능을 측정하는 실험에서 사용된 파라미터들이다. 실험은 4장에서 설명하고 있는 3개의 질의 방법들에 대하여 사용자 궤적 질의를 수행하여 걸린 시간을 측정하였다. Table 1 shows the parameters used in the experiments to measure query performance. Experiments were carried out on the user trajectory query for the three query methods described in Section 4.

성능 평가Performance evaluation

도 5는 데이터셋의 크기가 증가할 때 각각의 질의 실행 시간을 나타내고 있다. 실험에서 단순 궤적 UDF 질의(Naive)는 데이터 셋이 증가하면서 질의 실행 시간이 선형적으로 증가하는데 반해, UDF 기반 궤적 인덱스 질의 기법(GiST-R-NT)과 질의 선 실체화 기법(GiST-R-MT)은 데이터셋이 증가하면서 질의 실행 시간이 완만하게 증가되는 것을 볼 수 있다. 특히 질의 선 실체화 기법이 UDF 기반 궤적 인덱스 질의보다 실행 시간에서 약 1.2배의 성능 향상을 나타내고 있음을 알 수 있다. Figure 5 shows the execution time of each query when the size of the dataset increases. In the experiment, the simple trajectory UDF query (Naive) increases the query execution time linearly as the data set increases, while the UDF-based trajectory index query method (GiST-R-NT) ) Can see that the query execution time increases slowly as the data set increases. In particular, it can be seen that the query substantiation technique shows a performance improvement of about 1.2 times the execution time of the UDF-based trajectory index query.

도 6은 질의 윈도우 크기에 따른 질의 실행 시간을 나타내고 있다. 이 실험에서 3개의 질의들 모두 질의 윈도우 크기가 증가할 때, 전체적으로 완만한 실행 시간을 보인다. 질의 윈도우 크기가 2%에서 4%로 증가할 때 실행 시간 변동 폭이 가장 크게 나타나는데, 이것은 윈도우 크기가 2%일 때 검색되는 데이터 로우의 개수가 너무 적어서 상대적으로 실행 시간 또한 작게 측정되었기 때문이다. 6 shows a query execution time according to the query window size. In this experiment, all three queries show a slow execution time as the query window size increases. When the query window size increases from 2% to 4%, the execution time variation is the largest because the number of data rows retrieved when the window size is 2% is relatively small and the execution time is also relatively small.

이와 같이 본 발명에서는 이동객체의 궤적을 저장, 관리하며 대용량 이동객체 데이터를 빠르게 질의 할 수 있는 UDF 기반 궤적 인덱스 기법과 질의 선 실체화 테이블 기법을 제공하고, 상술한 성능 평가에서와 같이 종래 기술 대비 향상된 성능이 실험 결과로 나타나고 있다. As described above, the present invention provides a UDF-based trajectory index technique and a query line instantiation table technique that can store and manage the trajectory of a moving object and quickly query large-capacity moving object data. In the performance evaluation, Performance is the result of the experiment.

본 발명에 따른 UDF 기반 궤적 데이터 처리방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The UDF-based trajectory data processing method according to the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and configured for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

Claims (6)

궤적 데이터를 저장하기 위한 궤적 테이블(mobject trajtable), 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory column)을 이용하여, 생성되는 궤적 데이터를 선정된 개수의 궤적 세그먼트 셋으로 저장하는 데이터베이스를 구축하는 단계;
궤적 세그먼트 테이블(Trajectory Segment Table)로부터 GiST(Generalized Search Tree) 인덱스 데이터셋을 생성하는 단계;
상기 GiST(Generalized Search Tree) 인덱스 데이터셋에서 질의 조건을 만족하는 후보 레코드셋을 검색하고, 정제(refine) 단계를 거쳐 실제 레코드의 유/무를 검사하는 단계; 및
일치하는 레코드의 존재 유/무에 따라 트루/펄스(true/fulse) 값을 반환하는 단계
를 포함하는 것을 특징으로 하는 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법.
A trajectory table for storing trajectory data, a trajectory segment table for storing sequentially generated trajectory segments, and a trajectory column for storing meta information of each trajectory, Constructing a database for storing generated trajectory data as a set number of trajectory segments;
Generating a GiST (Generalized Search Tree) index dataset from a Trajectory Segment Table;
Searching candidate record sets satisfying a query condition in the GiST (Generalized Search Tree) index data set and checking whether there is an actual record through a refine step; And
Steps to return a true / fulse value depending on the presence or absence of matching records
Wherein the UDF-based trajectory data processing method comprises the steps of:
궤적 데이터를 저장하기 위한 궤적 테이블(mobject trajtable), 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory column)을 이용하여, 생성되는 궤적 데이터를 선정된 개수의 궤적 세그먼트 셋으로 저장하는 데이터베이스를 구축하는 단계;
사용자 질의 이벤트 발생을 감지하는 경우, 질의 조건을 만족하는 궤적 세그먼트 테이블(Trajectory Segment Table)의 mpid (Moving Point IDentify)들로 임시 테이블(MT)을 생성하는 단계;
궤적 세그먼트 테이블(Trajectory Segment Table)로부터 GiST(Generalized Search Tree) 인덱스 데이터셋을 생성하고, 상기 GiST(Generalized Search Tree) 인덱스 데이터셋에서 질의 조건을 만족하는 후보 레코드셋을 검색하는 단계; 및
정제(refine) 단계를 거쳐 실제 레코드의 유/무를 검사하고, 일치하는 레코드의 존재 유/무에 따라 트루/펄스(true/fulse) 값을 반환하는 단계
를 포함하는 것을 특징으로 하는 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법.
A trajectory table for storing trajectory data, a trajectory segment table for storing sequentially generated trajectory segments, and a trajectory column for storing meta information of each trajectory, Constructing a database for storing generated trajectory data as a set number of trajectory segments;
Generating a temporary table (MT) with mpid (Moving Point IDentify) of a Trajectory Segment Table satisfying a query condition when detecting the occurrence of a user query event;
Generating a generalized search tree (GiST) index data set from a trajectory segment table and searching for a candidate record set satisfying a query condition in the generalized search tree (GiST) index data set; And
A step of refining the true record through the refine step and returning a true / fulse value according to the presence / absence of a matching record
Wherein the UDF-based trajectory data processing method comprises the steps of:
제1항 및 제2항 중 어느 한 항에 있어서,
상기 궤적 세그먼트 셋은 이동 객체가 이동한 점 포인트와 그 순간에서의 시간으로 구성된 Tpoint(Time Point) 타입의 어레이(Array) 형태로 생성되는 것을 특징으로 하는 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법.
4. The method according to any one of claims 1 to 3,
Wherein the trajectory segment set is generated in a form of a Tpoint (Time Point) type array consisting of a point at which the moving object has moved and a time at the instant of time. The UDF-based trajectory data processing of the UDF- Way.
제1항 및 제2항 중 어느 한 항에 있어서,
상기 GiST 인덱스 데이터셋은 질의 조건을 검사하는 Consistent(E,q) 함수와 입력 엔트리들을 병합해 주는 Union(P) 함수, 삽입되는 엔트리의 노드 위치를 결정하기 위해 필요한 Penalty(E1,E2) 함수, 노드의 분할을 결정해 주는 PickSplit(P) 함수, 입력 엔트리를 저장 가능한 포맷으로 변경해주는 Compress(E) 함수, Compress(E) 함수의 역함수인 Decompress(E) 함수를 통해 구현되는 것을 특징으로 하는 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법.
4. The method according to any one of claims 1 to 3,
The GiST index data set includes a Union (P) function for merging input entries with a Consistent (E, q) function for checking query conditions, a Penalty (E1, E2) function for determining a node position of an inserted entry, (E) function, which is an inverse function of a Compress (E) function, and a PickSplit (P) function for determining a node partition, a Compress (E) function for changing an input entry into a storable format, and a Decompress UDF - based trajectory data processing method based on trajectory data system.
궤적 데이터를 저장하기 위한 궤적 테이블(mobject trajtable), 순차적으로 생성되는 궤적 세그먼트들을 저장하는 궤적 세그먼트 테이블(Trajectory Segment Table), 각 궤적들의 메타 정보를 저장할 수 있는 메타 테이블(trajectory column)을 이용하여, 생성되는 궤적 데이터를 선정된 개수의 궤적 세크먼트 셋으로 저장하는 데이터베이스를 유지하는 단계;
사용자 요청에 따라 선정된 UDF 함수 모듈을 실행하는 단계; 및
상기 UDF 함수 모듈이 오브젝트 테이블(Object Table)의 moid와 질의 조건(cond)이 일치하는 레코드를 검색하기 위해 궤적 세그먼트 테이블(Trajectory Segment Table)을 스캔하고, 일치하는 레코드의 존재 유/무에 따라 트루/펄스(true/fulse) 값을 반환하는 단계
를 포함하는 것을 특징으로 하는 UDF 기반 궤적 데이터 시스템의 UDF 기반 궤적 데이터 처리방법.
A trajectory table for storing trajectory data, a trajectory segment table for storing sequentially generated trajectory segments, and a trajectory column for storing meta information of each trajectory, Maintaining a database storing the generated trajectory data as a predetermined number of trajectory segment sets;
Executing a selected UDF function module according to a user request; And
The UDF function module scans the Trajectory Segment Table to retrieve records whose moids match the query condition (cond) of the object table, and if true, / Steps that return a true / fulse value
Wherein the UDF-based trajectory data processing method comprises the steps of:
삭제delete
KR1020170010767A 2017-01-24 2017-01-24 Method of Processing Moving Object Trajectory Data With User Defined Functions KR101797207B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170010767A KR101797207B1 (en) 2017-01-24 2017-01-24 Method of Processing Moving Object Trajectory Data With User Defined Functions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170010767A KR101797207B1 (en) 2017-01-24 2017-01-24 Method of Processing Moving Object Trajectory Data With User Defined Functions

Publications (1)

Publication Number Publication Date
KR101797207B1 true KR101797207B1 (en) 2017-11-13

Family

ID=60386279

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170010767A KR101797207B1 (en) 2017-01-24 2017-01-24 Method of Processing Moving Object Trajectory Data With User Defined Functions

Country Status (1)

Country Link
KR (1) KR101797207B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110909418A (en) * 2019-11-14 2020-03-24 北京润科通用技术有限公司 Flight simulation data processing method and device
CN112800152A (en) * 2019-11-13 2021-05-14 阿里巴巴集团控股有限公司 Track data processing method, device and system
CN113051359A (en) * 2021-03-30 2021-06-29 大连理工大学 Large-scale track data similarity query method based on multi-level index structure
CN113326257A (en) * 2020-04-30 2021-08-31 阿里巴巴集团控股有限公司 Index construction method, recommendation method, device, electronic equipment and computer storage medium
CN113742548A (en) * 2021-11-02 2021-12-03 阿里云计算有限公司 Track query method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004118290A (en) 2002-09-24 2004-04-15 Nippon Telegr & Teleph Corp <Ntt> Device and method for generating index for moving locus data retrieval, device and method for retrieving moving locus data, index generating program for moving locus data retrieval, recording medium recording the same, moving locus data retrieval program and recording medium recording the same
JP2004118293A (en) 2002-09-24 2004-04-15 Nippon Telegr & Teleph Corp <Ntt> Device and method for generating index for moving locus data retrieval, device and method for retrieving moving locus data, index generation program for moving locus data retrieval, recording medium recording the same, moving locus data retrieval program and recording medium recording the same
CN103294676A (en) 2012-02-24 2013-09-11 北京明日时尚信息技术有限公司 Content duplicate detection method of network image based on GIST (generalized search tree) global feature and SIFT (scale-invariant feature transform) local feature

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004118290A (en) 2002-09-24 2004-04-15 Nippon Telegr & Teleph Corp <Ntt> Device and method for generating index for moving locus data retrieval, device and method for retrieving moving locus data, index generating program for moving locus data retrieval, recording medium recording the same, moving locus data retrieval program and recording medium recording the same
JP2004118293A (en) 2002-09-24 2004-04-15 Nippon Telegr & Teleph Corp <Ntt> Device and method for generating index for moving locus data retrieval, device and method for retrieving moving locus data, index generation program for moving locus data retrieval, recording medium recording the same, moving locus data retrieval program and recording medium recording the same
CN103294676A (en) 2012-02-24 2013-09-11 北京明日时尚信息技术有限公司 Content duplicate detection method of network image based on GIST (generalized search tree) global feature and SIFT (scale-invariant feature transform) local feature

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800152A (en) * 2019-11-13 2021-05-14 阿里巴巴集团控股有限公司 Track data processing method, device and system
CN112800152B (en) * 2019-11-13 2024-06-11 阿里巴巴集团控股有限公司 Track data processing method, device and system
CN110909418A (en) * 2019-11-14 2020-03-24 北京润科通用技术有限公司 Flight simulation data processing method and device
CN113326257A (en) * 2020-04-30 2021-08-31 阿里巴巴集团控股有限公司 Index construction method, recommendation method, device, electronic equipment and computer storage medium
CN113326257B (en) * 2020-04-30 2023-12-15 阿里巴巴集团控股有限公司 Index construction method, recommendation method, device, electronic equipment and computer storage medium
CN113051359A (en) * 2021-03-30 2021-06-29 大连理工大学 Large-scale track data similarity query method based on multi-level index structure
CN113742548A (en) * 2021-11-02 2021-12-03 阿里云计算有限公司 Track query method and device
CN113742548B (en) * 2021-11-02 2022-04-15 阿里云计算有限公司 Track query method and device

Similar Documents

Publication Publication Date Title
KR101797207B1 (en) Method of Processing Moving Object Trajectory Data With User Defined Functions
Botea et al. PIST: an efficient and practical indexing technique for historical spatio-temporal point data
CN102651020B (en) Method for storing and searching mass sensor data
Sankaranarayanan et al. Query processing using distance oracles for spatial networks
KR100650389B1 (en) Indexing system of moving objects using time-based partitioning with second-dimensional structure and method thereof
Gidófalvi et al. Mining long, sharable patterns in trajectories of moving objects
EP2746970B1 (en) Timeline index for managing temporal data
Patroumpas et al. Towards geospatial semantic data management: strengths, weaknesses, and challenges ahead
US9507815B2 (en) Column store optimization using simplex store
Bakli et al. Distributed moving object data management in MobilityDB
Pant et al. A survey of spatio-temporal database research
Dignös et al. Leveraging range joins for the computation of overlap joins
Ravada et al. Oracle8i spatial: Experiences with extensible databases
Xu et al. The TM-RTree: an index on generic moving objects for range queries
US10642807B2 (en) Column store optimization using telescope columns
Ding et al. Efficient maintenance of continuous queries for trajectories
Popa et al. PARINET: A tunable access method for in-network trajectories
Valdés et al. Index-supported pattern matching on tuples of time-dependent values
Peng et al. Analytical queries on road networks: An experimental evaluation of two system architectures
Gómez et al. A state-of-the-art in spatio-temporal data warehousing, OLAP and mining
Lee Integrating spatial and temporal relationship operators into SQL3 for historical data management
Trasarti Mastering the Spatio-Temporal Knowledge Discovery Process.
Brugnara et al. Graph databases for smart cities
Frentzos et al. Trajectory database systems
Goldner et al. Using Industry-based Spatio-Temporal Database to Store and Retrieve Big Trafc Data

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant