KR101014492B1 - Continuous query language based continuous query processor and method for relational data model based streaming data - Google Patents

Continuous query language based continuous query processor and method for relational data model based streaming data Download PDF

Info

Publication number
KR101014492B1
KR101014492B1 KR1020090026017A KR20090026017A KR101014492B1 KR 101014492 B1 KR101014492 B1 KR 101014492B1 KR 1020090026017 A KR1020090026017 A KR 1020090026017A KR 20090026017 A KR20090026017 A KR 20090026017A KR 101014492 B1 KR101014492 B1 KR 101014492B1
Authority
KR
South Korea
Prior art keywords
window
continuous
query
streaming data
language
Prior art date
Application number
KR1020090026017A
Other languages
Korean (ko)
Other versions
KR20100107757A (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 KR1020090026017A priority Critical patent/KR101014492B1/en
Publication of KR20100107757A publication Critical patent/KR20100107757A/en
Application granted granted Critical
Publication of KR101014492B1 publication Critical patent/KR101014492B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

본 발명은 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리기 및 방법에 관한 것으로써, 관계형 데이터 모델에 대한 질의언어 표준인 SQL에 스트리밍 데이터에 대한 질의를 처리하기 위한 새로운 문법 요소를 추가 함으로써, 표준 SQL질의언어의 기능과 특징을 유지하면서도 관계형 데이터 모델 기반의 스트리밍 데이터를 처리 할 수 있도록 하는 표준 SQL 질의언어를 확장하여 고안된 연속질의 언어 기반의 연속질의 처리기 및 방법을 제공 함으로써, 표준 SQL질의언어를 변함없이 활용하면서 스트리밍 데이터에 대한 질의 및 처리를 할 수 장점이 있다.The present invention relates to a continuum language-based continuum processor and method for processing relational data model-based streaming data, and provides a new grammar element for processing queries for streaming data in SQL, a query language standard for relational data models. By adding the standard SQL query language, which is designed to extend the standard SQL query language to process streaming data based on the relational data model while maintaining the functions and features of the standard SQL query language, It has the advantage of being able to query and process streaming data while using SQL query language invariably.

연속질의, 연속질의 처리기, 스트리밍 데이터, SQL Sequential, sequential processor, streaming data, SQL

Description

관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리기 및 방법 {CONTINUOUS QUERY LANGUAGE BASED CONTINUOUS QUERY PROCESSOR AND METHOD FOR RELATIONAL DATA MODEL BASED STREAMING DATA}Continuous-language-based continuity processor and method for processing relational data model-based streaming data {CONTINUOUS QUERY LANGUAGE BASED CONTINUOUS QUERY PROCESSOR AND METHOD FOR RELATIONAL DATA MODEL BASED STREAMING DATA}

본 발명은 연속질의 언어 기반의 연속질의 처리기 및 방법에 관한 것으로, 더욱 상세하게는 관계형 데이터 모델 기반의 스트리밍 데이터에 대한 검색을 위해 표준 SQL 질의언어를 연속질의 언어로 확장하여 처리하는 관계형 데이터 모델 기반의 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리기 및 방법에 관한 것이다.The present invention relates to a continuous-language processor and method of a continuous language, and more particularly, to a relational data model based on a relational data model based on a relational data model. The present invention relates to a continuous language-based continuous processor and method for processing streaming data.

SQL(Structured Query Language, 구조화 질의어)은 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안된 컴퓨터 언어이다. SQL은 데이터베이스로부터 정보를 얻거나 갱신 하기 위한 표준 대화식 프로그래밍 언어이다. 많은 수의 데이터베이스 관련 프로그램들은 SQL을 표준으로 채택하고 있다.Structured Query Language (SQL) is a computer language designed for data retrieval and management, database schema creation and modification, and database object access control management in relational database management systems. SQL is a standard interactive programming language for getting and updating information from a database. Many database programs adopt SQL as a standard.

최근의 인터넷 환경에서는 스트리밍 데이터 처리 기능을 필요로 하는 응용프로그램들이 늘어나고 있으며 이들에 대한 관심 또한 증가되고 있다.. 일반적으로 스트리밍 데이터는 연속하여 끊임 없이 발생하며, 시간별로 데이터의 양이 변하면서 고속으로 발생한다. 그러한 스트리밍 데이터의 예로는 네트워크 트래픽, 센서, RFID, 통화기록, 금융, 웹로그, 온라인 게임등의 데이터를 들 수 있다.In today's Internet environment, applications that require streaming data processing functions are increasing, and interest in them is also increasing. In general, streaming data is continuously generated continuously, and the amount of data changes over time. Occurs. Examples of such streaming data include data such as network traffic, sensors, RFID, call logs, finance, web logs, online games, and the like.

스트리밍 데이터 처리를 위한 공통적인 요구사항들에는 스트림밍 데이터에 대한 필터링연산, 집합연산, (디)멀티플렉싱, 발생빈도 연산, 조인연산, 윈도우 연산 등이 있으며, 기존 스트리밍 데이터 처리 애플리케이션들의 대부분은 독자적으로 위의 요구사항들을 만족시키기 위한 기능들을 개발해왔다. 하지만, 최근 들어 데이터 생산 주체가 다양화되고, 데이터 생산량과 속도 또한 증가 되면서, 기존의 개발방식으로는 급변하는 개발환경에 대한 요구사항들을 만족시키기 어렵다는 것이 인식되었다. 그리고, 최근의 이러한 인식과 더불어 학계와 산업계에서 이들 문제를 해결하기 위한 연구들을 활발히 진행하고 있다.Common requirements for streaming data processing include filtering, aggregation, (de) multiplexing, frequency operation, join, and window operations on streaming data. Most existing streaming data processing applications We have developed features to meet the above requirements. However, in recent years, as data producers diversify, and data production volume and speed also increase, it has been recognized that it is difficult to meet the requirements for rapidly changing development environments with existing development methods. In addition to these recent perceptions, studies are being actively conducted to solve these problems in academia and industry.

표준화된 방법으로 스트리밍 데이터를 처리하는 시스템 연구들 중에는 STREAM [참고문헌: A. Arasu, S. Babu, J. Widom. CQL: A Language for Continuous Queries over Streams and Relations. LNCS2921], TelegraphCQ [참고문헌: Samuel Madden et al. Continuously Adaptive Continuous Queries over Streams, ACM SIGMOD 2002] 등이 있다. 이들은 공통적으로 스트리밍 데이터에 대한 질의를 관계형 데이터 베이스 질의언어인 SQL로 하고 있는 특징이 있다.Among systems studies that process streaming data in a standardized way, STREAM [Ref. A. Arasu, S. Babu, J. Widom. CQL: A Language for Continuous Queries over Streams and Relations. LNCS2921], Telegraph CQ [Reference: Samuel Madden et al. Continuously Adaptive Continuous Queries over Streams, ACM SIGMOD 2002]. They are characterized in that the query for streaming data is SQL, a relational database query language.

SQL 질의언어는 관계형 데이터 베이스 질의를 위한 대표적인 표준 질의언어이며, 사용자들과 시스템들이 이를 사용하고 있다. 표준이며 대중화된 SQL질의언어를 이용하여 스트리밍 데이터에 대한 연속질의 기능을 제공하는 것은 사용자에게는 익숙한 질의방법을, 시스템에는 호환성을 제공한다는 점에서 큰 장점이 있다. 앞에서 예를 든 시스템들은 기본적으로 SQL 질의언어의 문법을 기반으로 한다는 장점을 제공한다. 하지만, 예를 든 시스템들 모두는 SQL 문법을 연속질의 언어로 확장하기 위해 SQL의 문법구조를 변경, 확장, 제한하는 방법을 사용하고 있다. SQL 질의언어의 문법구조 변화는 사용자에게 새로운 문법을 익혀야 하는 부담을 주며, 기존의 질의언어 처리 시스템에는 호환되지 않는 문제를 발생하게 된다. 그러므로, 가능하다면 관계형 데이터 모델 기반의 스트리밍 데이터에 대한 연속질의는 표준 질의언어인 SQL문법의 기본구조를 변경하지 않으면서 제공할 수 있어야 한다.The SQL query language is a representative standard query language for relational database queries and is used by users and systems. Providing a continuous query function for streaming data using the standard and popularized SQL query language has a great advantage in that it provides user-friendly query methods and system compatibility. The systems in the previous example offer the advantage that they are basically based on the syntax of the SQL query language. However, all of the example systems use a method of altering, extending, or restricting the syntax of SQL to extend it to a continuum language. Changes in the grammatical structure of the SQL query language place a burden on the user to learn a new grammar and cause incompatibility with the existing query language processing system. Therefore, if possible, a continuous query for streaming data based on relational data model should be provided without changing the basic structure of SQL syntax, which is a standard query language.

연속질의(Continuous Query)란 연속되어 끊임없이 입력되는 스트리밍 데이터에 대한 질의처리 방법의 하나로써, 전통적인 관계형 데이터 베이스의 질의처리 방식과 연속질의 시스템의 질의처리 방식 차이를 기준으로 비교 설명할 수 있다. 질의처리 방식의 가장 특징적인 차이점은 전통적인 관계형 데이터 베이스 질의처리기가 하나(1)의 질의요청에 대해 일(1)회만 질의처리를 실행한 후 그 질의결과를 반환하는 것에 비해, 연속질의 처리기는 하나(1)의 질의요청에 대해 질의요청을 취소하지 않는 한 연속적으로 질의처리를 실행하며 그에 대한 결과도 연속적으로 생산한다는 것에 있다. 또한 전통적인 관계형 데이터 베이스 질의처리기의 질의대상 데이터 집합은 질의처리 실행 시 한정된 집합이 되는 것에 비해, 연속질의 처리기의 질의처리 대상 데이터 집합은 질의실행 중에도 끊임 없이 변화한다. 또한 질의결과의 반환방법에 있어서도 전통적인 관계형 데이터베이스의 질의처리기는 질의결과에 대한 요청이 있을 경우에만 수동적으로 결과를 반환하는데 비해, 연속질의 처리기는 질의결과가 생산될 때 마다 자동으로 그 결과를 반환한다.Continuous query is a query processing method for streaming data that is continuously and continuously input. The continuous query can be compared based on the difference between the query processing method of a conventional relational database and the query processing method of a continuous system. The most distinctive difference between the query processing methods is that a continuum processor is one compared to a traditional relational database query processor performing one (1) query processing for one (1) query request and then returning the query result. As long as the query request of (1) is not canceled, the query processing is executed continuously, and the result is continuously produced. In addition, the query target data set of the traditional relational database query processor becomes a limited set at the time of query processing, whereas the query target data set of the continuous query processor changes continuously during query execution. In addition, in the method of returning a query result, the traditional relational database query processor returns a result only when a request for a query result is made, whereas a continuous query processor automatically returns a result whenever a query result is produced. .

현재의 표준 SQL 질의언어에는 스트리밍 데이터에 대한 연속질의를 정의할 수 있는 기능이 없다. 따라서, 관계형 데이터 모델 기반의 스트리밍 데이터에 대해 연속질의를 이용한 검색기능을 제공하기 위해서는 표준 SQL 질의언어의 기본문법 구조에 영향을 주지 않으면서도 연속질의 기능을 제공할 수 있는 문법구조의 확장이 필요하다.The current standard SQL query language does not have the ability to define a continuous query for streaming data. Therefore, in order to provide a continuous query function for streaming data based on relational data model, it is necessary to expand the grammar structure that can provide continuous query function without affecting the basic grammar structure of standard SQL query language. .

따라서, 본 발명은 상기한 표준 SQL질의언어의 스트리밍 데이터에 대한 연속질의 기능부족 문제를 해결하기 위한 것으로써, 표준 SQL 질의언어의 문법 구조를 변형하지 않으면서도 관계형 데이터 모델 기반 스트리밍 데이터에 대한 검색질의를 가능하게 하는 연속질의 언어를 고안하여, 이를 기반으로 연속질의를 수행하는 연속질의 처리기 및 방법을 제공하는 것에 있다.Accordingly, the present invention is to solve the problem of lack of continuity of the streaming data of the standard SQL query language, search query for the relational data model-based streaming data without modifying the syntax structure of the standard SQL query language The present invention is to provide a continuous processor and method for performing continuous query based on the continuous language.

본 발명에 의한 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템 및 방법은 시간에 따라 다른 데이터 양으로 연속적으로 끊임없이 입력되는 관계형 데이터 모델 기반의 스트리밍 데이터에 대한 질의 언어 및 처리 방안을 제공함으로써, 관계형 데이터 모델 기반의 스트리밍 데이터를 통합적으로 검색할 수 있는 기능을 제공한다. 또한 스트리밍 데이터에 대한 검색 기능을 표준 SQL문법을 변형하지 않으면서 추가 확장함으로써, 기존 표준 SQL의 기능을 수정 없이 그대로 사용할 수 있다.Continuous-language-based continuous-processing processing system and method for processing relational data model-based streaming data according to the present invention is a query language and processing method for a relational data model-based streaming data continuously and continuously inputted with different amounts of data over time. By providing, it provides a function to collectively search the streaming data based on the relational data model. In addition, the search function for streaming data can be further extended without modifying the standard SQL syntax, so that the functions of the existing standard SQL can be used without modification.

상기와 같은 목적을 달성하기 위한 본 발명의 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템은 관계형 데이터 모 델 기반 스트리밍 데이터를 입력 받는 입력 큐; 상기 입력 큐를 연속질의를 위한 데이터 집합으로 표현하는 윈도우; 연속질의를 입력받아 연속질의 실행환경을 구성하고, 연속적으로 질의를 실행하는 연속질의 처리기; 및 상기 연속질의 처리기에서 생산된 연속질의 결과 데이터를 관계형 데이터 모델 기반 스트리밍 데이터로 출력하기 위한 출력 큐를 포함하여 이루어진 것을 특징으로 한다.Continuous language-based continuous processing system for processing relational data model-based streaming data of the present invention for achieving the above object comprises an input queue for receiving the relational data model-based streaming data; A window for representing the input queue as a data set for a continuous query; A continuous query processor configured to receive a continuous query and construct a continuous execution environment, and execute the query continuously; And an output queue for outputting the continuous data produced by the continuous processor as relational data model based streaming data.

이 때, 상기 연속질의 처리기는 연속질의를 입력 받아 구문을 분석하고, 연속질의 언어 문법을 따라 바르게 작성된 연속질의인지를 검사하고, 올바르게 작성된 연속질의일 경우, 연속질의 구문 분석 트리를 생성하는 구문 분석 모듈; 상기 연속질의 구문 분석 트리의 윈도우 정의 구문을 이용하여 윈도우 정의가 바르게 되어 있는지를 검증하고, 입력 큐에 대한 윈도우를 생성하는 모듈; 상기 연속질의 구문 분석 트리의 검색질의 정의 구문을 이용하여 검색정의가 바르게 되어있는 지를 검증하고 검색결과에 대한 출력 큐를 생성하는 모듈; 상기 윈도우 생성과 출력 큐 생성이 올바르게 되었을 경우, 윈도우, 출력 큐, 그리고 연속질의를 등록하는 모듈로 이루어진다.In this case, the processor of the continuous query receives a continuous query, parses the syntax, checks whether the continuous query is written correctly according to the language syntax of the continuous query, and, in the case of a correctly prepared continuous query, constructs a parse tree of the continuous query. module; A module for verifying whether a window definition is correct using a window definition syntax of the serial parsing tree, and generating a window for an input queue; A module for verifying whether the search definition is correct by using the definition syntax of the search query of the parsing tree of the continuous query, and generating an output queue for the search result; When the window creation and the output queue creation are correct, the module includes a window, an output queue, and a continuous query.

또한, 본 발명의 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리방법은 (a) 연속질의를 질의등록 사용자 인터페이스를 통해 연속질의 처리기에 입력하는 단계; (b) 상기 입력된 연속질의에 대해 연속질의 언어 처리기가 구문 분석을 수행하는 단계; (c) 상기 분석된 구문을 이용하여 윈도 우를 생성하는 단계; (c) 상기 분석된 구문을 이용하여 출력 큐를 생성하는 단계; (d) 상기 생성된 윈도우, 출력 큐, 연속질의를 등록하여 연속질의 실행 환경을 구성하는 단계; 및 (e) 스트리밍 데이터에 대한 질의를 연속적으로 실행하고 결과를 생성하는 단계를 포함하여 이루어진 것을 특징으로 한다.In addition, the method of processing a continuous language-based continuous query for processing relational data model-based streaming data of the present invention comprises the steps of: (a) inputting the continuous query to the processor of the continuous query through the query registration user interface; (b) performing a syntax analysis on the input continuous query by the continuous language processor; (c) generating a window using the parsed syntax; (c) creating an output queue using the parsed syntax; (d) registering the created window, output queue, and continuous query to configure a continuous execution environment; And (e) continuously executing the query for the streaming data and generating a result.

이하, 본 발명의 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리기 및 방법에 대해 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, a processor and a method of a continuous-language-based continuous query for processing relational data model-based streaming data will be described in detail with reference to the accompanying drawings.

도 1은 기존 SQL 질의언어를 확장하여 관계형 데이터 모델 기반의 스트리밍 데이터에 대한 연속질의를 수행 할 수 있도록 한 연속질의 언어 구문 규칙의 일부분(110~200) 이다.1 is a part (110 ~ 200) of the continuous language syntax rules to extend the existing SQL query language to perform a continuous query on the streaming data based on the relational data model.

표준 SQL 질의언어에 관계형 데이터 모델 기반의 스트리밍 데이터 집합에 대한 윈도우를 정의 할 수 있는 window 절(120)을 추가 하였으며, window절은 스트리밍 데이터가 입력되는 장소인 입력 큐에 대한 이름을 정의 할 수 있는 큐이름, 윈도우 이름, 윈도우 속성을 정의하는 윈도우 표현 절(130)로 정의할 수 있도록 하였다. 윈도우 표현절에서 큐 이름은 큐 이름 절(140)에서 큐의 고유 ID값으로 정의 할 수 있도록 하였으며, 윈도우 이름은 윈도우 이름 절(150)에서 윈도우 고유 ID값으로 정의 할 수 있도록 하였다. 윈도우 표현절에서 윈도우 속성은 윈도우의 크기와 이동의 값을 시간값 또는 개수값으로 윈도우 속성절(160)에서 정의 할 수 있도록 하 였으며, 윈도우 속성절의 윈도우 시간값은 일(Day), 시간(Hour), 분(Min), 초(Sec)의 값으로 윈도우 시간값 절(170)에서 정의 할 수 있도록 하였고, 윈도우 속성절의 윈도우 개수값은 양의 정수로 윈도우 개수값 절(180)에서 정의 할 수 있도록 하였다. 그리고, 질의에 필요한 고유특성 값을 사용하기 위해 using property 키워드와 고유 ID값으로 정의할 수 있도록 한 고유특성 사용 절(190)을 추가하였다. SQL 질의문 절(200)은 표준 SQL 문으로 정의 할 수 있도록 하였으며, 이는 표준 SQL문의 기능을 변함없이 활용할 수 있도록 한 것이다.In the standard SQL query language, a window clause (120) has been added to define a window for a streaming data set based on a relational data model. The window clause can define a name for an input queue, which is where streaming data is input. The window expression clause 130 defining the queue name, the window name, and the window property can be defined. In the window expression clause, the queue name can be defined as the unique ID value of the queue in the queue name clause 140, and the window name can be defined as the window unique ID value in the window name clause 150. In the window expression clause, the window property allows the size and movement of the window to be defined in the window property clause 160 as a time value or a count value, and the window time values in the window property clause are days and hours. ), Minutes (Min), and seconds (Sec) values can be defined in the window time value clause 170, and the window count value of the window property clause can be defined in the window count value clause 180 as a positive integer. It was made. In order to use the unique property value required for the query, a unique property use clause 190 has been added so that it can be defined by using property keyword and unique ID value. The SQL query clause 200 can be defined as a standard SQL statement, which allows to use the functions of the standard SQL statement invariably.

도 2는 도1의 연속질의 언어 구문을 사용한 예(210~240)이다. FIG. 2 shows examples 210 to 240 using the continuous language syntax of FIG.

일실시예(210)는 관계형 데이터 모델 기반 스트리밍 데이터 집합이 저장되어 있는 입력 큐 queue1에 대해 5초의 시간크기 값과 5초의 이동 값을 갖는 윈도우 win1을 생성하고, 그 윈도우 win1으로부터 스트리밍 데이터 집합의 총 원소 개수를 검색하는 예이다. 다른 실시예(220)는 관계형 데이터 모델 기반 스트리밍 데이터 집합이 저장되어 있는 입력 큐 queue1에 대해 5분의 시간크기 값과 1분의 이동 값를 갖는 윈도우 win1을 생성하고, 동일 입력 큐 queue1에 대해 1분의 시간크기 값과 5분의 이동 값을 갖는 win2를 생성하여, 각각의 윈도우로부터 스트리밍 데이터 집합의 총 원소 개수를 검색하는 예이다. 다른 실시예(230)은 관계형 데이터 모델 기반 스트리밍 데이터 집합이 저장되어 있는 입력 큐 queue1에 대해 스트리밍 데이터 원소 10개 크기 값과 스트리밍 데이터 원소 10개의 이동 값을 갖는 윈도우 win1을 생성하고, 그 윈도우 win1으로부터 스트리밍 데이터 집합의 총 원소 개수를 검색하는 예이다. 다른 실시예(240)은 관계형 데이터 모델 기반 스트리밍 데이터 집합이 저장되어 있는 입력 큐 queue1에 대해 스트리밍 데이터 원소 10개 크기 값과 스트리밍 데이터 원소 5개의 이동 값을 갖는 윈도우 win1을 생성하고, 동일 입력 큐 queue1에 대해 스트리밍 데이터 원소 5개 크기 값과 스트리밍 데이터 원소 10개의 이동 값을 갖는 윈도우 win2를 생성하여, 각각의 윈도우로부터 스트리밍 데이터 집합의 총 원소 개수를 검색하는 예이다.One embodiment 210 creates a window win1 having a time size value of 5 seconds and a moving value of 5 seconds for an input queue queue1 in which a relational data model based streaming data set is stored, and the total of streaming data sets from the window win1. Example of retrieving the number of elements. Another embodiment 220 creates a window win1 with a time size value of 5 minutes and a move value of 1 minute for input queue queue1 in which a relational data model based streaming data set is stored, and 1 minute for the same input queue queue1. In this example, win2 having a time size value of 5 and a moving value of 5 minutes is generated, and the total number of elements of the streaming data set is retrieved from each window. Another embodiment 230 creates a window win1 having a size of 10 streaming data elements and a moving value of 10 streaming data elements for an input queue queue1 in which a relational data model based streaming data set is stored, and from the window win1. This example retrieves the total number of elements in the streaming data set. Another embodiment 240 creates a window win1 having 10 streaming data element size values and 5 streaming data element moving values for an input queue queue1 in which a relational data model based streaming data set is stored, and the same input queue queue1. For example, a window win2 having a size of five streaming data elements and a moving value of ten streaming data elements is generated, and the total number of elements of the streaming data set is retrieved from each window.

도 3은 본 발명의 연속질의 언어 기반 연속질의 처리기의 예를 도시한 것이다. Figure 3 illustrates an example of a processor of the present invention, a language-based continuum.

도 3에 도시된 바와 같이, 본 발명의 연속질의 언어 기반 연속질의 처리 시스템은 사용자 인터페이스(310), 입력 큐 응용 프로그램(320), 입력 큐(330), 윈도우(340), 연속질의 처리기(350), 출력 큐(360), 출력 큐 응용 프로그램(370)으로 구성되어 있다.As shown in FIG. 3, the continuous-language-based continuous processing system of the present invention includes a user interface 310, an input queue application 320, an input queue 330, a window 340, and a continuous processor 350. ), An output queue 360, and an output queue application program 370.

사용자 인터페이스(310)은 연속질의 처리 시스템 사용자에게 입력 큐 생성/삭제/검색, 연속질의 등록/삭제/검색, 결과 큐 검색 등의 시스템 사용기능 제공을 담당한다. 입력 큐 응용 프로그램(320)은 관계형 데이터 모델 기반 스트리밍 데이터를 생산하여 입력 큐(330)에 입력하는 역할을 한다. 입력 큐(330)는 입력 큐 응용 프로그램(320)으로부터 전달 받은 관계형 데이터 모델 기반 스트리밍 데이터를 저장 하는 역할을 한다. 연속질의 처리기(350)는 사용자 인터페이스(310)를 통해 전달받은 연속질의를 분석하고 검증하여 입력 큐(330)와 연계된 윈도우(340) 생성과 연속질의 검색결과에 대한 출력 큐(360)를 생성하는 역할을 담당하며, 또한 연속질의 수 행 계획에 따라 연속적으로 질의를 수행하여 질의 결과를 출력 큐(360)에 전달하는 역할을 담당한다. 윈도우(340)는 이용하여 입력 큐(330)에 대한 연속질의를 위해 시간 또는 개수 주기의 크기 값과 이동 값을 관리하는 역할을 담당한다. 출력 큐(360)는 연속질의 처리기(350)로부터 생산된 연속질의 결과 스트리밍 데이터를 저장하는 역할을 담당한다. 출력 큐 응용 프로그램(370)은 출력 큐(360)로부터 연속질의 결과 스트리밍 데이터를 전달받고 그 결과를 이용하는 역할을 담당한다.The user interface 310 is responsible for providing system usage functions such as input queue creation / deletion / search, registration / deletion / search of continuous query, and result queue search to the user of the continuous processing system. The input queue application 320 is responsible for producing relational data model based streaming data and inputting it to the input queue 330. The input queue 330 stores the relational data model-based streaming data received from the input queue application 320. The continuous query processor 350 analyzes and verifies the continuous query received through the user interface 310 to generate a window 340 associated with the input queue 330 and to generate an output queue 360 for the search result of the continuous query. It also plays a role of delivering a query result to the output queue 360 by continuously performing a query according to the execution plan of the continuous query. The window 340 serves to manage the size value and the moving value of the time or number period for the continuous query for the input queue 330 by using. The output queue 360 is responsible for storing the continuous streaming resultant data produced from the continuous processing processor 350. The output queue application 370 receives the continuous streaming result data from the output queue 360 and is responsible for using the result.

도 4는 연속질의 처리기(350)가 연속질의를 등록하는 과정에 대한 흐름도이다.4 is a flowchart illustrating a process of registering the continuous query by the processor 350 of the continuous query.

사용자 인터페이스(310)를 통해 연속질의를 입력 받는다(410). 입력된 연속질의에 대한 구문 분석을 수행하고, 올바른 구문이 아닐 경우 등록 과정을 종료한다(420). 입력된 연속질의의 구문이 올바른 경우 연속질의 구문 트리를 생성한다(430). 연속질의 구문 트리에서 윈도우 정의 구문이 올바른지 검증하고, 올바른 구문이 아닐 경우 등록 과정을 종료한다(440). 윈도우 정의 구문이 올바른 경우 윈도우를 생성한다(441). 연속질의 구문 트리에서 검색질의가 올바른지 검증하고, 올바른 검색질의가 아닐 경우 등록 과정을 종료한다(450). 올바른 검색질의인 경우 검색결과에 대한 출력 큐를 생성한다(451). 연속질의에 대한 윈도우와 출력 큐 모두가 올바르게 생성 되었는가 검증하고, 그렇지 않을 경우 등록 과정을 종료한다(460). 올바르게 생성된 윈도우와 출력 큐, 연속질의에 대한 등록을 수행한다(470).The continuous query is input through the user interface 310 (410). Parsing of the input continuous query is performed, and if it is not correct syntax, the registration process is terminated (420). If the syntax of the input continuous query is correct, the syntax tree of the continuous query is generated (430). The syntax of the window definition is verified in the syntax tree of the continuous query. If the syntax is not correct, the registration process is terminated (440). If the window definition syntax is correct, the window is created (441). If the search query is correct in the syntax tree of the continuous query, the registration process is terminated if it is not the correct search query (450). If the correct search query, an output queue for the search result is created (451). It is verified whether both the window and the output queue for the continuous query are correctly created, otherwise, the registration process is terminated (460). Registration of the correctly created window, output queue, and continuous query is performed (470).

도 5는 연속질의 처리기(350)가 연속질의를 수행하는 과정에 대한 흐름도이다.5 is a flowchart illustrating a process of performing the continuous query by the processor 350 of the continuous query.

입력 큐 응용 프로그램(320)은 스트리밍 데이터를 생산하여 입력 큐(330)에 입력한다(S501). 스트리밍 데이터 입력(S501)과정은 시스템 종료 전까지 반복적으로 수행된다.The input queue application program 320 produces streaming data and inputs it to the input queue 330 (S501). Streaming data input (S501) process is repeatedly performed until the end of the system.

연속질의 언어 처리기(350)은 윈도우(340)의 크기 값과 이동 값을 이용하여 입력 큐(330)에 대한 윈도우 슬라이딩(S502)을 수행하고, 슬라이딩된 윈도우의 시간 값과 이동 값을 기준으로 입력 큐(330)에 대한 질의를 수행(S503)을 한 후, 질의결과가 있으면 출력 큐(360)에 질의 결과를 반환(S504)한다. 질의과정(S502~S504)은 연속질의가 삭제 되기 전까지 반복 수행된다.The continuous language processor 350 performs window sliding (S502) with respect to the input queue 330 using the size value and the movement value of the window 340, and inputs the input based on the time value and the movement value of the sliding window. After querying the queue 330 (S503), if there is a query result, the query result is returned to the output queue 360 (S504). The query process (S502 ~ S504) is repeated until the continuous query is deleted.

출력 큐 응용 프로그램(370)은 출력 큐(360)로부터 연속질의 결과 스트리밍 데이터를 전달 받는다(S505). 이 과정(S505)은 연속질의가 삭제 되기 전까지 반복 수행된다.The output queue application program 370 receives the continuous streaming result data from the output queue 360 (S505). This process (S505) is repeated until the continuous query is deleted.

이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다.Although the present invention has been described in more detail with reference to some embodiments, the present invention is not necessarily limited to these embodiments, and various modifications can be made without departing from the spirit of the present invention.

도 1은 본 발명에 의한 관계형 데이터 모델 기반의 스트리밍 데이터 검색을 위한 연속질의 언어 구문 규칙.1 is a continuous language syntax rule for streaming data retrieval based on a relational data model according to the present invention.

도 2는 본 발명의 연속질의 언어 구문의 실시예를 나타낸 도면.2 illustrates an embodiment of a continuum language construct of the present invention.

도 3은 본 발명의 연속질의 처리기를 포함한 스트리밍 데이터 처리 시스템의 예를 나타낸 도면.3 shows an example of a streaming data processing system including a continuous processor of the present invention.

도 4는 본 발명의 연속질의 처리기가 연속질의를 등록하는 과정을 처리 순서로 나타낸 흐름도.4 is a flowchart illustrating a process of registering a continuous query by the continuous processor of the present invention.

도 5는 본 발명의 연속질의 처리기가 연속질의를 수행하는 과정에 대한 흐름도.5 is a flowchart of a process of performing a continuous query by the continuous processor of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

310: 사용자 인터페이스310: user interface

320: 입력 큐 응용 프로그램320: input queue application

330: 입력 큐330: input queue

340: 윈도우340: Windows

350: 연속질의 처리기350: continuous processor

360: 출력 큐360: output queue

370: 출력 큐 응용 프로그램370: Output queue application

410: 연속질의 입력410: input of continuous quality

420: 구문 분석420: parsing

430: 연속질의 구문 트리430: sequence syntax tree

440: 윈도우 검증440: Windows Verification

441: 윈도우 생성441: Create Window

450: 검색질의 검증450: Validation of search quality

451: 출력 큐 생성451: Create output queue

460: 연속질의 검증460: Verification of continuous quality

470: 윈도우/출력 큐/연속질의 등록470: Registering windows / output queues / continuities

S501: 스트리밍 데이터 입력S501: Streaming data input

S502: 윈도우 슬라이딩S502: sliding window

S503: 질의 수행S503: Query Execution

S504: 질의 결과 반환S504: Return query results

S505: 스트리밍 데이터 출력S505: streaming data output

Claims (7)

입력 큐에 대한 응용 프로그램으로부터 전송되는 관계형 데이터 모델 기반의 스트리밍 데이터를 독립적으로 저장하고 관리하는 입력 큐;An input queue for independently storing and managing streaming data based on a relational data model transmitted from an application for the input queue; 연속질의의 결과인 관계형 데이터 모델 기반의 스트리밍 데이터를 독립적으로 저장하고 관리하는 출력 큐;An output queue for independently storing and managing streaming data based on a relational data model that is a result of a continuous query; 상기 입력 큐에 저장되어 있는 스트리밍 데이터 집합에 상대적인 순차 부분집합의 크기와 이동 정보를 시간 값 또는 개수 값 기준으로 저장하고 관리하는 윈도우; 및A window for storing and managing the size and movement information of the sequential subset relative to the streaming data set stored in the input queue based on a time value or a number value; And 상기 입력 큐에 저장되어 있는 스트리밍 데이터 집합에 대해 상기 윈도우 정보를 기준으로 검색질의를 하고, 그 결과를 상기 출력 큐에 저장하는 일련의 과정을 반복적으로 수행하는 연속질의 처리기;A continuous query processor that performs a search query on the streaming data set stored in the input queue based on the window information, and repeatedly stores a result in the output queue; 를 포함하는 것을 특징으로 하는 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템.Continuous-language-based continuous processing system for the relational data model-based streaming data processing comprising a. 제 1항에 있어서, 상기 연속질의 처리 시스템은The system of claim 1, wherein the continuous treatment system is (입력 큐, 출력 큐, 윈도우, 연속질의)를 등록, 삭제, 변경 관리하기 위한 사용자 인터페이스;A user interface for registering, deleting, and managing change (input queue, output queue, window, serial query); 를 더 포함하는 것을 특징으로 하는 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템.Continuous-language-based continuous processing system for processing relational data model-based streaming data, further comprising a. 제 1항에 있어서, 상기 연속질의 처리기는The process of claim 1, wherein the continuous processor is a.사용자 인터페이스를 통해 연속질의를 입력받는 단계;a. receiving a continuous query through a user interface; b.상기 단계에서 입력된 연속질의에 대한 구문 분석을 수행하고 검증하는 단계;b. performing and verifying parsing on the continuous query entered in the step; c.상기 단계에서 검증된 연속질의 구문이 올바른 경우 연속질의 구문 트리를 생성하는 단계;c. generating a syntax tree of the continuum if the syntax of the continuum verified in the above step is correct; d.상기 단계에서 생성된 연속질의 구문 트리에서 윈도우 정의 구문이 올바른지 검증하는 단계;d. verifying that the window definition syntax is correct in the syntax tree of the continuous query generated in the step; e.상기 단계에서 검증된 윈도우 정의 구문이 올바른 경우 윈도우 정의 구문에 의해 윈도우를 생성하는 단계;e. generating a window by the window definition syntax when the window definition syntax verified in the above step is correct; f.상기 단계에서 생성된 연속질의 구문 트리에서 검색 질의가 올바른지 검증하는 단계;f. verifying that the search query is correct in the syntax tree of the continuous query generated in the step; g.상기 단계에서 검증된 검색 질의가 올바른 경우 검색 질의 결과에 대한 출력 큐를 생성하는 단계;g. generating an output queue for the search query result if the search query verified in the step is correct; h.상기 단계에서 연속질의에 대한 윈도우와 출력 큐 모두가 올바르게 생성되었는지를 검증하는 단계; 및h. verifying that the window and output queue for the continuous query have been correctly created in the step; And i.상기 단계에서 생성된 윈도우와 출력 큐 그리고 입력된 연속질의에 대한 등록을 수행하는 단계;i. performing registration of the window, the output queue, and the input continuous query generated in the step; 를 포함하는 것을 특징으로 하는 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템.Continuous-language-based continuous processing system for the relational data model-based streaming data processing comprising a. 제 3항에 있어서, 상기 e 단계는,The method of claim 3, wherein the step e, 윈도우 정의 기준이 시간 값인지 개수 값인지 판별하는 단계;Determining whether the window definition criterion is a time value or a count value; 상기 단계에서 판별된 윈도우 정의 기준이 시간 값인 경우, 일, 시간, 분, 초 단위로 정의된 윈도우 크기 값과 윈도우 이동 값을 추출하는 단계;Extracting a window size value and a window movement value defined in units of days, hours, minutes, and seconds when the window definition criterion determined in the step is a time value; 상기 단계에서 판별된 윈도우 정의 기준이 개수 값인 경우, 양의 정수 단위로 정의된 윈도우 크기 값과 이동 값을 추출하는 단계;Extracting a window size value and a movement value defined in positive integer units when the window definition criterion determined in the step is a number value; 상기 단계에서 추출된 윈도우 크기 값과 윈도우 이동 값을 비교하는 단계;Comparing the window size value and the window shift value extracted in the step; 상기 단계에서 비교한 결과에서 윈도우 크기 값과 윈도우 이동 값이 같은 경우, 윈도우의 속성을 일반 윈도우로 정의하는 단계;Defining a property of a window as a general window when the window size value and the window movement value are the same as a result of the comparison in the above step; 상기 단계에서 비교한 결과에서 윈도우 크기 값이 윈도우 이동 값보다 큰 경우, 윈도우의 속성을 중첩 윈도우로 정의하는 단계; 및Defining a property of a window as an overlapping window when the window size value is greater than the window moving value as a result of the comparison in the above step; And 상기 단계에서 비교한 결과에서 윈도우 크기 값이 윈도우 이동 값보다 작은 경우, 윈도우의 속성을 점프 윈도우로 정의하는 단계;Defining a property of a window as a jump window when the window size value is smaller than the window moving value as a result of the comparison in the above step; 를 포함하는 것을 특징으로 하는 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템.Continuous-language-based continuous processing system for the relational data model-based streaming data processing comprising a. a.연속질의 처리기가 윈도우의 크기 값과 이동 값을 기준으로 입력 큐에 대한 윈도우를 이동하는 단계;a. the continuous processor moving the window for the input queue based on the size value and the moving value of the window; b.상기 단계에서 이동한 윈도우를 기준으로 입력 큐에 대한 질의를 수행하는 단계;b. performing a query on the input queue based on the window moved in the step; c.상기 단계에서 수행한 질의의 결과를 출력 큐에 입력하는 단계;c. inputting the result of the query performed in the step to an output queue; d.상기 단계에서 출력 큐에 입력된 질의의 결과를 출력 큐 응용 프로그램에 비동기적으로 전달하는 단계; 및d. asynchronously delivering the results of the query entered in the output queue to the output queue application program; And (a,b,c,d)단계를 순차적으로 반복 수행하는 단계;sequentially repeating steps (a, b, c, d); 를 포함하는 것을 특징으로 하는 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템.Continuous-language-based continuous processing system for the relational data model-based streaming data processing comprising a. 제 3 항에 있어서, 상기 연속질의에 대한 언어 구문 규칙은,4. The method of claim 3, wherein the language syntax rules for the continuous query are: 표준 SQL 질의 언어에In the standard SQL query language 스트리밍 데이터가 저장되어 있는 입력 큐 이름과 윈도우의 크기 값과 이동 값을 시간 또는 개수로 정의하는 window절을 추가적으로 포함하는 것을 특징으로 하는 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템.Continuous-language-based continuity processing for relational data model-based streaming data processing, further comprising a window clause that defines the input queue name where the streaming data is stored, and the size and movement values of the window as time or number. system. 제 6항에 있어서, 상기 연속질의에 대한 언어 구문 규칙은,The method of claim 6, wherein the language syntax rules for the continuous query, window절에서 시간의 크기(size) 값과 이동(slide) 값을 일(day), 시(hour), 분(min), 초(sec)로 나타내는 시간절을 포함하는 것을 특징으로 하는 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리 시스템.Relational data model that includes a time clause representing the size and slide values of time in days, hours, minutes, and seconds in the window clause. Continuous-language-based continuous-processing system for processing streaming data.
KR1020090026017A 2009-03-26 2009-03-26 Continuous query language based continuous query processor and method for relational data model based streaming data KR101014492B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090026017A KR101014492B1 (en) 2009-03-26 2009-03-26 Continuous query language based continuous query processor and method for relational data model based streaming data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090026017A KR101014492B1 (en) 2009-03-26 2009-03-26 Continuous query language based continuous query processor and method for relational data model based streaming data

Publications (2)

Publication Number Publication Date
KR20100107757A KR20100107757A (en) 2010-10-06
KR101014492B1 true KR101014492B1 (en) 2011-02-14

Family

ID=43129415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090026017A KR101014492B1 (en) 2009-03-26 2009-03-26 Continuous query language based continuous query processor and method for relational data model based streaming data

Country Status (1)

Country Link
KR (1) KR101014492B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2628094A4 (en) * 2010-10-14 2015-01-28 Hewlett Packard Development Co Continuous querying of a data stream
KR101439346B1 (en) * 2012-11-29 2014-09-11 주식회사 알티베이스 Complex Event Processing Apparatus for referring tables from an external Database
KR101955376B1 (en) 2016-12-29 2019-03-08 서울대학교산학협력단 Processing method for a relational query in distributed stream processing engine based on shared-nothing architecture, recording medium and device for performing the method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060067718A (en) * 2004-12-15 2006-06-20 한국전자통신연구원 System and method for processing continuous query language based xml query language for processing streaming data expressed xml
KR20070057599A (en) * 2005-12-01 2007-06-07 한국전자통신연구원 Stream data processing system and method for avoiding duplication of data processing
KR100817026B1 (en) 2006-12-05 2008-03-26 한국전자통신연구원 Spatial data stream management system and method using spatial sliding window
KR20090002244A (en) * 2006-12-04 2009-01-09 한국전자통신연구원 Apparatus and method for continuous query processing using the sharing of operation among multiple queries on xml data stream

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060067718A (en) * 2004-12-15 2006-06-20 한국전자통신연구원 System and method for processing continuous query language based xml query language for processing streaming data expressed xml
KR20070057599A (en) * 2005-12-01 2007-06-07 한국전자통신연구원 Stream data processing system and method for avoiding duplication of data processing
KR20090002244A (en) * 2006-12-04 2009-01-09 한국전자통신연구원 Apparatus and method for continuous query processing using the sharing of operation among multiple queries on xml data stream
KR100817026B1 (en) 2006-12-05 2008-03-26 한국전자통신연구원 Spatial data stream management system and method using spatial sliding window

Also Published As

Publication number Publication date
KR20100107757A (en) 2010-10-06

Similar Documents

Publication Publication Date Title
US10956464B2 (en) Natural language question answering method and apparatus
Zettlemoyer et al. Learning context-dependent mappings from sentences to logical form
US9652719B2 (en) Authoring system for bayesian networks automatically extracted from text
US11138005B2 (en) Methods and systems for automatically generating documentation for software
US7454413B2 (en) Query expressions and interactions with metadata
US20160124936A1 (en) Grammar compiling methods, semantic parsing methods, devices, computer storage media, and apparatuses
US11281864B2 (en) Dependency graph based natural language processing
CN109446221A (en) A kind of interactive data method for surveying based on semantic analysis
US10657124B2 (en) Automatic generation of structured queries from natural language input
CN112015722A (en) Database management method, data blood relationship analysis method and related device
WO2010125061A2 (en) Method and device for ontology evolution
US20220284174A1 (en) Correcting content generated by deep learning
Furche et al. The ontological key: automatically understanding and integrating forms to access the deep Web
KR101014492B1 (en) Continuous query language based continuous query processor and method for relational data model based streaming data
US20080243904A1 (en) Methods and apparatus for storing XML data in relations
US20230169405A1 (en) Updating training examples for artificial intelligence
CN116842042A (en) Universal method, device, electronic equipment and storage medium for dissimilating database
EP3407204A1 (en) Methods and systems for translating natural language requirements to a semantic modeling language statement
KR20120070713A (en) Method for indexing natural language and mathematical formula, apparatus and computer-readable recording medium with program therefor
JP2008243075A (en) Structured document management device and method
US11100286B2 (en) Methods and systems for implied graph patterns in property chains
CN103268312B (en) A kind of corpus collection system based on user feedback and method thereof
EP3944127A1 (en) Dependency graph based natural language processing
US11009845B2 (en) Method for transforming a sequence to make it executable to control a machine
JP5422751B1 (en) Structured document management apparatus, method and program

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141203

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee