KR101959562B1 - 데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법 - Google Patents
데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법 Download PDFInfo
- Publication number
- KR101959562B1 KR101959562B1 KR1020120072374A KR20120072374A KR101959562B1 KR 101959562 B1 KR101959562 B1 KR 101959562B1 KR 1020120072374 A KR1020120072374 A KR 1020120072374A KR 20120072374 A KR20120072374 A KR 20120072374A KR 101959562 B1 KR101959562 B1 KR 101959562B1
- Authority
- KR
- South Korea
- Prior art keywords
- aggregation
- query
- data structure
- continuous
- aggregate
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터 스트림에서 다중 연속 집계 질의를 효율적으로 처리하는 장치에 관한 것으로, 일 실시예에 따르면, 장치는 다중 연속 집계 질의에 대한 공통 윈도우를 생성하고, 그 공통 윈도우의 제1집계 영역별 집계 연산 결과를 자료 구조에 저장하는 제1연산결과공유부와, 공통 윈도우에서 제1집계 영역을 하나 이상 포함하는 제2집계 영역을 결정하고, 제2집계 영역별 집계 연산 결과를 자료 구조에 저장하는 제2연산결과공유부 및 그 자료 구조에 저장된 집계 연산 결과를 공유하여 다중 연속 집계 질의를 수행하는 질의처리부를 포함할 수 있다.
Description
데이터 스트림에서 다중 연속 집계 질의를 효율적으로 처리하는 장치 및 방법에 관한 것이다.
최근 데이터가 끊임없이 빠른 속도로 생성되는 데이터 스트림에 대한 관심이 증가하고 있다. 데이터 스트림 처리 기술의 응용 분야는 생산 설비 관리, 네트워크 모니터링, 증권 거래 시스템, 교통 정보 시스템, 클라우드 컴퓨팅, 헬스케어 분야 등 매우 다양하며, IT 시스템의 범용화와 유비쿼터스 컴퓨팅 환경의 확산으로 인해 데이터량이 폭발적으로 증가하면서, 이러한 스트리밍 데이터에 대한 효율적인 처리 기술에 대한 요구가 증가하고 있다.
데이터 스트림 처리는 저장후 처리에 기반을 두고 있는 일반적인 데이터 처리 기술과 달리 선 처리 후 저장을 기반으로 하고 있기 때문에 기존 기술과는 다른 새로운 처리 기술이 필요하며 데이터 스트림 처리시 빠른 응답 시간을 보장하기 위해 메모리 사용량도 최소화되어야 하는 제약이 있다.
일반적으로, 데이터 스트림에서 연속 집계 질의를 처리하는 기법으로 팬(PANE), 슬라이스(SLICE) 기법 등이 알려져 있다. 그러나, 팬 기법은 윈도우를 레인지(RANGE)와 슬라이드(SLIDE)의 최대공약수 크기만큼 팬으로 나누고 팬 별로 집계 결과를 생성하여 공유하는 기법으로 하나의 오버랩핑(overlapping) 윈도우에 대해서는 어느 정도의 성능을 보장하지만 다수의 슬라이딩 윈도우에 대해서는 팬 크기가 1에 접근하여 연산 공유 효과가 거의 없어져 질의 성능이 매우 떨어지는 문제가 있다. 또한, 슬라이스 기법은 각 윈도우를 팬으로 나누는 대신 두 개의 슬라이스들로 나누는 페어드 윈도우(paired window)를 이용하여 질의를 수행하지만, 튜플(tuple) 수준의 부분 집계 연산 결과의 공유에만 초점이 맞추어져 있어 최대한의 집계 연산의 공유 효과를 달성할 수 없다.
데이터 스트림에서 다중 연속 집계 질의를 효율적으로 최적화하고, 이를 통해 질의 속도 및 메모리 효율성을 향상시키는 장치 및 방법이 제시된다.
일 양상에 따르면, 데이터 스트림에서 다중 연속 집계 질의 처리 장치는 다중 연속 집계 질의에 대한 공통 윈도우를 생성하고, 공통 윈도우의 제1집계 영역별 집계 연산 결과를 자료 구조에 저장하는 제1연산결과공유부, 공통 윈도우에서 제1집계 영역을 하나 이상 포함하는 제2집계 영역을 결정하고, 제2집계 영역별 집계 연산 결과를 자료 구조에 저장하는 제2연산결과공유부 및 자료 구조에 저장된 집계 연산 결과를 공유하여 다중 연속 집계 질의를 수행하는 질의처리부를 포함할 수 있다.
이때, 다중 연속 집계 질의는 슬라이딩 윈도우(sliding window)는 서로 상이하고, 집계 데이터의 유형은 동일한 집계 연산에 대한 질의인 것일 수 있다.
이때, 집계 연산은 SUM, AVG, MAX, MIN 및 COUNT 등 모든 종류의 대수적(algebraic)이거나, 배분적(distributive)인 집계 연산을 포함할 수 있다.
한편, 공통 윈도우는 다중 연속 집계 질의의 각 슬라이딩 윈도우별 에지(edge)를 포함하고, 제1집계 영역은 포함되는 에지들에 의해 구획되는 각 슬라이스(slice)일 수 있다.
또한, 제1연산결과공유부는 제1집계 영역별 인클루전 카운트(inclusion count)를 계산하여 자료 구조에 저장하고, 제2연산결과공유부는, 자료 구조에 저장된 인클루전 카운트를 이용하여 제2집계 영역을 결정할 수 있다.
또한, 제2연산결과공유부는, 미리 설정된 임의의 수 및 질의의 수를 더 이용하여 제2집계 영역을 결정할 수 있다.
자료 구조는 링크드 리스트(linkedlist), 우선순위 큐(priority queue), 트리(tree) 및 다차원 구조체 중의 어느 하나일 수 있다.
또한, 질의처리부는 다중 집계 질의를 수행할 때마다 자료구조에서 공유된 집계 연산 결과에 대응되는 집계 영역의 인클루전 카운트를 1 감소시키며, 인클루전 카운트가 0인 해당 집계 영역의 정보를 삭제할 수 있다.
일 양상에 따르면, 데이터 스트림에서 다중 연속 집계 질의 처리 방법은, 다중 연속 집계 질의에 대한 공통 윈도우를 생성하는 단계, 공통 윈도우의 제1집계 영역별 집계 연산 결과를 자료 구조에 저장하는 단계, 공통 윈도우에서 제1집계 영역을 하나 이상 포함하는 제2집계 영역을 결정하는 단계, 제2집계 영역별 집계 연산 결과를 상기 자료 구조에 저장하는 단계 및 자료 구조에 저장된 집계 연산 결과를 공유하여 상기 다중 연속 집계 질의를 수행하는 단계를 포함할 수 있다.
이때, 다중 연속 집계 질의는, 슬라이딩 윈도우(sliding window)는 서로 상이하고, 집계 데이터의 유형은 동일한 집계 연산에 대한 질의인 것일 수 있다.
이때, 집계 연산은 SUM, AVG, MAX, MIN 및 COUNT 등 모든 종류의 대수적(algebraic)이거나 배분적(distributive)인 집계 연산을 포함할 수 있다.
공통 윈도우는 다중 연속 집계 질의의 각 슬라이딩 윈도우별 에지(edge)를 포함하고, 제1집계 영역은 포함되는 에지들에 의해 구획되는 각 슬라이스(slice)일 수 있다.
한편, 다중 연속 집계 질의 처리 방법은 제1집계 영역별 인클루전 카운트(inclusion count)를 더 계산하여 상기 자료 구조에 저장하는 단계를 더 포함할 수 있고, 제2집계 영역을 결정하는 단계는, 자료 구조에 저장된 인클루전 카운트를 이용하여 제2집계 영역을 결정할 수 있다.
또한, 제2집계 영역을 결정하는 단계는 미리 설정된 임의의 수 및 질의의 수를 더 이용하여 제2집계 영역을 결정할 수 있다.
자료 구조는 링크드 리스트(linkedlist), 우선순위 큐(priority queue), 트리(tree) 및 다차원 구조체 중의 어느 하나일 수 있다.
또한, 다중 연속 집계 질의 처리 방법은 다중 집계 질의가 수행될 때마다 자료구조에서 공유된 집계 연산 결과에 대응되는 집계 영역의 인클루전 카운트를 1 감소시키는 단계 및 감소 결과 인클루전 카운트가 0인 집계 영역의 정보를 자료 구조에서 삭제하는 단계를 더 포함할 수 있다.
집계 연산 결과 공유의 최적화를 통해 다중 연속 집계 질의 처리 속도를 향상 및 불필요한 메모리 소모를 방지할 수 있다.
도 1은 일 실시예에 따른 다중 연속 집계 질의 처리 장치의 블록도이다.
도 2는 일 실시예에 따른 연속 집계 질의의 일 예이다.
도 3은 일 실시예에 따른 다중 연속 집계 질의를 설명하기 위한 예시이다.
도 4는 일 실시예에 따른 다중 연속 집계 질의 처리 방법의 흐름도이다.
도 2는 일 실시예에 따른 연속 집계 질의의 일 예이다.
도 3은 일 실시예에 따른 다중 연속 집계 질의를 설명하기 위한 예시이다.
도 4는 일 실시예에 따른 다중 연속 집계 질의 처리 방법의 흐름도이다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 따른 데이터 스트림에서 다중 연속 집계 질의 처리 장치 및 방법을 도면들을 참고하여 자세히 설명하도록 한다.
도 1은 일 실시예에 따른 다중 연속 집계 질의 처리 장치의 블록도이다. 도 2는 일 실시예에 따른 연속 집계 질의의 일 예이다. 도 3은 일 실시예에 따른 다중 연속 집계 질의를 설명하기 위한 예시이다.
도 2를 참조하면, 연속 집계 질의는 스트리밍 데이터의 처리에 흔히 사용되는 질의 유형 중 하나로서, 예를 들어 SUM, AVG, MAX, MIN, COUNT 등과 같이 특정 데이터 집합에 대한 요약 정보를 연속적으로 얻기 위한 질의이다. 연속 집계 질의는 집계 연산자와 슬라이딩 윈도우(sliding window)를 포함한다. 집계 연산자는 집계 데이터 유형을 나타내며 SUM, AVG, MAX, MIN, COUNT 등과 같이 대수적(algebraic)이거나, 배분적(distributive)인 모든 집계 연산이 포함될 수 있다. 슬라이딩 윈도우는 관심 데이터 영역인 레인지(range)와, 결과 수집 주기, 즉 윈도우가 한 번에 움직이는 간격인 슬라이드(slide)를 가진다. 윈도우의 에지(edge)는 윈도우의 양 끝점이 가리키는 지점을 의미하며, 인접한 두 에지는 하나의 슬라이스(slice)를 형성한다.
슬라이딩 윈도우는 질의 처리를 위해 윈도우를 이동할 때 중복된 영역을 포함할 수 있다. 슬라이딩 윈도우의 레인지가 슬라이드보다 큰 경우에 발생하며, 이 경우에는 일반적으로 이전의 질의 처리에 사용했던 부분을 다음 질의 처리에 사용하게 되는 데 중복된 영역의 질의 처리에 따른 연산 비용이 증가될 수 있다.
도 2는 레인지가 6이고, 슬라이드가 5인 슬라이딩 윈도우를 예시한 것으로, 일 예로서, 아래의 표 1과 같이 증권 거래 시스템에서 어떤 사용자가 '매 5분마다 과거 6분간의 평균 거래 가격을 알려 달라'는 요청에 대한 연속 집계 질의에 적용될 수 있다.
SELECT AVG(T.price) FROM Trades T [RANGE 6 Minute SLIDE 5 Minute] |
다수의 사용자가 동일한 데이터 스트림에 대한 요약 정보를 얻고자 하는 경우 다수의 연속 집계 질의로서 표현될 수 있다. 예를 들어, 증권 거래 시스템에서 다수의 사용자들이 다양한 종목과 시간대에 대해 거래 정보를 수집하는 경우, 네트워크 관리 시스템에서 다수의 관리자가 다양한 시간대에서 트래픽 정보를 수집하는 경우 다수의 연속 집계 질의로서 표현되고, 이러한 다수의 질의는 한 시스템에서 동시에 처리된다.
이하에서 설명되는 본 실시예에 따르면, 이와 같이 다수의 연속 집계 질의를 동시에 처리해야 하는 상황에서 질의의 처리 효율을 증가시키기 위해 질의들 간의 유사성을 찾아 중복된 연산을 최소화하고, 그 중복된 연산의 집계 결과를 효율적으로 공유할 수 있는 기법이 제시된다.
도 1을 참조하면, 제1연산결과공유부(110), 제2연산결과공유부(120), 질의처리부(130) 및 자료 구조(140)를 포함할 수 있다.
제1연산결과공유부(110)는 다중 연속 집계 질의에 대한 공통 윈도우(common window)를 생성할 수 있다. 이때, 다중 연속 집계 질의는 각 질의의 슬라이딩 윈도우는 서로 상이하고, 집계하고자 하는 데이터 유형은 동일한 질의일 수 있다. 도 3을 참조하면, 공통 윈도우는 다수의 연속 집계 질의의 각 슬라이딩 윈도우(W1, W2, W3)별 에지를 모두 포함하도록 생성될 수 있다. 공통 윈도우는 그 에지들에 의해 나누어지는 다수의 슬라이스(S1 ~ S11)를 포함한다. 각 슬라이스(S1 ~ S11)는 하나 이상의 튜플(tuple)을 포함하며, 도 3의 각 슬라이스 내의 숫자는 그 슬라이스의 길이를 나타낸 것이다. 한편, 제1연산결과공유부(110)는 메모리 소모를 최소화하기 위해 공통 윈도우를 온 더 플라이(on-the-fly) 방식으로 생성할 수 있다.
제1연산결과공유부(110)는 각 질의에 대하여 연산 결과를 공유하기 위한 제1집계 영역을 결정할 수 있다. 제1집계 영역은 다수의 질의를 최종 수행할 때 질의 처리 효율을 높이기 위해 공유할 수 있도록 미리 연산 결과를 생성해 놓기 위한 연산 결과 생성 단위라 할 수 있다. 일 예에 따르면 제1집계 영역은 공통 윈도우의 각 슬라이스(S1 ~ S11)일 수 있으며, 각 슬라이스(S1~S11)별로 집계 연산을 수행할 수 있다. 이를 통해, 최종 질의 수행시 1차적으로 튜플 수준의 집계 연산 결과의 공유가 가능해진다. 제1연산결과공유부(110)는 제1집계 영역별로 생성된 집계 연산 결과를 자료 구조(140)에 저장하여 효율적인 연산 결과의 공유를 가능하게 할 수 있다.
제2연산결과공유부(120)는 공통 윈도우에서 제1집계 영역을 하나 이상 포함하는 제2집계 영역(T)을 결정할 수 있다. 제2 집계 영역(T)의 집계 연산을 수행하여 2차적으로 슬라이스 수준의 집계 연산 결과를 공유함으로써 2단계의 집계 연산 결과를 공유함으로써 다중 연산 질의에 대한 성능은 배가될 수 있다. 한편, 제2연산결과공유부(120)는 메모리 소모를 최소화하기 위해 제2집계 영역을 온 더 플라이(on-the-fly) 방식으로 생성할 수 있다.
추가적인 양상에 따르면, 제1연산결과공유부(110)는 제1집계 영역별로 인클루전 카운트(IC)를 계산하고, 이를 자료 구조(140)에 저장할 수 있다. 인클루전 카운트(IC)는 공통 윈도우의 제1집계 영역(예: 슬라이스)을 포함하는 윈도우의 수를 의미한다. 예를 들어, 슬라이스 S1을 포함하는 슬라이딩 윈도우들은 중복 영역이 없으므로 3이고, 슬라이스 S2를 포함하는 윈도우의 수는 4가 된다. 계산된 인클루전 카운트(IC)는 도 3에 예시되어 있다.
제2연산결과공유부(120)는 계산된 인클루전 카운트(IC)를 이용하여 제2집계 영역을 결정할 수 있다. 제2집계 영역은 다중 연속 집계 질의에서 집계 결과의 공유가 가능한 최대의 집계 영역을 의미하며, 제2연산결과공유부(120)는 인클루전 카운트(IC)외에 사용자가 미리 설정한 임의의 수와 질의의 수를 더 이용하여 제2집계 영역을 결정할 수 있다. 즉, 사용자는 최적 크기의 제2집계 영역이 결정될 수 있도록 전처리 과정을 통해 임의의 수를 결정하여 미리 설정할 수 있다.
도 3을 참조하면, 제2집계 영역(T)이 예시되어 있다. 예를 들어, 사용자가 미리 설정한 임의의 수가 α이고, 질의의 수가 n이라 할 때, 제2집계 영역(T)은 인클루전 카운트(IC)가 αn보다 크거나 같은 슬라이스들 중에서 αn개의 윈도우가 공유할 수 있는 슬라이스를 합한 영역일 수 있다. 사용자가 설정한 임의의 수 α가 1이라 할 때, 질의의 수 n은 3이므로 αn은 3이고 슬라이스 S1 부터 순차적으로 인클루전 카운트와 αn을 비교하면, S1, S2, S3의 인클루전 카운트는 각각 3, 4, 5로 모두 3 보다 크거나 같고, 세 윈도우에서 공유가 가능하므로 모두 합해진다. 그러나, 슬라이스 S4는 S1, S2, S3와 합해질 경우 αn개의 윈도우에 포함될 수 없으므로 합해지지 않는다.
이와 같이, 제2연산결과공유부(120)는 각 질의에서 공유할 수 있는 최대 집계 영역인 제2집계 영역을 결정하고 제2집계 영역에 대한 집계 결과를 자료 구조(40)에 저장함으로써 최종 질의 수행시 튜플 레벨의 집계 결과 공유뿐만 아니라, 슬라이스 레벨의 집계 결과를 공유할 수 있어 질의 효율이 향상된다.
질의처리부(130)는 자료 구조(140)에 저장된 제1집계 영역 및 제2집계 영역에 대한 집계 결과를 이용하여 다중 연속 집계 질의를 수행한다.
한편, 자료 구조(140)는 링크드 리스트(linked list), 우선순위 큐(priority queue), 트리(tree) 및 다차원 구조체 중의 어느 하나일 수 있으며, 이에 한정되는 것은 아니다. 자료 구조(140)는 다수의 노드들로 구성될 수 있으며, 각 노드는 제1집계 영역 및 제2집계 영역에 대응한다. 각 노드는 각 집계 영역의 인클루전 카운트, 시간 간격 또는 부분 집계 결과 정보를 포함할 수 있다. 또한, 제2집계 영역에 대응하는 노드는 그 제2집계 영역에 포함되는 제1집계 영역의 링크 정보를 포함할 수 있다.
질의처리부(130)는 최종적으로 다중 연속 집계 질의를 수행할 때 자료 구조(140)에서 공유된 집계 영역의 인클루전 카운트를 1씩 감소시킬 수 있다. 또한, 그 결과 자료 구조(140)에서 인클루전 카운트가 0이 되는 집계 영역에 대한 노드를 삭제할 수 있다. 인클루전 카운트가 0이 되는 집계 영역은 더 이상 어떤 슬라이딩 윈도우에도 포함되지 않는다는 것을 의미하므로 해당 집계 영역의 연산 결과는 더 이상 공유되지 않는다. 따라서, 자료 구조(140)에서 해당 집계 영역의 정보를 삭제함으로써 메모리 공간을 최적화할 수 있다.
도 4는 일 실시예에 따른 다중 연속 집계 질의 처리 방법의 흐름도이다.
다중 연속 집계 질의 처리 장치(100)는 먼저, 다중 연속 집계 질의에 대한 공통 윈도우를 생성한다(단계 301). 공통 윈도우는 다수의 연속 집계 질의의 각 슬라이딩 윈도우별 에지를 모두 포함하도록 생성될 수 있으며, 그 에지들에 의해 나누어지는 다수의 슬라이스로 이루어진다.
그 다음, 각 질의에 대하여 연산 결과를 공유하기 위한 제1집계 영역을 결정하고, 제1집계 영역별 집계 연산 결과를 자료 구조(140)에 저장할 수 있다(단계 302). 일 예에 따르면, 제1집계 영역은 공통 윈도우의 각 슬라이스일 수 있으며, 각 슬라이스별로 집계 연산 결과를 저장할 수 있다.
그 다음, 제1집계 영역별로 인클루전 카운트를 계산하고, 이를 자료 구조(140)에 저장할 수 있다(단계 303). 인클루전 카운트는 공통 윈도우의 제1집계 영역이 포함하는 슬라이딩 윈도우의 수를 의미한다.
그 다음, 공통 윈도우에서 제1집계 영역을 하나 이상 포함하는 제2집계 영역을 결정한다(단계 304). 제2집계 영역 별로 집계 연산을 수행하여 2차적으로 슬라이스 수준의 집계 연산 결과를 공유함으로써 다중 연산 질의에 대한 성능이 배가될 수 있다. 한편, 제2집계 영역을 온 더 플라이(on-the-fly) 방식으로 생성될 수 있으며, 이는 저장할 필요가 없으므로 메모리의 소모를 최소화하여 성능이 향상된다.
이때, 제2집계 영역은 계산된 인클루전 카운트, 사용자가 미리 설정한 임의의 수 및 질의의 수 등을 이용하여 결정될 수 있다. 제2집계 영역은 다중 연속 집계 질의에서 집계 결과의 공유가 가능한 최대의 집계 영역을 의미한다.
그 다음, 각 질의에서 공유할 수 있는 최대 집계 영역인 제2집계 영역에 대한 집계 결과를 자료 구조(40)에 저장한다(단계 305).
그 다음, 자료 구조(140)에 저장된 제1집계 영역 및 제2집계 영역에 대한 집계 결과를 이용하여 다중 연속 집계 질의를 수행한다(단계 306). 즉, 최종 질의 수행시 튜플 레벨의 집계 결과 공유뿐만 아니라, 슬라이스 레벨의 집계 결과를 공유할 수 있어 질의 효율이 향상될 수 있다.
그 다음, 질의처리부(130)는 최종적으로 다중 연속 집계 질의를 수행할 때 자료 구조(140)에서 공유된 집계 영역의 인클루전 카운트를 1씩 감소시킨다(단계 307). 또한, 그 결과 자료 구조(140)에서 인클루전 카운트가 0이 되는 집계 영역에 대한 노드를 삭제한다(단계 308). 인클루전 카운트가 0이 되는 집계 영역은 더 이상 어떤 슬라이딩 윈도우에도 포함되지 않는다는 것을 의미하므로 해당 집계 영역의 연산 결과는 더 이상 공유되지 않는다. 따라서, 자료 구조(140)에서 해당 집계 영역의 정보를 삭제함으로써 메모리 공간의 최적화가 가능하고 이로 인해 불필요한 메모리의 소모로 질의가 지연되는 문제를 방지할 수 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 다중 연속 집계 질의 처리 장치 110: 제1연산결과공유부
120: 제2연산결과공유부 130: 질의처리부
140: 자료구조
120: 제2연산결과공유부 130: 질의처리부
140: 자료구조
Claims (18)
- 데이터 스트림에서 다중 연속 집계 질의 처리 장치에 있어서,
상기 다중 연속 집계 질의에 대한 공통 윈도우를 생성하고, 상기 공통 윈도우의 제1집계 영역별 집계 연산 결과를 자료 구조에 저장하는 제1연산결과공유부;
상기 공통 윈도우에서 제1집계 영역을 하나 이상 포함하는 제2집계 영역을 결정하고, 상기 제2집계 영역별 집계 연산 결과를 상기 자료 구조에 저장하는 제2연산결과공유부; 및
상기 자료 구조에 저장된 집계 연산 결과를 공유하여 상기 다중 연속 집계 질의를 수행하는 질의처리부;를 포함하고,
상기 공통 윈도우는,
상기 다중 연속 집계 질의의 각 슬라이딩 윈도우별 에지(edge)를 포함하고,
상기 제1집계 영역은,
상기 포함되는 에지들에 의해 구획되는 각 슬라이스(slice)인 다중 연속 집계 질의 처리 장치. - 제1항에 있어서, 상기 다중 연속 집계 질의는,
슬라이딩 윈도우(sliding window)는 서로 상이하고, 집계 데이터의 유형은 동일한 집계 연산에 대한 질의인 것인 다중 연속 집계 질의 처리 장치. - 제2항에 있어서, 상기 집계 연산은,
대수적(algebraic) 집계 연산 및 배분적(distributive) 집계 연산 중의 하나 이상을 포함하는 다중 연속 집계 질의 처리 장치. - 제3항에 있어서, 상기 집계 연산은,
SUM, AVG, MAX, MIN 및 COUNT 중 어느 하나인 다중 연속 집계 질의 처리 장치. - 삭제
- 제1항에 있어서, 상기 제1연산결과공유부는,
제1집계 영역별 인클루전 카운트(inclusion count)를 계산하여 상기 자료 구조에 저장하고,
상기 제2연산결과공유부는,
상기 자료 구조에 저장된 인클루전 카운트를 이용하여 상기 제2집계 영역을 결정하는 다중 연속 집계 질의 처리 장치. - 제6항에 있어서, 상기 제2연산결과공유부는,
미리 설정된 임의의 수 및 상기 질의의 수를 더 이용하여 상기 제2집계 영역을 결정하는 다중 연속 집계 질의 처리 장치. - 제1항에 있어서, 상기 자료 구조는,
링크드 리스트(linkedlist), 우선순위 큐(priority queue), 트리(tree) 및 다차원 구조체 중의 어느 하나인 다중 연속 집계 질의 처리 장치. - 제1항에 있어서, 상기 질의처리부는,
상기 다중 연속 집계 질의를 수행할 때마다 상기 자료구조에서 상기 공유된 집계 연산 결과에 대응되는 집계 영역의 인클루전 카운트를 1 감소시키며, 인클루전 카운트가 0인 해당 집계 영역의 정보를 삭제하는 다중 연속 집계 질의 처리 장치. - 데이터 스트림에서 다중 연속 집계 질의 처리 방법에 있어서,
상기 다중 연속 집계 질의에 대한 공통 윈도우를 생성하는 단계;
상기 공통 윈도우의 제1집계 영역별 집계 연산 결과를 자료 구조에 저장하는 단계;
상기 공통 윈도우에서 제1집계 영역을 하나 이상 포함하는 제2집계 영역을 결정하는 단계;
상기 제2집계 영역별 집계 연산 결과를 상기 자료 구조에 저장하는 단계; 및
상기 자료 구조에 저장된 집계 연산 결과를 공유하여 상기 다중 연속 집계 질의를 수행하는 단계;를 포함하고,
상기 공통 윈도우는,
상기 다중 연속 집계 질의의 각 슬라이딩 윈도우별 에지(edge)를 모두 포함하고,
상기 제1집계 영역은,
상기 포함되는 에지들에 의해 구획되는 각 슬라이스(slice)인 다중 연속 집계 질의 처리 방법. - 제10항에 있어서, 상기 다중 연속 집계 질의는,
슬라이딩 윈도우(sliding window)는 서로 상이하고, 집계 데이터의 유형은 동일한 집계 연산에 대한 질의인 것인 다중 연속 집계 질의 처리 방법. - 제11항에 있어서, 상기 집계 연산은,
대수적(algebraic) 집계 연산 및 배분적(distributive) 집계 연산 중의 하나 이상을 포함하는 다중 연속 집계 질의 처리 방법. - 제12항에 있어서, 상기 집계 연산은,
SUM, AVG, MAX, MIN 및 COUNT 중 어느 하나인 다중 연속 집계 질의 처리 방법. - 삭제
- 제10항에 있어서,
제1집계 영역별 인클루전 카운트(inclusion count)를 계산하여 상기 자료 구조에 저장하는 단계;를 더 포함하고,
상기 제2집계 영역을 결정하는 단계는,
상기 자료 구조에 저장된 인클루전 카운트를 이용하여 상기 제2집계 영역을 결정하는 다중 연속 집계 질의 처리 방법. - 제15항에 있어서, 상기 제2집계 영역을 결정하는 단계는,
미리 설정된 임의의 수 및 상기 질의의 수를 더 이용하여 상기 제2집계 영역을 결정하는 다중 연속 집계 질의 처리 방법. - 제10항에 있어서, 상기 자료 구조는,
링크드 리스트(linkedlist), 우선순위 큐(priority queue), 트리(tree) 및 다차원 구조체 중의 어느 하나인 다중 연속 집계 질의 처리 방법. - 제10항에 있어서,
상기 다중 연속 집계 질의가 수행될 때마다 상기 자료구조에서 상기 공유된 집계 연산 결과에 대응되는 집계 영역의 인클루전 카운트를 1 감소시키는 단계; 및
상기 감소 결과 인클루전 카운트가 0인 집계 영역의 정보를 상기 자료 구조에서 삭제하는 단계;를 더 포함하는 다중 연속 집계 질의 처리 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120072374A KR101959562B1 (ko) | 2012-07-03 | 2012-07-03 | 데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법 |
US13/896,546 US9355149B2 (en) | 2012-07-03 | 2013-05-17 | Apparatus and method for efficiently processing multiple continuous aggregate queries in data streams |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120072374A KR101959562B1 (ko) | 2012-07-03 | 2012-07-03 | 데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140006321A KR20140006321A (ko) | 2014-01-16 |
KR101959562B1 true KR101959562B1 (ko) | 2019-03-18 |
Family
ID=49879318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120072374A KR101959562B1 (ko) | 2012-07-03 | 2012-07-03 | 데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9355149B2 (ko) |
KR (1) | KR101959562B1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305031B2 (en) * | 2013-04-17 | 2016-04-05 | International Business Machines Corporation | Exiting windowing early for stream computing |
JP6114473B2 (ja) * | 2013-06-21 | 2017-04-12 | 株式会社日立製作所 | 時間調整を使用したストリームデータ処理方法 |
US10013461B2 (en) | 2015-03-11 | 2018-07-03 | International Business Machines Corporation | Analyzing a data set utilizing inflection points |
TWI672666B (zh) * | 2017-08-09 | 2019-09-21 | 宏碁股份有限公司 | 圖像資料處理的方法及其裝置 |
US11436231B2 (en) * | 2020-01-13 | 2022-09-06 | EMC IP Holding Company LLC | Continuous query scheduling and splitting in a cluster-based data storage system |
US11847474B2 (en) * | 2021-08-02 | 2023-12-19 | Dell Products L.P. | Simultaneously sharing multiple windows via a collaboration application |
KR102387105B1 (ko) * | 2022-02-07 | 2022-04-15 | 주식회사 이글루시큐리티 | 스트림 데이터 처리 장치 및 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100833540B1 (ko) * | 2006-11-30 | 2008-05-29 | 인하대학교 산학협력단 | 다중 연속 질의에서 슬라이딩 윈도우 집계 질의 최적화를위한 시스템 및 그 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080189575A1 (en) * | 2001-05-24 | 2008-08-07 | Emilio Miguelanez | Methods and apparatus for data analysis |
KR100810257B1 (ko) | 2006-02-07 | 2008-03-11 | 연세대학교 산학협력단 | 데이터스트림 관리 시스템에서 다수의 연속질의들에 표현된선택조건들의 효율적인 처리장치 및 처리방법 |
US20080016095A1 (en) | 2006-07-13 | 2008-01-17 | Nec Laboratories America, Inc. | Multi-Query Optimization of Window-Based Stream Queries |
US8832073B2 (en) * | 2007-06-29 | 2014-09-09 | Alcatel Lucent | Method and apparatus for efficient aggregate computation over data streams |
KR101133516B1 (ko) | 2009-04-16 | 2012-04-04 | 연세대학교 산학협력단 | 데이터 스트림에서의 다중 조인 질의 최적화 방법 |
-
2012
- 2012-07-03 KR KR1020120072374A patent/KR101959562B1/ko active IP Right Grant
-
2013
- 2013-05-17 US US13/896,546 patent/US9355149B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100833540B1 (ko) * | 2006-11-30 | 2008-05-29 | 인하대학교 산학협력단 | 다중 연속 질의에서 슬라이딩 윈도우 집계 질의 최적화를위한 시스템 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
US9355149B2 (en) | 2016-05-31 |
US20140012871A1 (en) | 2014-01-09 |
KR20140006321A (ko) | 2014-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101959562B1 (ko) | 데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법 | |
US11888702B2 (en) | Intelligent analytic cloud provisioning | |
US11971888B2 (en) | Placement of adaptive aggregation operators and properties in a query plan | |
US9158812B2 (en) | Enhancing parallelism in evaluation ranking/cumulative window functions | |
US10977248B2 (en) | Processing records in dynamic ranges | |
CN112437916A (zh) | 数据库表的增量群集 | |
Tang et al. | Dynamic job ordering and slot configurations for MapReduce workloads | |
US9529849B2 (en) | Online hash based optimizer statistics gathering in a database | |
KR102117637B1 (ko) | 데이터 전처리 장치 및 방법 | |
Zaheilas et al. | {Real-Time} Scheduling of Skewed {MapReduce} Jobs in Heterogeneous Environments | |
Kim et al. | Time-slide window join over data streams | |
Chen et al. | Popularity-aware differentiated distributed stream processing on skewed streams | |
US10176231B2 (en) | Estimating most frequent values for a data set | |
Brito et al. | Faster cloud star joins with reduced disk spill and network communication | |
Makanju et al. | Deep parallelization of parallel FP-growth using parent-child MapReduce | |
Wu et al. | Novel structures for counting frequent items in time decayed streams | |
JP6398632B2 (ja) | 制御装置、分散データベースシステム、方法およびプログラム | |
Gupta et al. | An approach for optimizing the performance for apache spark applications | |
Swami et al. | Storing and analyzing streaming data: A big data challenge | |
Wang et al. | Design of a next generation sampling service for large scale data analysis applications | |
Datar | Algorithms for data stream systems | |
Termehchi et al. | Pipelined operator tree scheduling in heterogeneous environments | |
Lin et al. | An entropy-based data summarization algorithm in data stream system | |
Cesario et al. | Mining distributed data streams on Content Delivery Networks | |
Xu | Stela: on-demand elasticity in distributed data stream processing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |