KR100813000B1 - 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리시스템 및 그 방법 - Google Patents
데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리시스템 및 그 방법 Download PDFInfo
- Publication number
- KR100813000B1 KR100813000B1 KR1020060016335A KR20060016335A KR100813000B1 KR 100813000 B1 KR100813000 B1 KR 100813000B1 KR 1020060016335 A KR1020060016335 A KR 1020060016335A KR 20060016335 A KR20060016335 A KR 20060016335A KR 100813000 B1 KR100813000 B1 KR 100813000B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- window
- query condition
- condition evaluation
- result
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 유비쿼터스 환경에서 외부 센서로부터 수집되는 스트림 데이터의 연속 질의(continuous query) 처리시, 동일 데이터가 수차례에 걸쳐 질의 대상 범위(윈도우)에 포함되는 특성을 고려하여 이전의 질의 조건 평가 결과를 이용하여 중복으로 데이터의 질의 평가가 수행되지 않도록 방지함으로써, 전체 시스템의 성능을 향상시키고 자원 낭비를 줄이기 위한, 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 스트림 데이터 처리 시스템에 있어서, 질의 조건 평가 결과를 갱신하면서 저장하기 위한 평가 결과 저장 수단; 스트림 데이터에 대한 윈도우 평가를 수행하여 다음 차례의 질의 조건 평가 대상이 되는 데이터를 선별하기 위한 윈도우 평가 수단; 상기 윈도우 평가 수단으로부터 전달받은 데이터를 이전의 질의 조건 평가 결과의 재사용 가능 여부에 따라 새로운 데이터와 중복 입력 데이터로 분리하기 위한 데이터 분리 수단; 상기 데이터 분리 수단으로부터 전달받은 중복 입력 데이터에 대한 질의 조건 평가 결과를 상기 평가 결과 저장 수단으로부터 추출하기 위한 재사용 결과 추출 수단; 상기 데이터 분리 수단으로부터 새로운 데이터를 전달받음에 따라 질의 조건 평가를 수행하여 질의 조건 평가 결과를 생성하기 위한 질의 조건 평가 수단; 및 상기 재사용 결과 추출 수단과 상기 질의 조건 평가 수단으로부터 각각 전달받은 질의 조건 평가 결과를 취합하여 출력하고 상기 평가 결과 저장 수단으로 전달하기 위한 결과 구성 수단을 포함한다.
4. 발명의 중요한 용도
본 발명은 스트림 데이터 처리 시스템 등에 이용됨.
스트림 데이터, XML, 중복 입력 데이터, 계층적 저장 구조, 연속 질의, 데이터 중복 처리 방지
Description
도 1 은 스트림 데이터의 연속 질의 처리시 사용되는 윈도우 개념에 대한 일실시예 설명도,
도 2 는 종래 기술에 따른 스트림 데이터 처리 시스템의 일실시예 구성도,
도 3 은 XML 형태의 입력 스트림 데이터의 일실시예 설명도,
도 4 는 입력 스트림 데이터의 윈도우 바인딩에 대한 일실시예 설명도,
도 5 는 본 발명에 따른 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템의 일실시예 구성도,
도 6 은 본 발명에 따른 스트림 데이터 처리 시스템에서 질의 조건 평가 결과의 계층적 구조에 대한 일실시예 설명도,
도 7 은 본 발명에 따른 스트림 데이터 처리 시스템에서 질의 조건 평가 결과의 저장에 대한 일실시예 설명도,
도 8 은 본 발명에 따른 스트림 데이터 처리 시스템에서 데이터 중복 처리를 방지하기 위한 데이터 분리 과정에 대한 일실시예 흐름도,
도 9 는 본 발명에 따른 스트림 데이터 처리 시스템에서 이전 질의 조건 평가 결과 및 현 처리 결과의 취합 과정에 대한 일실시예 흐름도,
도 10 은 본 발명에 따른 스트림 데이터 처리 시스템에서 질의 조건 평가 결과의 재사용에 대한 일실시예 설명도,
도 11 은 본 발명에 따른 스트림 데이터 처리 시스템에서 데이터 중복 처리 방지 방법에 대한 일실시예 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
510 : 입력 버퍼 520 : 윈도우 평가부
530 : 데이터 분리부 540 : 재사용 결과 추출부
550 : 질의 조건 평가부 560 : 결과 구성부
570 : 출력 버퍼 580 : 평가 결과 저장부
본 발명은 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 윈도우 연산을 포함하는 연속 질의 처리시 이전 질의 조건 평가 결과를 이용하여 데이터의 중복 처리(중복 질의 평가)를 방지함으로써, 전체 시스템의 성능을 향상시키고 자원 낭비를 줄이기 위한, 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템 및 그 방법에 관한 것이다.
XML(eXtensible Markup Language)은 HTML(Hyper Text Markup Language)과 SGML(Standard Generalized Markup Language)의 단점을 개선하여 만들어진 차세대 인터넷 전자 문서 표준이다. XML은 플랫폼에 독립적이고, 문서 정보의 전송 및 교환이 용이하며, 문서의 의미를 그대로 나타낼 수 있는 장점이 있다. 여기서, XML은 1998년 2월에 W3C에서 권고안으로 채택되어, 이후 그 활용이 점차 활발해지고 있는 상황이다.
유비쿼터스 환경에서는 다양한 센서들로부터 상품정보, 온도, 습도 등과 같은 각종 데이터들이 실시간으로 수집된다. 상기 다양한 센서들로부터 수집되는 데이터는 네트워크를 통하여 연속적으로 생성 및 전달되는 스트림 데이터의 형태를 나타내고, 이러한 스트림 데이터를 효율적으로 처리하기 위한 스트림 데이터 처리 시스템 개발에 관심이 증대되고 있는 상황이다.
한편, 스트림 데이터 처리 시스템에서 스트림 데이터에 대한 질의는 기존 데이터베이스 관리 시스템에서처럼 질의 대상이 되는 데이터 집합이 먼저 정해진 환경에서 질의를 하여 그 결과를 얻어오는 일회 질의(one time query)와 구별하기 위해, 질의가 먼저 등록된 후에 끊임없이 생성되어 입력되는 스트림 데이터에 질의를 계속 적용하여 검색한다고 해서 연속 질의(continuous query)라 한다.
이때, 연속 질의의 경우에는 하나 이상의 센서에 의해 수집된 각 스트림 데이터에 대하여 하나 이상의(수십 혹은 수백 이상일 수도 있음) 연속적인 질의 과정 을 수행하므로, 그 데이터 처리량이 방대한 특징이 있다.
상기와 같은 연속 질의에서는 질의 대상을 한정하기 위해 윈도우란 개념을 사용한다. 즉, 끊임없이 생성되어 입력되는 모든 스트림 데이터에 대하여 한꺼번에 질의할 수 없으므로, 질의 대상이 되는 스트림 데이터를 논리적으로 한정한다. 이때, 일반적인 입력 데이터를 한정하는 방안으로는 시간과 이벤트 수(튜플 수)를 각각 이용하는 방안이 있다. 연속 질의에서 사용되는 윈도우에 대하여 도 1을 참조하여 살펴보면 다음과 같다.
도 1 은 스트림 데이터의 연속 질의 처리시 사용되는 윈도우 개념에 대한 일실시예 설명도이다.
도 1에 도시된 바와 같이, 연속 질의 처리시 사용되는 대표적인 윈도우로는 랜드마크(landmark) 윈도우와 슬라이딩(sliding) 윈도우가 있다.
"11"과 같이, 랜드마크 윈도우는 윈도우의 시작이 고정되어 있고 끝이 이동하는 윈도우로서, 이전 질의 평가에서 사용된 데이터가 모두 다음 차례의 질의 평가에 사용된다.
또한, "12"와 같이 슬라이딩 윈도우는 윈도우의 시작과 끝이 모두 이동하는 윈도우로서, 겹침이 있는 경우에는 겹치는 부분의 데이터가 다음 차례의 질의 평가에도 역시 입력 데이터로 사용된다. 예를 들면, "i+6"에서 "i+8" 구간에 입력된 데이터는 윈도우 w1, w2, w3, w4에 모두 포함되므로, 4 차례의 질의 평가에 입력 데이터로 사용된다.
한편, 윈도우 연산을 포함하는 연속 질의를 지원하기 위한 종래의 스트림 데 이터 처리 시스템에 대하여 도 2를 참조하여 설명하기로 한다.
도 2 는 종래 기술에 따른 스트림 데이터 처리 시스템의 일실시예 구성도이다.
도 2에 도시된 바와 같이, 종래 기술에 따른 스트림 데이터 처리 시스템은, 입력 버퍼(210), 상기 입력 버퍼(210)로부터 스트림 데이터를 읽어와 윈도우 평가를 수행하기 위한 윈도우 평가부(220), 스트림 데이터에 대한 질의 평가(질의 조건 평가)를 수행하기 위한 질의 조건 평가부(230), 상기 질의 평가 결과를 생성하기 위한 결과 구성부(240), 및 출력 버퍼(250)를 포함한다.
이때, 연속 질의를 처리하는 경우 윈도우 평가, 질의 평가(질의 조건 평가), 질의 평가 결과 생성의 전 과정이 계속해서 반복 수행된다. 또한, "i+6"에서 "i+8" 구간에 입력된 데이터는 상기 윈도우 평가 과정에서 w1, w2, w3, w4의 총 4 차례에 걸쳐 각 윈도우에 포함되어 평가되므로, 4 번의 질의 평가가 수행된다.
여기서, 선행 특허로서 미합중국 등록 특허 "연속 메모 방법(등록번호 US6. 553. 394, 등록일 2003.4.22)"을 살펴보면, 입력 파라미터와 처리 결과를 계속 축적(메모)하는 방식으로 이전 입출력 데이터를 이용하여 이후의 결과를 생성하는 기술로서, 수학적 함수(예 : 지수함수, 대수 함수, 가우스 함수)에 대한 계산에 용이하게 활용된다. 즉, 한 번 계산된 결과는 다음 차례의 계산에 반드시 사용되므로, 입력 데이터와 출력 데이터를 계속 축적한다.
그런데, 유비쿼터스 환경의 다양한 센서로부터 스트림 데이터를 전달받아 처리하기 위한 스트림 데이터 처리 시스템에 상기 선행 특허를 적용하기에는 한계가 있다. 즉, 유비쿼터스 환경의 각 센서에 의해 센싱되는 데이터는 대부분 서로 다르므로 데이터의 재사용 확률이 낮을 뿐만 아니라, 처리 대상 데이터의 방대함으로 메모리 자원 부족 현상이 발생하기 쉬운 스트림 데이터 처리 시스템에 데이터를 축적하는 방식으로 동작하는 상기 선행 특허를 적용하기에는 한계가 있다.
또한, 선행 논문으로서 "STREAM"[참고문헌 : A.Arasu, S.Babu, J.Widom. The CQL continuous Query Language : Semantic Foundation and Query Execution, Stanford Univ.Technical Report, 2003.10]은 다수의 연속 데이터 스트림과 저장소에 저장된 릴레이션들에 대해 연속 질의 처리하기 위한 범용의 스트림 처리 시스템에 대한 논문으로서, 상기 시스템은 슬라이딩 윈도우를 포함하는 윈도우를 평가하기 위해 각 입력 데이터를 버퍼링하고 이를 필요하지 않을 때까지 유지한다. 즉, 각 입력 튜플은 다수의 윈도우에 속하게 되는데 해당 튜플이 포함된 마지막 윈도우에 대한 평가가 수행될 때까지 저장 상태를 유지한다.
그런데, 이는 데이터에 대한 접근 및 처리가 수차례 수행되어야 함을 의미하는 것으로, 스트림 데이터 처리 시스템에 적용시에는 불필요한 자원 낭비가 발생하는 문제점이 있었다.
또한, 다른 선행 논문으로서 "Jin Li"의 방법[참고문헌 : Jin Li, David Maier dt al. Semantics and Evaluation Techniques for Window Aggregates in Data Streams, SIGMOD 2005, 2005.7]은 윈도우 정의에 대해 정리하고 데이터 스트림 환경에서 윈도우 집합 함수에 대한 평가 방법을 설명한다. 즉, 입력 데이터가 들어오면 어느 윈도우에 속하는지를 계산하도록 하고 이를 집합 연산 처리시 활용 하도록 한다. 여기서, 각 데이터에는 다수 윈도우에 포함됨을 표시할 수 있다.
그런데, 상기 선행 논문에 따른 종래 기술에서는 다수 윈도우를 위한 공간을 기 확보한 상태에서 일괄적으로 질의 평가를 수행하므로, 동작 수행시 불필요한 자원 낭비가 발생하는 문제점이 있었다. 또한, 상기 종래 기술은 윈도우 집합 함수만을 처리 대상으로 하므로, 윈도우 연산을 포함하는 연속 질의를 처리하기 위한 스트림 데이터 처리 시스템에 적용하기에는 한계가 있다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 유비쿼터스 환경에서 외부 센서로부터 수집되는 스트림 데이터의 연속 질의(continuous query) 처리시, 동일 데이터가 수차례에 걸쳐 질의 대상 범위(윈도우)에 포함되는 특성을 고려하여 이전의 질의 조건 평가 결과를 이용하여 중복으로 데이터의 질의 평가가 수행되지 않도록 방지함으로써, 전체 시스템의 성능을 향상시키고 자원 낭비를 줄이기 위한, 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 장치는, 스트림 데이터 처리 시스템에 있어서, 질의 조건 평가 결과를 갱신하면서 저장하기 위한 평가 결과 저장 수단; 스트림 데이터에 대한 윈도우 평가를 수행하여 다음 차례의 질의 조건 평가 대상이 되는 데이터를 선별하기 위한 윈도우 평가 수단; 상기 윈도우 평가 수단으로부터 전달받은 데이터를 이전의 질의 조건 평가 결과의 재사용 가능 여부에 따라 새로운 데이터와 중복 입력 데이터로 분리하기 위한 데이터 분리 수단; 상기 데이터 분리 수단으로부터 전달받은 중복 입력 데이터에 대한 질의 조건 평가 결과를 상기 평가 결과 저장 수단으로부터 추출하기 위한 재사용 결과 추출 수단; 상기 데이터 분리 수단으로부터 새로운 데이터를 전달받음에 따라 질의 조건 평가를 수행하여 질의 조건 평가 결과를 생성하기 위한 질의 조건 평가 수단; 및 상기 재사용 결과 추출 수단과 상기 질의 조건 평가 수단으로부터 각각 전달받은 질의 조건 평가 결과를 취합하여 출력하고 상기 평가 결과 저장 수단으로 전달하기 위한 결과 구성 수단을 포함한다.
한편, 상기 목적을 달성하기 위한 본 발명의 방법은, 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법에 있어서, 외부로부터 스트림 데이터를 입력받는 입력 단계; 상기 입력받은 스트림 데이터에 대한 윈도우 평가를 수행하여 다음 차례의 질의 조건 평가 대상이 되는 데이터를 선별하는 윈도우 평가 단계; 상기 윈도우 평가한 데이터를 이전의 질의 조건 평가 결과의 재사용 가능 여부에 따라 중복 입력 데이터와 새로운 데이터로 분리하는 데이터 분리 단계; 이전의 질의 조건 평가 결과로부터 상기 중복 입력 데이터에 대한 질의 조건 평가 결과를 추출하는 재사용 결과 추출 단계; 상기 새로운 데이터에 대한 질의 조건 평가를 수행하여 질의 조건 평가 결과를 생성하는 질의 조건 평가 단계; 상기 중복 입력 데이터와 상기 새로운 데이터에 대한 각각의 질의 조건 평가 결과를 취합하는 취합 단계; 및 상기 취합한 질의 조건 평가 결과를 이용하여 상기 이전의 질의 조건 평가 결과를 갱신하는 갱신 단계를 포함한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
이하의 상세한 설명에서는, 본 발명에 따른 스트림 데이터 처리 시스템에 입력되는 데이터가 XML 형태의 스트림 데이터인 경우를 일예로 들어 설명하기로 한다. 그리고, 본 발명에서 사용되는 XML 형태의 스트림 데이터와, 윈도우 바인딩에 관하여 먼저 설명한 후, 본 발명에 따른 스트림 데이터 처리 시스템의 구성 및 동작과정을 설명하기로 한다.
도 3 은 XML 형태의 입력 스트림 데이터의 일실시예 설명도이다.
도 3에 도시된 바와 같이, XML 형태의 스트림 데이터(310 내지 320)는 본 발명에 따른 스트림 데이터 처리 시스템의 입력 데이터로 사용된다. 이때, 상기 "310 내지 320"은 각각 하나의 데이터가 되어 입력된다.
또한, XML 형태의 스트림 데이터로부터 사용자 관심사항을 검색해 내기 위해, 본 발명에 따른 스트림 데이터 처리 시스템은 윈도우 정의가 가능해지도록 엑스쿼리(XQuery)를 확장한 질의 언어를 사용한다.
여기서, 본 발명에서 사용되는 질의 언어에 대하여 살펴보면, 각 질의는 윈도우 정의 부분과 검색 조건 부분을 포함한다. 이때, 상기 윈도우 정의 부분은 윈도우 시작/끝, 건너띄기(tumbling), 윈도우 데이터 한정 방안 등을 나타내는 값들을 포함한다. 예를 들어, 윈도우 시작 값이 "-1"이면 랜드마크 윈도우를 나타내고, 윈도우 데이터 한정 방안으로 "second"와 "event"는 각각 시간과 이벤트를 나타낸다. 그리고, 건너띄기의 경우 슬라이딩 윈도우에서는 슬라이딩시의 건너띄기를 의미하고, 랜드마크 윈도우에서는 윈도우의 크기가 증가하는 단위를 나타낸다. 또한, 상기 검색 조건 부분은 엑스쿼리(XQuery) 구문을 따른다.
한편, 질의 구문을 구체적인 예를 들어 살펴보면, "sensor1으로부터 입력되는 5개의 이벤트를 한정하고, 2개의 이벤트 단위로 슬라이딩하는 윈도우"를 본 발명에서 사용되는 질의 언어로 표현하면 "sensor1으로부터 입력되는 데이터에 대하여 윈도우 시작/끝 값이 각각 0/5이고 건너띄기는 2인 이벤트에 기반하여 데이터를 한정하는 윈도우"가 되는데, 이를 질의 구문으로 나타내면 "using "sensor1" as $s1 within(1 to 5, 2 event)"가 된다.
그리고, 윈도우를 한정하는 방안 중 이벤트가 아닌 시간을 이용하여 상기 질의 구문을 나타내면 "using "sensor1" as $s1 within(1 to 5, 2 second)"가 된다.
여기서, 외부로부터 입력되는 스트림 데이터에 대한 윈도우 평가 결과를 상기에서 예로 든 두 질의 구문을 이용하여 살펴보면 다음과 같다.
도 4 는 입력 스트림 데이터의 윈도우 바인딩에 대한 일실시예 설명도이다.
도 4에 도시된 바와 같이, "410"은 외부의 다양한 센서로부터 센싱된 상기 도 3의 데이터(310 내지 320)가 스트림의 형태로 입력되는 과정을 그 순서에 따라 나타내고 있다. 여기서, 가로축은 시간의 흐름을 나타내는 시간축이다. 그리고, "430"과 "450"은 상기 도 3에서 예를 들어 설명한 질의 구문으로서, 윈도우 데이터 한정 방안 중 이벤트와 시간을 사용한 경우를 각각 나타내고 있다(이벤트 기반 질의 구문과 시간 기반 질의 구문을 각각 나타내고 있다).
또한, 질의가 "410"의 "t" 시점에서 시작되고 센서로부터 센싱된 데이터가 "310, 311, 312, ..., 319, 320"과 같이 순서대로 입력되는 경우, 이벤트 기반 질의 구문(430)을 처리(즉, 질의 조건 평가)하기 위한 윈도우 평가 결과는 "431, 432, 433, 434"와 같고, 시간 기반 질의 구문(450)을 처리하기 위한 윈도우 평가 결과는 "451, 452, 453, 454, 455, 456, 457"과 같다.
즉, 이벤트에 기반한 윈도우인 "431"은 "310, 311, 312, 313, 314"가 윈도우 평가 결과가 되고, "432"는 "312, 313, 314, 315, 316"이 윈도우 평가 결과가 되며, "433"은 "314, 315, 316, 317, 318"이 윈도우 평가 결과가 되고, "434"는 "316, 317, 318, 319, 320"이 윈도우 평가 결과가 된다.
그리고, 시간에 기반한 윈도우인 "451"는 "310, 311, 312", "452"는 "311, 312, 313", "453"은 "312, 313, 314", "454"는 "313, 314, 315", "455"는 "314, 315, 316, 317", "456"은 "316, 317, 318", "457"은 "317, 318, 319, 320"이 각각 해당 윈도우 평가 결과가 된다.
이때, 상기 이벤트/시간에 기반한 각 윈도우는 서로 중복되는 데이터를 윈도우 평가 결과로서 동시에 포함하게 된다.
도 5 는 본 발명에 따른 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템의 일실시예 구성도이다.
도 5에 도시된 바와 같이, 본 발명에 따른 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템은, 외부의 다양한 센서로부터 센싱된 데이터를 스트림 형태로 입력받기 위한 입력 버퍼(510), 상기 입력 버퍼(510)로부터 스트림 데이터를 읽어와 윈도우 평가를 수행하여 다음 차례의 질의 조건 평가 대상이 되는 데이터를 선별하기 위한 윈도우 평가부(520), 이전의 질의 조건 평가 결과로 대체할 수 있는지의 여부에 따라 상기 윈도우 평가부(520)에 의해 선별된 데이터(질의 조건 평가 대상이 되는 데이터)를 분리하여 대체 불가능한 데이터를 질의 조건 평가부(550)로 전달하고 대체 가능한 데이터(중복 입력 데이터)를 재사용 결과 추출부(540)로 전달하기 위한 데이터 분리부(530), 상기 데이터 분리부(530)로부터 전달받은 데이터에 대하여 질의 조건 평가를 수행한 후 질의 조건 평가 결과를 생성하기 위한 질의 조건 평가부(550), 상기 데이터 분리부(530)로부터 중복 입력 데이터를 전달받음에 따라 이전의 윈도우 평가 결과에 대한 질의 조건 평가 결과를 평가 결과 저장부(580)의 이전 질의 조건 평가 결과로부터 추출하기 위한 재사용 결과 추출부(540), 상기 질의 조건 평가부(550)로부터 전달받은 새로운 질의 조건 평 가 결과와, 상기 재사용 결과 추출부(540)로부터 전달받은 중복 입력 데이터에 대한 질의 조건 평가 결과를 취합(merging)하여 출력 버퍼(570)로 출력하고 평가 결과 저장부(580)에 저장된 이전 질의 조건 평가 결과를 갱신하기 위한 결과 구성부(560), 상기 결과 구성부(560)로부터의 질의 조건 평가 결과를, 출력을 위해 임시 저장하기 위한 출력 버퍼(570), 및 상기 결과 구성부(560)로부터의 질의 조건 평가 결과를 저장하기 위한 평가 결과 저장부(580)를 포함한다.
이때, 본 발명에 따른 스트림 데이터 처리 시스템은 스트림 데이터에 대한 연속 질의 처리를 수행하므로 윈도우 평가, 질의 조건 평가, 및 결과 구성의 전 과정을 반복적으로 수행한다. 상기 데이터 분리부(530) 및 결과 구성부(560)의 상세한 동작에 대해서는 도 8 및 도 9를 참조하여 각각 후술하기로 한다.
도 6 은 본 발명에 따른 스트림 데이터 처리 시스템에서 질의 조건 평가 결과의 계층적 구조에 대한 일실시예 설명도이다.
도 6에 도시된 바와 같이, 본 발명에 따른 스트림 데이터 처리 시스템은 연속적으로 생성되는 질의 조건 평가 결과를 차후의 재사용을 용이하게 하기 위해 계층적 구조로 저장한다. 즉, "윈도우(610)-문서(620)-노드(630)"의 구조로 질의 조건 평가 결과를 저장한다. 이때, 각 생성되는 질의 조건 평가 결과를 모두 축적하는 것이 아니라, 새로운 질의 조건 평가 결과를 이용하여 이전에 기 저장된 이전 평가 결과를 갱신(대체)하는 방식으로 저장한다.
"윈도우(610)-문서(620)-노드(630)"의 계층적 저장 구조에 대하여 상세히 살펴보면, 윈도우(610, 615) 레벨은 윈도우 전체에 대한 질의 조건 평가 결과를 나타 내고 이를 위해 다수의 문서 레벨의 질의 조건 평가 결과를 지정하도록 한다.
그리고, 문서 레벨(620, 625)은 하나의 입력 데이터에 대한 질의 조건 평가 결과를 나타내는데 하나의 입력 데이터로부터 질의 조건 평가 결과가 여러 개 나올 수 있으므로, 다수의 노드 레벨의 질의 조건 평가 결과를 지정하도록 한다. 여기서, 문서 레벨(620, 625)은 집합 함수 연산의 효율성을 위해 총 결과 수와 문서 레벨에 속하는 집합 함수 수행 결과를 함께 저장한다.
그리고, 노드 레벨(630, 635)은 하나의 입력 데이터로부터 도출될 수 있는 여러 개의 질의 조건 평가 결과 중, 하나의 결과를 나타낸다. 여기서, 노드 레벨(630, 635)은 XML 노드뿐만 아니라 상수도 저장한다.
상기에서 설명한 질의 조건 평가 결과의 계층적 저장 구조에 대하여 구체적인 예를 들어 살펴보기로 한다.
도 7 은 본 발명에 따른 스트림 데이터 처리 시스템에서 질의 조건 평가 결과의 저장에 대한 일실시예 설명도이다.
도 7에 도시된 바와 같이, 본 발명에 따른 스트림 데이터 처리 시스템이 도 4의 "450"과 같은 질의 구문(윈도우 정의)을 이용하여 스트림 데이터를 처리한다고 가정하면, 윈도우 평가 결과(720)로서 XML 문서 "310, 311, 312"가 질의 조건 평가 과정(730)의 입력 데이터로 전달된다.
이때, 질의가 "740"과 같이 윈도우 평가 결과에 대해 책의 제목을 획득하는 것이라면, 상기 질의 조건 평가 과정(730)이 수행된 결과로서 윈도우 레벨의 질의 조건 평가 결과인 window1'(741)이 생성된다. 여기서, 상기 window1'(741)은 문서 레벨의 질의 조건 평가 결과, 즉 입력 데이터 "310, 311, 312"의 각각에 대한 질의 조건 평가 결과인 "Doc310', Doc311', Doc312'"(742)를 포함한다. 또한, 상기 "Doc310', Doc311', Doc312'"(742)들은 노드 레벨의 질의 조건 평가 결과, 즉 실제 입력 XML 문서를 구성하는 노드 중에서 질의 조건을 만족하는 부분(743)을 각각 포함한다.
다른 예로, 질의가 "750"과 같이 집합 함수를 위한 것일 경우 문서 레벨의 저장 구조에 하나의 입력 데이터(XML 문서)에 대한 집합 함수 결과 값과, 집합 함수인자를 만족하는 노드 수(상기 결과 값에 관련된 정보)가 함께 저장된다(752).
도 8 은 본 발명에 따른 스트림 데이터 처리 시스템에서 데이터 중복 처리를 방지하기 위한 데이터 분리 과정에 대한 일실시예 흐름도이다.
여기서는, 도 5의 데이터 분리부(530)에서 수행되는 데이터 분리 과정을 상세히 설명하기로 한다.
먼저, 데이터 분리부(530)는 윈도우 평가부(520)에 의해 산출된 윈도우 정의와 윈도우 평가 결과를 입력받는다(810). 이때, 윈도우 정의는 윈도우 시작/끝, 건너띄기, 윈도우 데이터 한정 방안을 포함한다.
이후, 데이터 분리부(530)는 중복 입력 데이터와 새로운 데이터를 분리 저장하기 위한 각 변수를 초기화하고(820), 이전 질의 조건 평가 결과가 기 저장되어 있는지의 여부를 판단한다(830).
상기 이전 질의 조건 평가 결과 저장 여부 판단 결과(830), 기 저장된 이전 질의 조건 평가 결과가 없을 경우 상기 데이터 분리부(530)로부터 전달받은 데이터 를 모두 새로운 데이터로 간주한다(840). 즉, 상기 전달받은 데이터 전체(윈도우 평가 결과에 포함된 모든 데이터)를 질의 조건 평가부(550)로 전달한다.
한편, 상기 이전 질의 조건 평가 결과 저장 여부 판단 결과(830), 기 저장된 이전 질의 조건 평가 결과가 있을 경우 상기 데이터 분리부(530)로부터 전달받은 윈도우 정의 중, 윈도우 데이터 한정 방안이 이벤트인지 혹은 시간인지의 여부를 판단한다(850).
상기 윈도우 데이터 한정 방안 판단 결과(850), 이벤트 기반 윈도우일 경우에는 윈도우 끝으로부터 건너띄기 만큼의 데이터를 새로운 데이터로 간주하고, 나머지는 중복 입력 데이터로 간주한다(860).
반면에, 상기 윈도우 데이터 한정 방안 판단 결과(850), 시간 기반 윈도우일 경우에는 윈도우 끝 시각으로부터 건너띄기를 한 지점의 시각을 빼 경계 시각을 구한 후(870) 상기 경계 시각 전에 전달받은 데이터는 중복 입력 데이터로 간주하고, 상기 경계 시각 이후에 전달받은 데이터는 새로운 데이터로 간주한다(880).
상기에서 분리된 중복 입력 데이터와 새로운 데이터는 각각 재사용 결과 추출부(540)와 질의 조건 평가부(550)로 전달된다.
한편, 중복 입력 데이터를 전달받은 재사용 결과 추출부(540)의 세부 동작을 연이어 살펴보면, 재사용 결과 추출부(540)는 중복 입력 데이터 수 정보를 이용하여 재사용을 위한 질의 조건 평가 결과를 추출한다.
즉, 기 저장된 이전 질의 조건 평가 결과 중 중복 입력 데이터에 대한 질의 조건 평가 결과(재사용할 수 있는 질의 조건 평가 결과)는 문서 레벨의 질의 조건 평가 결과 리스트의 마지막 항목부터 계수하여 중복된 윈도우 평가 결과의 문서 수까지의 항목이 된다. 예를 들면, 기 저장된 이전 질의 조건 평가 결과에 문서 레벨의 질의 조건 평가 결과로 doc0, doc1, doc2, doc3, doc4가 순서대로 저장되어 있고 중복 입력 데이터의 수가 3일 경우, doc2, doc3, doc4의 묶음이 이번 질의 조건 평가에서 재사용될 수 있는 이전의 질의 조건 평가 결과가 된다.
도 9 는 본 발명에 따른 스트림 데이터 처리 시스템에서 이전 질의 조건 평가 결과 및 현 처리 결과의 취합 과정에 대한 일실시예 흐름도이다.
여기서는, 도 5의 결과 구성부(560)에서 수행되는 동작 과정을 상세히 설명하기로 한다.
먼저, 결과 구성부(560)는 재사용 결과 추출부(540)와 질의 조건 평가부(550)로부터 중복 입력 데이터/새로운 데이터에 대한 각각의 질의 조건 평가 결과를 전달받는다(910).
그에 따라, 결과 구성부(560)는 상기 전달받은 중복 입력 데이터에 대한 질의 조건 평가 결과 및 새로운 데이터에 대한 질의 조건 평가 결과를 상기 순서에 따라 취합(merging)한다(920). 즉, 상기 전달받은 중복 입력 데이터에 대한 질의 조건 평가 결과와 새로운 데이터에 대한 질의 조건 평가 결과를 이 순서대로 취합하여 그에 따른 취합 결과를 생성한다.
이후, 결과 구성부(560)는 상기 취합된 질의 조건 평가 결과에 사용된 질의가 집합 함수 관련 질의인지의 여부를 판단한다(930).
상기 집합 함수 포함 여부 판단 결과(930), 집합 함수 관련 질의일 경우 상 기 취합된 질의 조건 평가 결과에 집합 함수를 적용하여 최종 결과를 산출한다(940). 이때, 문서 레벨의 저장 구조에 있는 집합 함수를 위한 필드인 결과 수(count)와 결과 값(agg_value)을 이용하여 상기 최종 결과를 산출한다.
즉, 집합 함수가 "sum/count"이면 문서 레벨의 결과 값을 더하여 최종 결과로 한다. 반면에, 집합 함수가 "min/max"이면 문서 레벨의 결과 값 중 가장 작은/큰 값을 최종 결과로 한다. 또한, 집합 함수가 "avg"이면 문서 레벨의 결과 값을 더한 후 이를 총 결과 수로 나눈 값을 최종 결과로 한다.
한편, 상기 집합 함수 포함 여부 판단 결과(930), 집합 함수 관련 질의가 아닐 경우 정렬 필요 여부에 따라 상기 취합된 질의 조건 평가 결과를 정렬항의 값을 이용하여 정렬한 후 최종 결과를 산출한다(960).
그리고, 상기 산출한 최종 결과 및 취합 결과를 출력한다(950). 즉, 평가 결과 저장부(580)와 출력 버퍼(570)로 각각 전달한다.
도 10 은 본 발명에 따른 스트림 데이터 처리 시스템에서 질의 조건 평가 결과의 재사용에 대한 일실시예 설명도이다.
여기서는, 본 발명에 따른 스트림 데이터 처리 시스템에서 이전 질의 조건 평가 결과로부터 중복 입력 데이터에 대한 질의 조건 평가 결과를 추출하여 재사용하는 경우를 상세히 살펴보기로 한다.
질의가 도 7의 "750"이고 이전 질의 조건 평가 결과가 각 레벨(윈도우/문서/노드 레벨)별로 "751, 752, 753"일 경우, 다음 차례의 윈도우 평가 결과(1020)에 따라 문서 "311, 312, 313"이 질의 평가 대상으로 선별되었으므로 윈도우 정의(윈 도우 시작/끝, 건너띄기, 윈도우 데이터 한정 방안)를 이용하여 "311, 312"는 이전 질의 조건 평가 결과가 있는 데이터이고 "313"은 새로운 데이터임을 알아내 이들을 분리한다.
그리고, 윈도우 평가 결과(1020)에서 중복되지 않은 데이터로 선별된 문서 "313"에 대해서는 질의 조건 평가를 수행(1060)하고, 중복 입력 데이터로 선별된 문서 "311, 312"에 대해서는 이전 질의 조건 평가 결과인 도 7의 "751, 752, 753"을 이용하여 상기 문서 "311, 312"의 질의 조건 평가 결과를 추출(1050)하여 상기 두 질의 조건 평가 결과를 취합한다.
이때, 해당 질의가 집합 함수 중 "sum"과 관련된 질의이므로, 상기 취합된 질의 조건 평가 결과의 문서 레벨에서 조건을 만족하는 sum 값인 29000, 36000, 42000을 더한 값을 최종 결과로 출력한다.
즉, 상기와 같이 중복 입력 데이터인 문서 "311, 312"에 대해서는 질의 조건 평가 과정을 재수행하는 것이 아니라 이전에 저장된 데이터를 이용한다.
도 11 은 본 발명에 따른 스트림 데이터 처리 시스템에서 데이터 중복 처리 방지 방법에 대한 일실시예 흐름도이다.
먼저, 윈도우 평가부(520)가 외부로부터 수집된 스트림 데이터에 대하여 윈도우 평가를 수행하면(110), 데이터 분리부(530)가 상기 윈도우 평가 결과를 이용하여 상기 스트림 데이터를 분리하여 중복 입력 데이터를 재사용 결과 추출부(540)로 전달하고 새로운 데이터를 질의 조건 평가부(550)로 전달한다(120).
이후, 재사용 결과 추출부(540)가 이전 질의 조건 평가 결과로부터 상기 중 복 입력 데이터에 대한 질의 조건 평가 결과(윈도우/문서/노드 레벨별 질의 조건 평가 결과)를 추출하여 결과 구성부(560)로 전달한다(130). 또한, 질의 조건 평가부(550)가 상기 새로운 데이터에 대하여 질의 조건 평가를 수행하여 그 결과를 상기 결과 구성부(560)로 전달한다(140). 상기 추출 및 질의 조건 평가 과정은 그 순서가 바뀔 수도 있다.
이후, 결과 구성부(560)는 재사용 결과 추출부(540) 및 질의 조건 평가부(550)로부터 각각 전달받은 데이터를 취합하여 출력한다(160). 이때, 최종적으로 취합된 질의 조건 평가 결과를 평가 결과 저장부(580)로 저장한다(이전 질의 조건 평가 결과가 갱신된다).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 윈도우 연산을 포함하는 연속 질의 처리시 기 저장된 이전의 질의 조건 평가 결과를 이용하여 이미 평가된 데이터가 중복 처리되지 않도록 함으로써, 시스템의 성능을 향상시키고 불필요한 자원 낭비를 줄일 수 있는 효과가 있다.
Claims (20)
- 스트림 데이터 처리 시스템에 있어서,질의 조건 평가 결과를 갱신하면서 저장하기 위한 평가 결과 저장 수단;스트림 데이터에 대한 윈도우 평가를 수행하여 다음 차례의 질의 조건 평가 대상이 되는 데이터를 선별하기 위한 윈도우 평가 수단;상기 윈도우 평가 수단으로부터 전달받은 데이터를 이전의 질의 조건 평가 결과의 재사용 가능 여부에 따라 새로운 데이터와 중복 입력 데이터로 분리하기 위한 데이터 분리 수단;상기 데이터 분리 수단으로부터 전달받은 중복 입력 데이터에 대한 질의 조건 평가 결과를 상기 평가 결과 저장 수단으로부터 추출하기 위한 재사용 결과 추출 수단;상기 데이터 분리 수단으로부터 새로운 데이터를 전달받음에 따라 질의 조건 평가를 수행하여 질의 조건 평가 결과를 생성하기 위한 질의 조건 평가 수단; 및상기 재사용 결과 추출 수단과 상기 질의 조건 평가 수단으로부터 각각 전달받은 질의 조건 평가 결과를 취합하여 출력하고 상기 평가 결과 저장 수단으로 전달하기 위한 결과 구성 수단을 포함하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 1 항에 있어서,상기 질의 조건 평가 수단은,상기 데이터 분리 수단으로부터 전달받은 새로운 데이터에 대하여 연속 질의(continuous query)를 수행하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 2 항에 있어서,상기 윈도우 평가 수단은,스트림 데이터에 대한 윈도우 평가를 수행한 결과, 윈도우 정의 및 윈도우 평가 결과를 상기 데이터 분리 수단으로 전달하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 3 항에 있어서,상기 데이터 분리 수단은,이전의 질의 조건 평가 결과의 재사용 가능 여부에 따라 데이터를 분리하되, 윈도우 정의를 이용하여 윈도우 평가 결과에 포함된 데이터를 중복 입력 데이터와 새로운 데이터로 분리하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 4 항에 있어서,상기 데이터 분리 수단은,기 저장된 이전의 질의 조건 평가 결과가 없음을 확인함에 따라 윈도우 평가 결과에 포함된 데이터 전체를 새로운 데이터로 간주하여 상기 질의 조건 평가 수단으로 전달하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 4 항에 있어서,상기 데이터 분리 수단은,윈도우 시작, 윈도우 끝, 건너띄기, 윈도우 데이터 한정 방안을 포함하는 윈도우 정의를 상기 윈도우 평가 수단으로부터 전달받는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 6 항에 있어서,상기 데이터 분리 수단은,기 저장된 이전의 질의 조건 평가 결과가 있고 윈도우 데이터 한정 방안이 이벤트임을 확인함에 따라, 윈도우 끝으로부터 건너띄기 만큼의 데이터를 새로운 데이터로 간주하여 상기 질의 조건 평가 수단으로 전달하고 나머지 데이터를 중복 입력 데이터로 간주하여 상기 재사용 결과 추출 수단으로 전달하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 6 항에 있어서,상기 데이터 분리 수단은,기 저장된 이전의 질의 조건 평가 결과가 있고 윈도우 데이터 한정 방안이 시간임을 확인함에 따라, 윈도우 끝 시각으로부터 건너띄기 값을 빼 경계시각을 구하고 경계시각 전/후로 전달받은 데이터를 각각 중복 입력 데이터와 새로운 데이터로 간주하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,상기 결과 구성 수단은,질의가 집합 함수 관련 질의임에 따라 해당 집합 함수를 상기 취합한 질의 조건 평가 결과에 적용시켜 최종 결과를 산출하여 상기 취합한 질의 조건 평가 결과와 함께 출력하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 9 항에 있어서,상기 질의 조건 평가 수단은,상기 새로운 데이터에 대한 질의 조건 평가를 수행하여 질의 평가 결과를 윈도우, 문서, 노드 레벨로 나누어서 계층적으로 저장하는 것을 특징으로 하는 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리 시스템.
- 제 10 항에 있어서,상기 윈도우 평가 수단은,XML 형태의 스트림 데이터에 대한 윈도우 평가를 수행하는 것을 특징으로 하는 데이터 중복 처리 기능을 가지는 스트림 데이터 처리 시스템.
- 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법에 있어서,외부로부터 스트림 데이터를 입력받는 입력 단계;상기 입력받은 스트림 데이터에 대한 윈도우 평가를 수행하여 다음 차례의 질의 조건 평가 대상이 되는 데이터를 선별하는 윈도우 평가 단계;상기 윈도우 평가한 데이터를 이전의 질의 조건 평가 결과의 재사용 가능 여부에 따라 중복 입력 데이터와 새로운 데이터로 분리하는 데이터 분리 단계;이전의 질의 조건 평가 결과로부터 상기 중복 입력 데이터에 대한 질의 조건 평가 결과를 추출하는 재사용 결과 추출 단계;상기 새로운 데이터에 대한 질의 조건 평가를 수행하여 질의 조건 평가 결과를 생성하는 질의 조건 평가 단계;상기 중복 입력 데이터와 상기 새로운 데이터에 대한 각각의 질의 조건 평가 결과를 취합하는 취합 단계; 및상기 취합한 질의 조건 평가 결과를 이용하여 상기 이전의 질의 조건 평가 결과를 갱신하는 갱신 단계를 포함하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 12 항에 있어서,상기 윈도우 평가 단계는,상기 입력되는 스트림 데이터에 대한 윈도우 평가를 수행하여 윈도우 정의 및 윈도우 평가 결과를 산출하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 13 항에 있어서,상기 데이터 분리 단계는,이전의 질의 조건 평가 결과의 재사용 가능 여부에 따라 데이터를 분리하되, 상기 윈도우 정의를 이용하여 상기 윈도우 평가 결과에 포함된 데이터를 중복 입력 데이터와 새로운 데이터로 분리하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 14 항에 있어서,상기 데이터 분리 단계는,기 저장된 이전의 질의 조건 평가 결과가 없음을 확인함에 따라 상기 윈도우 평가 결과에 포함된 데이터 전체를 새로운 데이터로 간주하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 14 항에 있어서,상기 윈도우 평가 단계는,윈도우 시작, 윈도우 끝, 건너띄기, 윈도우 데이터 한정 방안을 포함하는 윈도우 정의를 산출하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 16 항에 있어서,상기 데이터 분리 단계는,기 저장된 이전의 질의 조건 평가 결과가 있고 상기 윈도우 데이터 한정 방안이 이벤트임을 확인함에 따라, 윈도우 끝으로부터 건너띄기 만큼의 데이터를 새로운 데이터로 간주하고 나머지 데이터를 중복 입력 데이터로 간주하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 16 항에 있어서,상기 데이터 분리 단계는,기 저장된 이전의 질의 조건 평가 결과가 있고 상기 윈도우 데이터 한정 방안이 시간임을 확인함에 따라, 윈도우 끝 시각으로부터 건너띄기 값을 빼 경계시각을 구하고 상기 경계시각 전/후로 전달받은 데이터를 각각 중복 입력 데이터와 새로운 데이터로 간주하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 12 항 내지 제 18 항 중 어느 한 항에 있어서,상기 취합 단계는,질의가 집합 함수 관련 질의임에 따라 해당 집합 함수를 상기 취합한 질의 조건 평가 결과에 적용시켜 최종 결과를 산출하는 과정을 더 포함하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
- 제 19 항에 있어서,상기 질의 조건 평가 단계는,상기 새로운 데이터에 대한 질의 조건 평가를 수행하여 질의 평가 결과를 윈도우, 문서, 노드 레벨로 나누어서 계층적으로 저장하는 것을 특징으로 하는 스트림 데이터 처리 시스템에서의 데이터 중복 처리 방지 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060016335A KR100813000B1 (ko) | 2005-12-01 | 2006-02-20 | 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리시스템 및 그 방법 |
US11/607,279 US7490078B2 (en) | 2005-12-01 | 2006-11-29 | Stream data processing system and method for avoiding duplication of data process |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050116098 | 2005-12-01 | ||
KR20050116098 | 2005-12-01 | ||
KR1020060016335A KR100813000B1 (ko) | 2005-12-01 | 2006-02-20 | 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리시스템 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070057599A KR20070057599A (ko) | 2007-06-07 |
KR100813000B1 true KR100813000B1 (ko) | 2008-03-13 |
Family
ID=38140651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060016335A KR100813000B1 (ko) | 2005-12-01 | 2006-02-20 | 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7490078B2 (ko) |
KR (1) | KR100813000B1 (ko) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100828404B1 (ko) * | 2006-05-08 | 2008-05-08 | 한국과학기술원 | 경계관찰질의를 이용한 데이터 스트림 처리 방법 |
US8103655B2 (en) * | 2007-10-30 | 2012-01-24 | Oracle International Corporation | Specifying a family of logics defining windows in data stream management systems |
US8019747B2 (en) * | 2007-10-30 | 2011-09-13 | Oracle International Corporation | Facilitating flexible windows in data stream management systems |
US8315990B2 (en) * | 2007-11-08 | 2012-11-20 | Microsoft Corporation | Consistency sensitive streaming operators |
US7979412B2 (en) * | 2007-12-26 | 2011-07-12 | International Business Machines Corporation | Object query over previous query results |
US8352540B2 (en) | 2008-03-06 | 2013-01-08 | International Business Machines Corporation | Distinguishing data streams to enhance data storage efficiency |
US8676841B2 (en) | 2008-08-29 | 2014-03-18 | Oracle International Corporation | Detection of recurring non-occurrences of events using pattern matching |
US20100088325A1 (en) | 2008-10-07 | 2010-04-08 | Microsoft Corporation | Streaming Queries |
US8352517B2 (en) * | 2009-03-02 | 2013-01-08 | Oracle International Corporation | Infrastructure for spilling pages to a persistent store |
US8145859B2 (en) | 2009-03-02 | 2012-03-27 | Oracle International Corporation | Method and system for spilling from a queue to a persistent store |
KR101014492B1 (ko) * | 2009-03-26 | 2011-02-14 | 박재홍 | 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리기 및 방법 |
US8321450B2 (en) | 2009-07-21 | 2012-11-27 | Oracle International Corporation | Standardized database connectivity support for an event processing server in an embedded context |
US8387076B2 (en) | 2009-07-21 | 2013-02-26 | Oracle International Corporation | Standardized database connectivity support for an event processing server |
US8527458B2 (en) | 2009-08-03 | 2013-09-03 | Oracle International Corporation | Logging framework for a data stream processing server |
US8386466B2 (en) | 2009-08-03 | 2013-02-26 | Oracle International Corporation | Log visualization tool for a data stream processing server |
US8132184B2 (en) | 2009-10-21 | 2012-03-06 | Microsoft Corporation | Complex event processing (CEP) adapters for CEP systems for receiving objects from a source and outputing objects to a sink |
US9158816B2 (en) | 2009-10-21 | 2015-10-13 | Microsoft Technology Licensing, Llc | Event processing with XML query based on reusable XML query template |
US8413169B2 (en) * | 2009-10-21 | 2013-04-02 | Microsoft Corporation | Time-based event processing using punctuation events |
US8195648B2 (en) * | 2009-10-21 | 2012-06-05 | Microsoft Corporation | Partitioned query execution in event processing systems |
US8959106B2 (en) | 2009-12-28 | 2015-02-17 | Oracle International Corporation | Class loading using java data cartridges |
US9305057B2 (en) | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
US9659063B2 (en) * | 2010-12-17 | 2017-05-23 | Software Ag | Systems and/or methods for event stream deviation detection |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
KR101951747B1 (ko) | 2012-01-18 | 2019-02-26 | 삼성전자 주식회사 | Dsms에서 사용자 정의 연산자의 스케쥴링 장치 및 방법 |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US9953059B2 (en) * | 2012-09-28 | 2018-04-24 | Oracle International Corporation | Generation of archiver queries for continuous queries over archived relations |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9098587B2 (en) | 2013-01-15 | 2015-08-04 | Oracle International Corporation | Variable duration non-event pattern matching |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9305031B2 (en) | 2013-04-17 | 2016-04-05 | International Business Machines Corporation | Exiting windowing early for stream computing |
US9817911B2 (en) * | 2013-05-10 | 2017-11-14 | Excalibur Ip, Llc | Method and system for displaying content relating to a subject matter of a displayed media program |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
JP6114473B2 (ja) * | 2013-06-21 | 2017-04-12 | 株式会社日立製作所 | 時間調整を使用したストリームデータ処理方法 |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US9244978B2 (en) | 2014-06-11 | 2016-01-26 | Oracle International Corporation | Custom partitioning of a data stream |
CN105335376B (zh) * | 2014-06-23 | 2018-12-07 | 华为技术有限公司 | 一种流处理方法、装置及系统 |
US9712645B2 (en) | 2014-06-26 | 2017-07-18 | Oracle International Corporation | Embedded event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
US9792259B2 (en) | 2015-12-17 | 2017-10-17 | Software Ag | Systems and/or methods for interactive exploration of dependencies in streaming data |
US10340945B2 (en) * | 2017-07-24 | 2019-07-02 | iDensify LLC | Memory compression method and apparatus |
US11494373B2 (en) | 2021-02-09 | 2022-11-08 | Oracle International Corporation | Nested query modification tool |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060067126A (ko) * | 2004-12-14 | 2006-06-19 | 한국전자통신연구원 | 연속되어 입력되는 xml 문서 스트림을 주기적으로서비스 호출로 연계하는 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181438B1 (en) * | 1999-07-21 | 2007-02-20 | Alberti Anemometer, Llc | Database access system |
US6553394B1 (en) | 2000-01-21 | 2003-04-22 | Mitsubishi Electric Research Laboratories, Inc. | Continuous memoization |
US7113979B1 (en) * | 2000-07-11 | 2006-09-26 | Xerox Corporation | System, method and article of manufacture for enhancing electronic messages |
US8868544B2 (en) * | 2002-04-26 | 2014-10-21 | Oracle International Corporation | Using relational structures to create and support a cube within a relational database system |
US7293024B2 (en) * | 2002-11-14 | 2007-11-06 | Seisint, Inc. | Method for sorting and distributing data among a plurality of nodes |
-
2006
- 2006-02-20 KR KR1020060016335A patent/KR100813000B1/ko active IP Right Grant
- 2006-11-29 US US11/607,279 patent/US7490078B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060067126A (ko) * | 2004-12-14 | 2006-06-19 | 한국전자통신연구원 | 연속되어 입력되는 xml 문서 스트림을 주기적으로서비스 호출로 연계하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
US7490078B2 (en) | 2009-02-10 |
KR20070057599A (ko) | 2007-06-07 |
US20070136239A1 (en) | 2007-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100813000B1 (ko) | 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리시스템 및 그 방법 | |
CN111400408B (zh) | 数据同步方法、装置、设备及存储介质 | |
JP4997856B2 (ja) | データベース分析プログラム、データベース分析装置、データベース分析方法 | |
KR101545215B1 (ko) | 데이터 센터 장애 이벤트 관리 자동화 시스템 및 방법 | |
EP2289007B1 (en) | Search results ranking using editing distance and document information | |
US8630972B2 (en) | Providing context for web articles | |
US20060288275A1 (en) | Method for classifying sub-trees in semi-structured documents | |
JP5043116B2 (ja) | 迷惑情報をフィルタリングするネットワークベースの方法および装置 | |
JP4740060B2 (ja) | 重複データ検出プログラム、重複データ検出方法および重複データ検出装置 | |
US20070233720A1 (en) | Lazy bulk insertion method for moving object indexing | |
CN107147639A (zh) | 一种基于复杂事件处理的实时安全预警方法 | |
US20040167864A1 (en) | Indexing profile for efficient and scalable XML based publish and subscribe system | |
JP5125662B2 (ja) | クエリ変換方法および検索装置 | |
JPWO2010097945A1 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
Rahman et al. | Text classification using the concept of association rule of data mining | |
JP4977420B2 (ja) | 検索インデックス作成装置 | |
CN103324641B (zh) | 信息记录推荐方法和装置 | |
CN110413307B (zh) | 代码功能的关联方法、装置及电子设备 | |
KR101631032B1 (ko) | 비정형 데이터 필터링 및 공통형태 변환을 통한 저장 시스템 및 방법 | |
JP4087769B2 (ja) | サーバ、及び関連語提案方法 | |
WO2010119794A1 (en) | Information processing apparatus and information processing method | |
EP4002152A1 (en) | Data tagging and synchronisation system | |
JPH10143418A (ja) | 文書情報更新監視装置および文書情報の更新監視方法 | |
JP2010272006A (ja) | 関係抽出装置、関係抽出方法、及びプログラム | |
JP2022185696A (ja) | ログ管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110228 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20111208 Year of fee payment: 20 |