KR101296683B1 - 데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법 - Google Patents

데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법 Download PDF

Info

Publication number
KR101296683B1
KR101296683B1 KR1020110047402A KR20110047402A KR101296683B1 KR 101296683 B1 KR101296683 B1 KR 101296683B1 KR 1020110047402 A KR1020110047402 A KR 1020110047402A KR 20110047402 A KR20110047402 A KR 20110047402A KR 101296683 B1 KR101296683 B1 KR 101296683B1
Authority
KR
South Korea
Prior art keywords
synopsis
query
join
batch
window
Prior art date
Application number
KR1020110047402A
Other languages
English (en)
Other versions
KR20120108886A (ko
Inventor
이원석
Original Assignee
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Publication of KR20120108886A publication Critical patent/KR20120108886A/ko
Application granted granted Critical
Publication of KR101296683B1 publication Critical patent/KR101296683B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Landscapes

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

Abstract

본 발명에 따른 다중 조인 질의 처리 방법은, 다중 조인 질의에 대하여 각 소스 스트림을 노드로 나타내고 조인 조건을 에지로 나타낸 조인 그래프에 대하여, 특정 노드로부터 출발하여 조인 그래프의 연속된 통과로 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스인 질의 통로를 생성하는 단계; 질의 통로를 기반으로 각 노드에 대하여 매트릭스 기반 시놉시스를 생성하는 단계; 질의 통로의 각 조인 속성 도메인에 대한 해시 함수가 주어질 때, 소스 스트림이 입력되면 소스 스트림의 투플을 해시 함수로 해싱하여 윈도우 시놉시스, 윈도우 인덱스 시놉시스, 배치 시놉시스, 배치 인덱스 시놉시스를 채우는 단계; 질의 방정식이 질의 통로의 노드들에 대응하는 윈도우 시놉시스들의 매트릭스 곱셈 연산으로 정의되고, 배치 질의 방정식이 질의 방정식에서 특정 스트림에 해당하는 윈도우 시놉시스가 특정 스트림에 해당하는 배치 시놉시스로 대체된 질의 방정식으로 정의될 때, 배치 질의 방정식을 계산하여 결과 벡터를 생성하는 단계; 및 결과 벡터에 기초하여, 배치 인덱스 시놉시스와 윈도우 인덱스 시놉시스로부터 다중 조인 질의에 대한 결과 투플을 생성하는 단계를 포함하는 것을 특징으로 한다.

Description

데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법{Two phase method for processing multi-way join query over data streams}
본 발명은 다중 조인 질의 처리 방법에 관한 것으로, 보다 상세하게는 데이터 스트림에서 다중 연속 조인 질의를 처리하기 위한 방법 및 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.
웹 클릭 모니터링, 센서 데이터 처리, 네트워크 트래픽 분석 등 최근의 많은 응용 분야에서는 무한히 발생하는 대량의 데이터를 처리해야 한다. 이렇게 무한히 발생하는 대량의 데이터를 데이터 스트림(data stream)이라고 정의한다. 이러한 응용분야에서 연속 질의(continuous query)는 특정 이벤트를 표현하고, 새로운 데이터가 발생할 때마다 해당 이벤트가 발생을 했는지에 대해서 모니터링하는데 사용된다.
이러한 연속 질의는 쓰이는 목적에 따라 크게 다음과 같이 2 가지 유형로 나눌 수 있다. 첫 번째 유형은 범용 질의(general-purpose query)로서, 해당 연속 질의를 만족하는 투플(tuple)을 결과로 생성하는 질의이다. 두 번째 유형은 탐지-목적 질의(detection-only query)로서, 새로 들어온 데이터(투플)가 연속 질의를 만족했는가에 대한 여부만을 응답해 주는 질의이다. 탐지-목적 질의를 처리하기 위해서는 해당 질의를 만족한 투플의 정보는 필요가 없고, 새로 들어온 투플이 질의를 만족했는지에 대한 여부만을 알면 된다.
여러 개의 조인 조건을 갖고 있는 다중 조인 연속 질의는 여러 개의 소스 데이터 스트림을 통합해서 모니터링하기 위해서 사용되어지며, 기존에 많은 연구가 진행되었었다. 하지만 연속 질의 처리에 관련된 대부분의 기존 연구들은 하나의 연속 질의에 표현되어 있는 이진 조인 연산들의 순서를 결정하기 위해서 전통적인 데이터베이스 관리 시스템에서 사용하던 트리 기반의 실행 계획을 사용하였다. 그러나 데이터 스트림 환경에서는 조인 연산의 선택도(selectivity)가 시간에 따라 계속 변하기 때문에 트리 기반의 실행 계획은 계속적으로 최적화가 필요하게 되며, 이것은 매우 큰 런타임 오버헤드를 유발한다.
기존의 대부분의 연구는 범용 질의에 대해서만 연구를 진행하였으며, 탐지-목적 질의에 대한 연구는 진행된 바가 없다. 따라서 탐지-목적 질의가 주어졌다 할지라도, 해당 질의의 결과를 얻기 위해서는 실제로 조인을 수행하여야 한다.
본 발명이 이루고자 하는 기술적 과제는, 첫 번째 페이즈(phase)에서, 주어진 다중 조인 질의에 대하여 새로 들어오는 투플들이 질의를 만족하는지 여부를 검사하고, 두 번째 페이즈에서, 첫 번째 페이즈의 결과를 토대로 질의에 대한 구체적인 결과 투플을 찾을 수 있는 다중 조인 질의 처리 방법 및 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명의 일 태양에 따른 다중 조인 질의 처리 방법은, 다중 조인 질의에 대하여 각 소스 스트림을 노드로 나타내고 조인 조건을 에지로 나타낸 조인 그래프에 대하여, 특정 노드로부터 출발하여 상기 조인 그래프의 연속된 통과로 상기 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 상기 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스인 질의 통로를 생성하는 단계; 상기 질의 통로를 기반으로 각 노드에 대하여 매트릭스 기반 시놉시스를 생성하는 단계-여기서, 상기 매트릭스 기반 시놉시스는 엔트리에 할당되는 투플들의 수를 관리하는 윈도우 시놉시스, 엔트리에 할당되는 투플들에 대한 주소의 리스트를 관리하는 윈도우 인덱스 시놉시스, 상기 윈도우 시놉시스의 배치(batch)인 배치 시놉시스, 상기 윈도우 인덱스 시놉시스의 배치인 배치 인덱스 시놉시스를 포함함; 상기 질의 통로의 각 조인 속성 도메인에 대한 해시 함수가 주어질 때, 소스 스트림이 입력되면 상기 소스 스트림의 투플을 상기 해시 함수로 해싱하여 상기 윈도우 시놉시스, 상기 윈도우 인덱스 시놉시스, 상기 배치 시놉시스, 상기 배치 인덱스 시놉시스를 채우는 단계; 질의 방정식이 상기 질의 통로의 노드들에 대응하는 윈도우 시놉시스들의 매트릭스 곱셈 연산으로 정의되고, 배치 질의 방정식이 상기 질의 방정식에서 특정 스트림에 해당하는 윈도우 시놉시스가 상기 특정 스트림에 해당하는 배치 시놉시스로 대체된 질의 방정식으로 정의될 때, 상기 배치 질의 방정식을 계산하여 결과 벡터를 생성하는 단계; 및 상기 결과 벡터에 기초하여, 상기 배치 인덱스 시놉시스와 상기 윈도우 인덱스 시놉시스로부터 상기 다중 조인 질의에 대한 결과 투플을 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 본 발명의 다른 태양에 따른 다중 조인 질의 처리 방법은, 다중 조인 질의에 대하여 각 소스 스트림을 노드로 나타내고 조인 조건을 에지로 나타낸 조인 그래프에 대하여, 특정 노드로부터 출발하여 상기 조인 그래프의 연속된 통과로 상기 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 상기 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스인 질의 통로를 생성하는 단계; 상기 질의 통로를 기반으로 각 노드에 대하여 매트릭스 기반 시놉시스를 생성하는 단계-여기서, 상기 매트릭스 기반 시놉시스는 엔트리에 할당되는 투플들의 수를 관리하는 윈도우 시놉시스, 엔트리에 할당되는 투플들에 대한 주소의 리스트를 관리하는 윈도우 인덱스 시놉시스, 상기 윈도우 시놉시스의 배치(batch)인 배치 시놉시스, 상기 윈도우 인덱스 시놉시스의 배치인 배치 인덱스 시놉시스를 포함함; 상기 질의 통로의 각 조인 속성 도메인에 대한 해시 함수가 주어질 때, 소스 스트림이 입력되면 상기 소스 스트림의 투플을 상기 해시 함수로 해싱하여 상기 윈도우 시놉시스, 상기 윈도우 인덱스 시놉시스, 상기 배치 시놉시스, 상기 배치 인덱스 시놉시스를 채우는 단계; 및 질의 방정식이 상기 질의 통로의 노드들에 대응하는 윈도우 시놉시스들의 매트릭스 곱셈 연산으로 정의되고, 배치 질의 방정식이 상기 질의 방정식에서 특정 스트림에 해당하는 윈도우 시놉시스가 상기 특정 스트림에 해당하는 배치 시놉시스로 대체된 질의 방정식으로 정의될 때, 상기 배치 질의 방정식을 계산하여 결과 벡터를 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 본 발명의 또 다른 태양에 따른 다중 조인 질의 처리 방법은, 다중 조인 질의에 대하여 각 소스 스트림을 노드로 나타내고 조인 조건을 에지로 나타낸 조인 그래프에 대하여, 특정 노드로부터 출발하여 상기 조인 그래프의 연속된 통과로 상기 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 상기 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스인 질의 통로가 정의되고, 상기 질의 통로의 각 노드에 대하여 매트릭스 기반 시놉시스가 정의될 때, (a) 입력되는 소스 스트림에 따라 상기 매트릭스 기반 시놉시스를 채우고, 상기 질의 통로의 노드들에 대응하는 매트릭스 기반 시놉시스들의 매트릭스 곱셈 연산으로 정의되는 질의 방정식을 계산하여 결과 벡터를 생성하는 단계; 및 (b) 상기 결과 벡터에 기초하여, 상기 매트릭스 기반 시놉시스들로부터 상기 다중 조인 질의에 대한 결과 투플을 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 상기된 다중 조인 질의 처리 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기된 본 발명에 의하면, 첫 번째 페이즈에서, 주어진 다중 조인 질의에 대하여 새로 들어오는 투플들이 질의를 만족하는지 여부를 검사하고, 두 번째 페이즈에서, 첫 번째 페이즈의 결과를 토대로 질의에 대한 구체적인 결과 투플을 찾을 수 있다. 따라서 실제 결과 투플을 생성하지 않고도 탐지-목적 질의에 대한 응답을 줄 수 있다. 또한, 범용 질의의 경우에도 본 발명을 적용하게 되면 실제 질의 결과에 기여할 수 없는 투플들은 조인을 수행하지 않게 됨으로써 질의를 효과적으로 수행할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 다중 조인 질의(multi-way join query) 처리 방법의 전체 흐름도를 나타낸다.
도 2 는 매트릭스 기반 시놉시스의 예를 나타낸다.
도 3 은 질의 방정식의 계산을 나타낸다.
도 4 는 n-웨이 조인 질의를 위한 전처리 페이즈의 수도 코드(pseudo code)를 나타낸다.
도 5 는 도 2 의 예에 대하여 식별 단계가 어떻게 수행되는지를 나타낸다.
도 6 은 식별 단계의 상세한 수도 코드를 나타낸다.
도 7 은 배치 질의 인덱스 방정식이 어떻게 이밸류에이션되는지를 나타낸다.
도 8a 와 도 8b 는 구체화 단계의 자세한 수도 코드를 나타낸다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1 은 본 발명의 일 실시예에 따른 다중 조인 질의(multi-way join query) 처리 방법의 전체 흐름도를 나타낸다. 도 1 을 참조하면, 본 실시예에 따른 다중 조인 질의 처리 방법은 크게 전처리 페이즈(Preprocessing Phase)와, 이밸류에이션 페이즈(evaluation phase)로 구성된다.
전처리 페이즈에서는 새로 들어온 투플(tuple)들의 집합이 주어진 다중 조인 연속 질의를 만족했는지 여부와 어떤 조인 속성을 가지는 투플이 최종 질의 결과를 만들어내는지에 대한 정보를 추출한다. 만일 새로 들어온 투플들의 집합에 있는 모든 투플들이 해당 질의를 만족하지 않는다면, 즉 다음 페이즈인 이밸류에이션 페이즈로 넘어가지 않는다. 이밸류에이션 페이즈에서는 전처리 페이즈에서 얻어진 정보들을 기반으로 실제로 질의의 결과를 생성하는 투플들만을 조인해서 실제 질의에 대한 결과를 생성한다.
본 실시예에 따른 다중 조인 질의 처리 방법에 의하면, 첫 번째 페이즈, 즉 전처리 페이즈의 수행만으로도 탐지-목적 질의에 대한 답을 얻을 수 있다. 전처리 페이즈에서는 매트릭스 기반 시놉시스(matrix-based synopses)를 사용하여 다중 조인 질의가 만족되었는지 여부를 검사하게 되는데, 이때 매트릭스 기반 시놉시스의 크기에 따라서 약간의 에러를 포함할 수 있다. 여기에서 에러란 탐지-목적 질의의 답, 즉 해당 질의를 만족했는지 여부에 대해 오답을 내리는 것으로 정의된다. 만약 매트릭스 기반 시놉시스의 크기가 조인 속성 도메인의 크기에 비해 매우 작다면 이 에러는 커지게 된다. 따라서 본 발명의 일 실시예에서는 탐지-목적 질의의 정확도를 높이기 위해서 전처리 페이즈에서 일정 수준 이상의 에러가 발생하게 된다면 두 번째 단계인 이밸류에이션 단계를 수행하여 실제 조인을 수행한 후에 탐지-목적 질의에 대한 답을 줄 수 있다.
본 발명의 실시예를 범용 질의의 경우에 적용하게 되면 실제 질의의 결과에 기여할 수 없는 투플들(이는 비성공 투플(unsuccessful tuples)로 정의됨)은 실제 조인을 수행하지 않음으로써 질의를 효과적으로 수행할 수 있다.
도 1 을 참조하면, 전처리 페이즈에서는 우선, 다중 조인 질의에 대하여 각 소스 스트림(source stream)을 노드(node)로 나타내고 조인 조건(join predicate)을 에지(edge)로 나타낸 조인 그래프(join graph)에 대하여, 조인 그래프의 특정 노드로부터 출발하여 조인 그래프의 연속적인 통과(walk)로 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스(sequence)인 '질의 통로(query walk)'를 생성한다(110 단계).
다음으로, 질의 통로를 기반으로, 질의 통로의 각 노드에 대하여 매트릭스 기반 시놉시스(matrix-based synopses)를 생성한다(120 단계). 이때 생성되는 매트릭스 기반 시놉스로는 해당 시놉시스의 엔트리(entries)에 할당되는 투플들의 수를 관리하는 윈도우 시놉시스(window synopses), 엔트리에 할당되는 투플들에 대한 주소의 리스트를 관리하는 윈도우 인덱스 시놉시스(window index synopses), 윈도우 시놉시스의 배치(batch)인 배치 시놉시스(batch synopses), 윈도우 인덱스 시놉시스의 배치인 배치 인덱스 시놉시스(batch index synopsese)의 네 가지 종류가 있다.
질의 통로의 각 조인 속성 도메인(join attribute domain)에는 해시 함수(hash function)이 주어진다. 소스 스트림이 입력되면 해시 함수로 소스 스트림의 투플을 해싱하여 윈도우 시놉시스, 윈도우 인덱스 시놉시스, 배치 시놉시스, 배치 인덱스 시놉시스를 채운다(130 단계). 즉, 윈도우 시놉시스와 배치 시놉시스는 입력되는 투플의 수를 업데이트하고, 윈도우 인덱스 시놉시스와 배치 인덱스 시놉시스는 입력되는 투플의 주소를 업데이트한다.
질의 방정식(query equation)은 질의 통로의 노드들에 대응하는 윈도우 시놉시스들의 매트릭스 곱셈 연산으로 정의되고, 배치 질의 방정식(batch query equation)은 이 질의 방정식에서 특정 스트림(새로 들어온 투플들에 해당하는 소스 스트림)에 해당하는 윈도우 시놉시스가 이 특정 스트림에 해당하는 배치 시놉시스로 대체된 질의 방정식으로 정의된다. 이러한 배치 질의 방정식을 계산하여 결과 벡터를 생성한다(140 단계). 이렇게 생성된 결과 벡터가 제로(zero)이면(150 단계), 새로 들어온 투플들은 질의를 만족하지 않는 것으로 볼 수 있다. 따라서 이 경우 이밸류에이션 페이즈는 수행되지 않는다. 그러나, 결과 벡터가 비제로(non-zero)이면(150 단계), 새로 들어온 투플들 중에는 질의를 만족하는 투플들이 존재하는 것으로 볼 수 있으므로 이밸류에이션 페이즈를 수행한다.
이밸류에이션 페이즈에서는 140 단계의 결과 벡터에 기초하여, 배치 인덱스 시놉시스와 윈도우 인덱스 시놉시스로부터 배치 질의 방정식에 대한 최종 결과 투플을 생성한다.
두 소스 스트림을 어떤 조인 속성(join attribute)으로 조인하는 조인 조건에서 해시 함수의 해시 값이 동일한 두 스트림의 투플은 버디 투플(buddy tuples)이라 정의된다 그리고 n 개의 소스 스트림을 조인하는 다중 조인 질의의 조인 그래프와 질의 통로가 주어질 때, 소스 스트림 각각의 투플들로 이루어지는 길이 n 인 시퀀스에 존재하는 모든 투플이 버디 투플일 때의 이러한 시퀀스를 완전 연결 시퀀스(complete connecting sequence)라 정의된다. 이밸류에이션 페이즈에서는 우선, 상기 140 단계에서의 배치 질의 방정식의 결과 벡터와 중간 결과 벡터(intermediate result vector)를 가지고, 백워드 이밸류에이션(backward evaluation)을 수행하여 중간 결과 벡터에서 어떠한 완전 연결 시퀀스에도 이를 수 없는 엔트리가 제거되도록 중간 결과 벡터를 리파인(refine)한다(160 단계). 160 단계는 후술할 식별 단계(Identification step)에 해당한다.
그 다음에, 리파인된 결과 벡터에 기초하여, 배치 인덱스 시놉시스와 윈도우 인덱스 시놉시스로부터 최종 결과 투플의 주소를 엔트리로 가지는 결과 인덱스 벡터를 생성한다(170 단계). 170 단계는 후술할 구체화 단계(Materialization step)에 해당한다.
이하에서, 상술한 본 발명의 실시예에 따른 다중 조인 질의 처리 방법에 관하여 보다 상세하게 설명한다. 편의상, 1 장에서 매트릭스 기반 시놉시스의 구조와 본 발명의 실시예의 프레임워크를 설명하고, 2 장에서 다중 조인 질의에 대한 전처리 페이즈와 이밸류에이션 페이즈를 설명한다.
1. 기본 구조
1.1 질의 통로(query walks)와 매트릭스 기반 시놉시스(matrix-based synopses)
다중 조인 질의는 조인 그래프(join graph)라 불리는 무방향 그래프(undirected graph)로 표현될 수 있다. 여기서, 각 소스 스트림은 조인 그래프의 노드로 표현되고, 두 노드 사이의 에지는 두 노드에 해당하는 두 소스 스트림의 조인 조건을 나타낸다. 노드의 레이블(label)은 스트림의 이름이고 에지의 레이블(label)은 조인 속성이 된다. 조인 그래프의 모든 조인 조건은 정의 1 에서 정의되는, 질의 통로(query walks)로 칭하는 시퀀스로 정렬된다.
정의 1. 질의 통로(query walks)
n 개의 소스 스트림 N G ={S 1 , S 2 ,…S n }를 가지는 n-웨이(way) 조인 질의 Q에 대한 조인 그래프 G Q = (N Q , E Q )가 주어졌을 때, 질의 통로
Figure 112011501503549-pat00025
= <v 1 e 1 v 2 e 2 e m-1 v m > (nm) 는 노드 v i N Q 와 에지 e i E Q (1≤im) 의 시퀀스이고, 여기서 노드 v 1 으로부터 출발하는 G Q 의 한번의 연속된 통과(walk)로, E Q 내의 모든 에지는 적어도 한번 방문된다.
Figure 112011501503549-pat00026
=<v 1 e 1 e k-1 v k > 는
Figure 112011501503549-pat00027
(1≤km)의 길이 k 프리픽스(prefix)를 나타낸다(즉,
Figure 112011501503549-pat00028
의 k 번째 노드까지의 sub-walk). 만일 e r-1 v r
Figure 112011501503549-pat00029
내에 있다면,
Figure 112011501503549-pat00030
내에서 쌍 (e r-1 ,v r ), 즉 에지 e r-1 과 노드 v r 의 연이은 방문은 중복(redundant)되게 된다.
도 2 는 매트릭스 기반 시놉시스의 예를 나타낸다.
도 2 에서 네 조인 조건 R.a=S.a, S.b=T.b, T.c=U.c and U.d=R.d 을 가지는 조인 그래프에 대하여,
Figure 112011501503549-pat00031
= <R a S b T c U d R'> 는 비중복(non-redundant) 질의 통로이나,
Figure 112011501503549-pat00032
= <R a S a R a S b T c U d R> 는 중복 질의 통로가 된다.
h k
Figure 112011501503549-pat00033
(1≤km) 내의 조인 속성 도메인 a k 에 대하여 m k 버켓을 가지는 해쉬 함수라 하자. 조인 그래프 G(N Q ,E Q ) 에 대한 질의 통로
Figure 112011501503549-pat00034
= <v 1 e 1 e k-1 v k e k e m-1 v m > 내의 각 노드 v k (1≤km) 에 대하여, 만일 노드 v k 가 오직 하나의 에지를 가지거나(k=1 or m) 또는 질의 통로
Figure 112011501503549-pat00035
에서 그것의 두 이웃한 에지의 조인 속성 도메인 a k-1 a k 가 동일하다면, 1×m k 벡터 시놉시스(vector synopsis) M k 가 생성된다. 노드 v k 에 해당하는 소스 스트림 S i (S i N G ) 의 투플 xM k h k (x.a k ) 번째 엔트리, 즉 M k [h k (x.a k )] 에 할당된다. 여기서 x.a k x 내의 속성 값 a k 를 나타낸다. 반면에, 조인 속성 도메인 a k-1 a k 가 상이하다면, m k-1 ×m k 매트릭스 시놉시스 M k 가 생성된다. 도메인 a k-1 a k 는 각각 M k 의 행(row) 및 열(column) 속성 도메인으로 칭할 수 있다. 노드 v k 에 대응되는 소스 스트림 S i 의 투플 y 는 엔트리 M k [h k-1 (y.a k-1 ), h k (y.a k )] 에 할당된다. 소스 스트림의 둘 또는 그 이상의 속성이 하나의 조인 조건을 표현하는데 사용될 때에는, 멀티플-키(multiple-key) 해시 함수가 사용된다.
두 소스 스트림 RS 에서의 조인 조건 R.a=S.b 에 대한 해시 함수 h 가 주어질 때, R 의 투플 xS 의 투플 y 를, 만일 x 의 해시 값과 y 의 해시 값이 동일하면, 즉 h(x.a)=h(y.b)이면, 버디 투플(buddy tuples)이라고 한다. R 의 투플과 S 의 투플은 버디 투플이 아니면 조인 조건을 만족할 수 없다. 따라서 n-웨이 조인 질의에 대한 질의 통로가 주어질 때, 각각의 투플이 별개 소스 스트림의 투플인 n 개의 버디 투플들의 집합은 질의에 대한 최종 결과 투플을 위한 후보가 될 수 있다. 이러한 집합을 완전 연결 시퀀스(complete connecting sequence)이라 부르고 다음 정의 2 에서 정의된다.
정의 2. 연결 시퀀스(Connecting sequences)
n 개의 소스 스트림 N G = {S 1 ,S 2 ,…,S n } (nm)을 가지는 n-way 조인 질의 Q 에 대한 조인 그래프 G(N Q ,E Q ) 의 질의 통로
Figure 112011501503549-pat00036
= <v 1 e 1 e k-1 v k e k e m-1 v m >가 주어질 때, ξ k (⊆N Q )가
Figure 112011501503549-pat00037
내의 개별 노드의 집합을 나타내고, c i S i ξ k 의 투플을 나타낸다고 하자.
Figure 112011501503549-pat00038
k-부분 연결 시퀀스(k-partial connecting sequence)은
Figure 112011501503549-pat00039
내의 모든 에지 e j (1≤jk-1)의 조인 조건에 대한 버디 투플 쌍을 포함하는 │ξ k 투플들 <c 1 ,c 2 ,…
Figure 112011501503549-pat00040
>의 집합이다. 완전 연결 시퀀스는 n-부분 연결 시퀀스(n-partial connecting sequence)이다.
n 개의 소스 스트림 N G = {S 1 ,S 2 ,…,S n }을 가지는 n-웨이 조인 질의 Q 에 대하여, 소스 스트림 S i (1≤in) 의 투플이 하나의 적어도 하나의 완전 연결 시퀀스의 일부일 때, 그것은 S i 의 연결 투플(connecting tuple)이라 칭한다. 해시 키 충돌로 인하여 S i 의 모든 연결 투플들이 성공적인 투플이 되지는 않는다. 따라서 질의의 최종 결과 투플은 연결 투플들이 모두 성공적인 투플들인 완전 연결 시퀀스에 의하여 얻어진다.
각 소스 스트림의 슬라이딩 윈도우 내에 존재하는 투플들의 집합을 나타내기 위해서는, 두 가지 다른 타입의 매트릭스 기반 시놉시스가 컴파일 시간(compile time)에 실제로 생성된다. 이를 윈도우 시놉시스(window synopsis (W))와 윈도우 인덱스 시놉시스(window index synopsis (W1))라 칭한다. 이들 두 매트릭스의 사이즈는 동일하지만, 윈도우 시놉시스의 엔트리는 그 엔트리에 할당되는 투플들의 수를 관리하는 반면 윈도우 인덱시스 시놉시스의 엔트리는 그 엔트리에 할당되는 투플들에 대한 주소의 리스트를 관리한다. 따라서, 윈도우 시놉시스의 엔트리 값은 그것과 페어(pair)인 윈도우 인덱스 시놉시스의 대응하는 엔트리 내의 주소 리스트의 길이와 동일하게 된다. 윈도우 인덱스 시놉시스는 이밸류에이션 페이즈에서 사용된다.
예를 들어, 도 2 에서 조인 속성 도메인 a, b, cd 가 각각 {A1, A2, A3, A4}, {01, 02,…06}, {xx, yy, zz} 및 {DA, DB, DC, DD}라 가정하자. 도 2 의 (b)는 이 도메인들의 해시 함수를 나타낸다. 각 소스 스트림의 현재 윈도우의 유효한 투플들이 도 2 의 (c)에 도시된다. 여기서 r i , s i , t i u i (1≤i≤4)는 윈도우 내의 투플의 주소를 나타낸다.
Figure 112011501503549-pat00041
= < R a S b T c U d R'>의 각 노드에 대하여, 윈도우 시놉시스와 윈도우 인덱스 시놉시스의 쌍이 도 2 의 (d)에 도시된 바와 같이 생성된다.
1.2 질의 방정식
본 발명의 실시예에 따른 다중 조인 질의 처리 방법에서는 두 가지 타입의 매트릭스 곱셈 연산을 사용한다. 이 두 가지는 다음과 같은 매트릭스 곱셈(matrix multiplication (×))과 엘리먼트-와이즈 배열 곱셈(element-wise array multiplication (
Figure 112011501503549-pat00042
))이다.
1) 매트릭스 곱셈 '×':
1×m 1 벡터 시놉시스 Xm 1 ×m 2 매트릭스 시놉시스 Y 가 주어질 때, 1×m 2 결과 벡터 Z 는 매트릭스 곱셈 Z = X×Y에 의해 다음과 같이 산출된다.
Figure 112011501503549-pat00043
, 1≤j≤m 2
2) 엘리먼트-와이즈 배열 곱셈
Figure 112011501503549-pat00044
:
1×m 벡터 시놉시스 XY 가 주어질 때, 1×m 결과 벡터 Z 는 엘리먼트-와이즈 배열 곱셈 Z = X
Figure 112011501503549-pat00045
Y에 의해 다음과 같이 산출된다.
Z[i] = X[i] × Y[i], 1≤i≤ m
질의의 최종 결과 투플의 총 수를 추정하기 위해, 질의 통로 내의 k 번째 에지 e k 를 방정식 내의 k 번째 매트릭스 곱셈으로 변환함으로써 질의 통로에 대하여 정의 3 과 같은 질의 방정식이 만들어진다.
정의 3. 질의 방정식
n 개 소스 스트림 N G ={S 1 , S 2,…, S n } 상의 n-웨이 조인 질의 Q에 대한 조인 그래프 G Q =(N Q ,E Q )의 질의 통로
Figure 112011501503549-pat00046
= <v 1 e 1 v 2 e 2 e m-1 v m > (nm) 가 주어질 때, 에지 e i 의 조인 속성 도메인의 해시 함수에 대한 버켓의 수를 m i . (1≤im)라 하자. 질의 방정식 E(
Figure 112011501503549-pat00047
)는 다음과 같이
Figure 112011501503549-pat00048
내의 노드들 v i (1≤im)의 윈도우 시놉시스 W i 상에서의 매트릭스 곱셈 연산의 시퀀스이다.
E(
Figure 112011501503549-pat00049
) = W 1 * W 2 * …* W m
여기서, W i 1×m i 벡터 또는 m i-1 ×m i 매트릭스이다.
E(
Figure 112011501503549-pat00050
) 내에서 k 번째 곱셈은, 만일 W k+1 이 2 차원 시놉시스라면, 매트릭스 곱셈 연산(×)이 되고, 그렇지 않다면 엘리먼트-와이즈 배열 곱셈 연산(
Figure 112011501503549-pat00051
)이 된다. E(
Figure 112011501503549-pat00052
)의 k 번째 윈도우 시놉시스 W k (km)까지의 곱셈 연산은 1×m k 부분 결과 벡터 V k 를 결과로 낳는다. V k 의 속성 도메인은 질의 통로의 k 번째 에지 e k 의 속성 도메인 a k 이다. V k 의 각 엔트리는 그 엔트리로 해싱된 k-부분 연결 시퀀스의 수를 유지한다. 최종 결과 벡터 V m 의 모든 엔트리들의 합은 질의의 완전 연결 시퀀스의 총 수이고, 그것은 또한 질의의 최종 결과 투플의 최대 가능한 수이다. 질의 방정식의 이밸류에이션 코스트(evaluation cost)은 기본적으로 그것의 질의 통로의 경로에 달려 있다. 이 코스트를 최소화하기 위해, 최적의 질의 통로가 찾아지는 것이 바람직하다. 질의 방정식의 코스트는 방정식 내의 모든 곱셈 연산의 비용의 합이 된다. 매트릭스 곱셈 연산의 복잡도는 두 오퍼랜드(operand)의 사이즈에 달려 있다. 질의 통로의 각 노드의 시놉시스의 크기는 컴파일 시간에 결정되기 때문에, 런타임 부담 없이 모든 가능한 질의 통로를 열거함으로써 최적의 질의 통로가 찾아질 수 있다.
2. 2-페이즈 질의 처리
2.1 전처리 페이즈(Preprocessing Phase)
문헌 [Lukasz Golab and M. Tamer Ozsu, Processing sliding window multi-joins in continuous queries over data streams, sources In VLDB, 2003.]에 제시된 슬라이딩 윈도우 조인 연산은 무한한 데이터 스트림에서의 조인 연산을 평가하는 전형적인 방법이다. 이는 세 개의 태스크로 구성되는데, 삽입(inserting), 조사(probing), 그리고 제거(invalidating)이다. 두 오퍼랜드 스트림 R 1 R 2 상의 조인 연산이 주어질 때, R 1 의 새로운 투플 e 1 이 도착할 때마다, 삽입 태스크는 우선 e 1 R 1 의 슬라이딩 윈도우에 추가한다. 그 다음에, e 1 R 2 의 윈도우 내에 있는 투플 사이에서 조사 태스크가 수행된다. R 2 내의 투플 e 2 의 조인 속성 값이 e 1 의 조인 속성 값과 동일하다면, 두 투플 e 1 e 2 는 조인 결합되어 조인 연산의 결과가 된다. 마지막으로, 제거 태스크는 R 1 내의 모든 오래된(old-dated) 투플들을 제거한다. 이 스텝들은 R 2 의 새로운 투플이 도착할 때 대칭적으로 수행된다.
본 발명의 실시예에서는, 다수의 연이은 소스 투플들이, 소스 스트림에 대한 삽입, 조사, 및 제거 오퍼레이션의 단위인 '배치(batch)'를 형성한다. 하나의 배치의 최소 사이즈는 단일 투플이지만, 배치의 사이즈는 현재 워크로드(workload)에 따라서 조정될 수 있다. 각 소스 스트림의 새로운 배치의 새롭게 유입되는 투플들에 관한 정보는 별도로 관리된다. 이러한 목적을 위하여, 질의 통로의 각 노드에 대하여 배치 시놉시스(batch synopsis (B))와 배치 인덱스 시놉시스(batch index synopsis (B1))의 쌍이 추가적으로 생성된다. 배치 시놉시스와 배치 인덱스 시놉시스의 구조는 각각 윈도우 시놉시스와 윈도우 인덱스 시놉시스의 구조와 동일하다. 조인 그래프 G(N Q ,E Q )의 질의 통로
Figure 112011501503549-pat00053
가 주어질 때, 소스 스트림 S x (∈N Q )의 새로운 배치 ΔS x 에 대한 질의 방정식 E(
Figure 112011501503549-pat00054
)를 계산하기 위해서, E(
Figure 112011501503549-pat00055
)의 윈도우 시놉시스들 중에서, 스트림 S x 에 해당하는 윈도우 시놉시스들이 그에 해당하는 배치 시놉시스들로 대체된다. 이러한 수정된 질의 방정식을 배치 질의 방정식(batched query equation) E(
Figure 112011501503549-pat00056
│ΔS x ) 라 칭한다. 배치 질의 방정식 E(
Figure 112011501503549-pat00057
│ΔS x )의 계산을 위하여 다음의 세 태스크가 차례로 수행된다. (1) 삽입(inserting) : 새로운 배치 ΔS x 의 새로 유입되는 투플에 따라서, 스트림 S x 에 대한 네 가지 타입의 모든 시놉시스들 W, WI, BBI 를 업데이트한다; (2) 매트릭스 곱셈(matrix multiplying) : 배치 질의 방정식 E(
Figure 112011501503549-pat00058
│ΔS x ) 를 계산한다; (3) 제거(Invalidating) : 스트림 S x 에 해당하는 윈도우 인덱스 시놉시스 내에서 스트림 S x 의 마지막 배치의 윈도우를 벗어난 투플들을 제거하고 그에 따라 윈도우 인덱스 시놉시스의 쌍인 윈도우 시놉시스의 엔트리를 업데이트한다.
도 3 은 질의 방정식의 계산을 나타낸다. 도 2 에서의 질의 통로
Figure 112011501503549-pat00059
=<R a S b T c U d R'>에 대하여, 도 3 의 새로운 배치 ΔR 의 배치 질의 방정식은 E(
Figure 112011501503549-pat00060
ΔR) = B R ×W S ×W T ×W U
Figure 112011501503549-pat00061
B R' 가 된다. ΔR 의 새로운 투플들에 따라 스트림 R 의 배치 시놉시스 B R B R' 이 채워진다. 첫 번째 매트릭스 곱셈 B R ×W S 은 결과 벡터 V 2 =[1,1]을 생성한다. 이 결과 벡터는 두 개의 2-부분 연결 시퀀스가 발견됨을 보여준다. 이들 2-부분 연결 시퀀스는 W S 의 열(column) 속성 도메인 'b' 의 해시 함수 h b (x)에 의해 어드레스된다. 유사하게, 그 다음의 매트릭스 곱셈 V2×WT 및 V3×WU 는 각각 V 3 =[3,1,0] 및 V 4 =[0,1,1,0]를 생성한다. 마지막으로, 엘리먼트-와이즈 배열 곱셈 V4
Figure 112011501503549-pat00062
BR' 는 최종 결과 벡터 V5 = [0,1,0,0]를 생성한다. 이것은 ΔR 의 새로운 투플들이 하나의 완전 연결 시퀀스를 생성함을 나타낸다.
도 4 는 n-웨이 조인 질의를 위한 전처리 페이즈의 수도 코드(pseudo code)를 나타낸다.
만일 E(
Figure 112011501503549-pat00063
│ΔS x ) 에 의해 얻어지는 최종 결과 벡터의 모든 엔트리가 제로(zero)이면, ΔS x 내에는 질의 Q 를 만족하는 소스 투플이 존재하지 않는다는 것을 의미한다. 만일 최종 결과 벡터의 엔트리가 제로가 아니면, ΔS x 내의 어떤 투플들이 Q 를 만족할 수도 있지만 결과 벡터가 false positive error 를 포함할 수도 있다. false positive error 에는 세 가지 다른 이유가 있다. 첫 번째는 해시 함수의 충돌에 기인한다. 이러한 타입의 효과를 측정하기 위해서, 윈도우 또는 배치 시놉시스 K 의 패킹 밀도(packing density) ρ 가 다음과 같이 정의될 수 있다.
Figure 112011501503549-pat00064
여기서, │K│K 로 해싱되는 투풀의 수를 나타내고, K K 내의 엔트리의 수를 나타낸다. 해시 인덱스에서처럼 윈도우 또는 배치 시놉시스의 패킹 밀도는 이러한 타입의 에러율에 영향을 미친다. 따라서 미리 정의된 임계치 ε 이 주어지고, 배치 질의 방정식 내의 윈도우 또는 배치 시놉시스의 평균 패킹 밀도가 ε 보다 크게 된다면, 탐지-목적 질의의 정확도를 보장하기 위해서 이밸류에이션 페이즈(evaluation phase)가 추가적으로 수행될 수 있다. 두번째 타입의 에러는 배치 프로세싱에 기인한다. 배치는 제거(invalidating)의 단위이기 때문에, 소스 스트림의 슬라이딩 윈도우는 윈도우를 벗어난 몇 개의 투플들을 포함할 수 있다. 가장 오래된 배치는 아직 윈도우 범위 내에 있는 유효한 투플들의 정보를 포함하고 있기 때문에 삭제되지 않는다. 따라서, 윈도우 시놉시스의 엔트리는 몇몇의 false positive count 를 포함할 수 있다. 배치의 사이즈가 커질수록 이러한 타입의 에러율은 커진다. 마지막 타입의 에러는 질의 통로에서 조인 그래프의 노드가 한번 이상 방문될 때 발생한다. 이것은 동일한 소스 스트림의 윈도우 시놉시스가 한번 이상 곱해지도록 만든다. 이러한 타입의 에러는 중복 곱셈 에러(duplicated multiplication error)라 칭한다. 단일 경로 조인 질의는 이러한 에러가 발생하지 않는 반면, 멀티-웨이 스타-조인 질의(multi-way star-join query)와 사이클릭 조인 질의(cyclic join query)는 이러한 에러가 발생할 수 있다.
2.2 이밸류에이션 페이즈(Evaluation Phase)
두 번째 페이즈에서는 배치 질의 방정식 E(
Figure 112011501503549-pat00065
│ΔS x )의 최종 결과 투플의 정확한 집합을 생성한다. 두 번째 페이즈는 식별(dentification)과 구체화(materialization)의 두 가지 단계로 나누어진다. 식별 단계에서는 어떤 완전 연결 시퀀스에도 이를 수 없는 엔트리들을 버리도록 E(
Figure 112011501503549-pat00066
│ΔS x )의 모든 중간 결과 벡터의 엔트리들을 리파인(refine)한다. 그 다음에, 구체화 단계에서는, 리파인된 중간 결과 벡터들에 기초하여 각 소스 스트림의 성공적인 투플들만 연결함으로써 ΔS x 에 대한 최종 결과 투플들을 생성한다.
2.2.1 식별 단계(Identification step)
첫 번째 단계에서 배치 질의 방정식의 포워드 이밸류에이션(forward evaluation)에 의해 얻어지는 결과 벡터 V k (2≤k≤m)의 비제로(non-zero) 엔트리는 그 엔트리로 해싱되는 k-부분 연결 시퀀스의 수를 나타낸다. 모든 k-부분 연결 시퀀스가 완전 연결 시퀀스가 되지는 않는다. 최종 결과 벡터 V m 의 엔트리들은 완전 연결 시퀀스의 수를 포함한다. V m 에 기초하여, 각 중간 결과 벡터 V k (1≤km-1)는 배치 질의 방정식의 백워드 이밸류에이션(backward evaluation)에 의하여 V m-1 로부터 V 2 로 하나씩 차례로 리파인된다. 1×m k 결과 벡터 V k 1×m k 벡터 W k+1 상에서의 엘리먼트-와이즈 오퍼레이션 V k
Figure 112011501503549-pat00067
W k+ 1
Figure 112011501503549-pat00068
(1≤km-1)에 대하여, 만일 리파인된 결과 벡터
Figure 112011501503549-pat00069
i 번째 엔트리
Figure 112011501503549-pat00070
가 0 이 아니라면, V k i 번째 엔트리 V k [i] 에 있는 k-부분 연결 시퀀스는 적어도 하나의 완전 연결 시퀀스를 생성할 수 있다. 따라서, 1×m k 결과 벡터 V k
Figure 112011501503549-pat00071
Figure 112011501503549-pat00072
(1≤im k )로 할당함으로써
Figure 112011501503549-pat00073
로 리파인된다. 반면에, 1×m k 결과 벡터 V k m k ×m k+1 매트릭스 W k+ 1 상의 매트릭스 곱셈 연산 V k ×W k+ 1
Figure 112011501503549-pat00074
에 대하여, V k 의 엔트리 V k [i]에 있는 k-부분 연결 시퀀스는, 만일 WI k+1 의 i 번째 행의 적어도 하나의 엔트리에 하나 이상의 연결 투플이 존재한다면, 적어도 하나의 완전 연결 시퀀스를 생성할 수 있다. 이러한 케이스는 동일한 값의 j (1≤jm k+1 )에 대하여 비제로 엔트리 W k+1 [i,j] 및 비제로 엔트리
Figure 112011501503549-pat00075
의 적어도 하나의 쌍이 존재할 때 발생한다. 따라서, 1×m k 벡터 V k
Figure 112011501503549-pat00076
W k+1 i 번째 행의 이너 프로덕트(inner product)를
Figure 112011501503549-pat00077
로 할당함으로써
Figure 112011501503549-pat00078
로 리파인된다.
리파인된 벡터
Figure 112011501503549-pat00079
에 대하여, 곱셈 V k * W k+1 의 결과 벡터 V k 는 다음 수식에 의하여
Figure 112011501503549-pat00080
로 리파인된다.
Figure 112011501503549-pat00081
도 5 는 도 2 의 예에 대하여 식별 단계가 어떻게 수행되는지를 나타낸다. Eq(1)에 의하여, V 5 [i]가
Figure 112011501503549-pat00082
로 할당되는 한편, Eq(2)에 의하여
Figure 112011501503549-pat00083
= [0,1,0]가 생성된다. 그 다음에, V 2 V 1 이 각각
Figure 112011501503549-pat00084
Figure 112011501503549-pat00085
에 의하여 리파인된다. 도 6 은 식별 단계의 상세한 수도 코드를 나타낸다.
2.2.2 구체화 단계(Materialization step)
리파인된 결과 벡터 E(
Figure 112011501503549-pat00086
ΔS x )에 기초하여, 구체화 단계에서는 명시적으로 질의 Q 의 최종 결과 투플을 구체화한다. 이러한 목적을 위하여, 질의 인덱스 방정식(query index equation) EI(
Figure 112011501503549-pat00087
)이 정의 4 에서 추가적으로 정의된다. 기본적으로, 질의 인덱스 방정식을 생성하기 위해서 E(
Figure 112011501503549-pat00088
)의 윈도우 시놉시스들이 그들과 페어 관계의 윈도우 인덱스 시놉시스들로 각각 대체된다. 그러나, 만일 질의 통로
Figure 112011501503549-pat00089
가 중복된 에지 및 노드의 쌍을 포함한다면, 모든 중복된 쌍의 윈도우 인덱스 시놉시스는 EI(
Figure 112011501503549-pat00090
)에 포함되지 않는다.
정의 4. 질의 인데스 방정식
질의 통로
Figure 112011501503549-pat00091
=<v 1 e 1 e k-1 v k e k e m-1 v m >의 질의 방정식 E(
Figure 112011501503549-pat00092
)=W 1 *W 2 ,…*W m 이 주어질 때,
Figure 112011501503549-pat00093
내의 모든 중복되는 에지와 노드의 쌍을 제거함으로써 비중복 통로
Figure 112011501503549-pat00094
=<v 1 e 1 e k-1 v k e k e m-1 v l >(lm)가 생성된다.
Figure 112011501503549-pat00095
의 질의 방정식 E(
Figure 112011501503549-pat00096
)은 E(
Figure 112011501503549-pat00097
) 내의 윈도우 시놉시스들을 그와 페어가 되는 윈도우 인덱스 시놉시스들 각각으로 대체함으로써
Figure 112011501503549-pat00098
의 질의 인덱스 방정식 EI(
Figure 112011501503549-pat00099
)로 변환된다. 추가적으로, E(
Figure 112011501503549-pat00100
) 내의 모든 곱셈 연산은 다음과 같이 열거(enumeration) 연산(
Figure 112011501503549-pat00101
)으로 대체된다.
Figure 112011501503549-pat00102
배치 질의 방정식과 마찬가지로, 소스 스트림 S x 의 새로운 배치 ΔS x 를 이밸류에이션하기 위해서, 스트림 S x 에 대응하는 모든 윈도우 인덱스 시놉시스가 그것의 대응하는 배치 인덱스 시놉시스로 대체된다. 이렇게 수정된 질의 방정식을 배치 질의 인덱스 방정식(batched query index equation) EI(
Figure 112011501503549-pat00103
│ΔS x )이라 칭한다.
Figure 112011501503549-pat00104
Figure 112011501503549-pat00105
의 에지 e k-1 에 대응하는 조인 조건의 리파인된 결과 벡터라 하자.
Figure 112011501503549-pat00106
일 때에만, 첫번째 인덱스 시놉시스의 i 번째 엔트리가 적어도 하나의 연결 투플을 가진다. 따라서, 만일
Figure 112011501503549-pat00107
이라면, 첫번째 결과 인덱스 시놉시스 RI 1 EI(
Figure 112011501503549-pat00108
) 내의 첫번째 시놉시스의 i 번째 엔트리를 복사함으로써 생성된다. 궁극적으로, 배치 질의 인덱스 방정식 EI(
Figure 112011501503549-pat00109
│ΔS x )은 다음과 같이 표현된다.
Figure 112011501503549-pat00110
EI(
Figure 112011501503549-pat00111
│ΔS x ) 내의 각 열거 오퍼레이션
Figure 112011501503549-pat00112
은 다음 두 가지 타입, 즉 연관(concatenation)(
Figure 112011501503549-pat00113
) 및 셀프-필터링(self-filtering)(
Figure 112011501503549-pat00114
) 중 하나이다.
Figure 112011501503549-pat00115
여기서, RI k 벡터는 (k-1)번째 열거 오퍼레이션의 결과 인덱스 벡터를 나타낸다.
m a 결과 인덱스 벡터 RI k-1 및 윈도우 또는 배치 인덱스 시놉시스 H k (2≤kl)가 주어질 때,
Figure 112011501503549-pat00116
일 때에만, 연관 오퍼레이션
Figure 112011501503549-pat00117
가 결과 인덱스 벡터 RI k 를 생성한다. 각 엔트리 RI k [i]는 다음과 같이, H k i 번째 열의 각 엔트리 내의 연결 투플들의 집합과 RI k-1 의 그에 대응하는 엔트리 내의 부분 결과 투플들의 집합 사이의 조인 결과를 유지한다.
Figure 112011501503549-pat00118
여기서,
Figure 112011501503549-pat00119
는 속성 도메인 a 상에서의 통상적인 조인 연산을 나타낸다.
최초 질의 통로
Figure 112011501503549-pat00120
의 중복된 페어가 제거되면, EI(
Figure 112011501503549-pat00121
│ΔS x ) 내의 윈도우 또는 배치 인덱스 시놉시스의 사이즈는 균일하게 조정되지 않을 수 있다. 다시 말하면, EI(
Figure 112011501503549-pat00122
│ΔS x ) (1≤kl) 내에서 결과 인덱스 벡터 RI k-1 의 열 속성 도메인이 그 다음의 윈도우 또는 배치 인덱스 시놉시스 H k 의 에지 e k- 1 의 조인 속성 도메인과 동일하지 않게 된다. 따라서, 이러한 케이스에서는, 연결(concatenation) 오퍼레이션을 수행하기 전에, 부가적인 재할당(reassignment) 오퍼레이션이 요구된다. 재할당 오퍼레이션은 그 다음의 윈도우 또는 배치 인덱스 시놉시스 H k 의 에지 e k- 1 의 조인 속성 도메인의 해시 함수에 대하여 부분 결과 투플을 재해시(rehash)하기 위한 것이다.
m a 결과 인덱스 벡터 RI k-1 및 윈도우 또는 배치 인덱스 시놉시스 Hk(2≤k≤l)가 주어질 때, 셀프-필터링 오퍼레이션
Figure 112011501503549-pat00123
EI(
Figure 112011501503549-pat00124
│ΔS x )의 (k-1)번째 조인 조건을 선택 조건으로서 수행한다. 다시 말하면, 각 엔트리 RI k-1 [i](1≤im a )의 부분 결과 투플들 중에서, 조인 속성을 만족하지 않는 투플들을 제거한다.
도 5 에 도시된 예에 대하여 구체화(materialization) 단계를 실행하기 위해서, 처음의 세 열거(enumeration) 오퍼레이션은 연결(concatenation) 오퍼레이션이 된다. 왜냐하면 v 4 까지의 모든 노드와 에지는 처음으로 방문되기 때문이다. 그러나, 마지막 열거 오퍼레이션은 셀프-필터링 오퍼레이션이 된다. 왜냐하면 조인 조건 U.d=R.d에 대한 에지 e 4 는 처음 방문되지만 스트림 R에 대응하는 노드 v 5 는 질의 통로에서 방문되었기 때문이다. 도 7 은 배치 질의 인덱스 방정식
Figure 112011501503549-pat00125
가 어떻게 이밸류에이션되는지를 나타낸다. 도 7 을 참조하면, 배치 질의 인덱스 방정식을 수행하여 결과 인덱스 벡터 RI k (1≤k≤5)가 생성되고, 이들 결과 인덱스 벡터는 최종 결과 투플의 주소를 엔트리로 가진다. 도 8a 와 도 8b 는 구체화 단계의 자세한 수도 코드를 나타낸다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (18)

  1. 컴퓨터 네트워크 내에서 컴퓨터로 구현되는 다중 조인 질의 처리 방법에 있어서,
    (a) 다중 조인 질의에 대하여 각 소스 스트림을 노드로 나타내고 조인 조건을 에지로 나타낸 조인 그래프에 대하여, 특정 노드로부터 출발하여 상기 조인 그래프의 연속된 통과로 상기 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 상기 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스인 질의 통로를 생성하는 단계;
    (b) 상기 질의 통로를 기반으로 각 노드에 대하여 매트릭스 기반 시놉시스를 생성하는 단계-여기서, 상기 매트릭스 기반 시놉시스는 엔트리에 할당되는 투플들의 수를 관리하는 윈도우 시놉시스, 엔트리에 할당되는 투플들에 대한 주소의 리스트를 관리하는 윈도우 인덱스 시놉시스, 상기 윈도우 시놉시스의 배치(batch)인 배치 시놉시스, 상기 윈도우 인덱스 시놉시스의 배치인 배치 인덱스 시놉시스를 포함함;
    (c) 상기 질의 통로의 각 조인 속성 도메인에 대한 해시 함수가 주어질 때, 소스 스트림이 입력되면 상기 소스 스트림의 투플을 상기 해시 함수로 해싱하여 상기 윈도우 시놉시스, 상기 윈도우 인덱스 시놉시스, 상기 배치 시놉시스, 상기 배치 인덱스 시놉시스를 채우는 단계;
    (d) 질의 방정식이 상기 질의 통로의 노드들에 대응하는 윈도우 시놉시스들의 매트릭스 곱셈 연산으로 정의되고, 배치 질의 방정식이 상기 질의 방정식에서 특정 스트림에 해당하는 윈도우 시놉시스가 상기 특정 스트림에 해당하는 배치 시놉시스로 대체된 질의 방정식으로 정의될 때, 상기 배치 질의 방정식을 계산하여 결과 벡터를 생성하는 단계; 및
    (e) 상기 결과 벡터에 기초하여, 상기 배치 인덱스 시놉시스와 상기 윈도우 인덱스 시놉시스로부터 상기 다중 조인 질의에 대한 결과 투플을 생성하는 단계를 포함하고,
    상기 (a) 내지 (e) 단계는, 상기 컴퓨터 네트워크 내의 프로세서에 의하여 수행되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  2. 제 1 항에 있어서, 상기 (b) 단계에서,
    상기 질의 통로의 각 노드에 대하여, 노드가 하나의 에지를 가지거나 노드의 두 이웃한 에지의 조인 속성 도메인이 동일한 경우 해당 해시 함수의 버켓 수만큼의 엔트리를 가지는 벡터 시놉시스가 생성되고, 노드의 이웃한 에지의 조인 속성 도메인이 상이한 경우 해당 두 해시 함수의 각 버켓 수에 대응하는 행과 열을 가지는 매트릭스 시놉시스가 생성되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  3. 제 1 항에 있어서, 상기 (e) 단계는,
    (e1) 두 소스 스트림을 조인 속성으로 조인하는 조인 조건에서 해시 함수의 해시 값이 동일한 두 스트림의 투플을 버디 투플이라 정의하고, n 개의 소스 스트림을 조인하는 다중 조인 질의의 조인 그래프와 질의 통로가 주어질 때 소스 스트림 각각의 투플들로 이루어지는 길이 n 인 시퀀스에 존재하는 모든 투플이 버디 투플일 때의 상기 시퀀스를 완전 연결 시퀀스라 정의할 때, 상기 배치 질의 방정식의 상기 결과 벡터 및 중간 결과 벡터를 가지고, 백워드 이밸류에이션(backward evaluation)을 수행하여 상기 중간 결과 벡터에서 어떠한 완전 연결 시퀀스에도 이를 수 없는 엔트리가 제거되도록 상기 중간 결과 벡터를 리파인(refine)하는 단계; 및
    (e2) 상기 리파인된 결과 벡터에 기초하여, 상기 배치 인덱스 시놉시스와 상기 윈도우 인덱스 시놉시스로부터 상기 결과 투플의 주소를 엔트리로 가지는 결과 인덱스 벡터를 생성하는 단계를 포함하는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  4. 제 2 항에 있어서,
    상기 질의 통로는 다음과 같이 정의되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
    n 개의 소스 스트림 N G ={S 1 , S 2 ,…S n }를 가지는 n-웨이(way) 조인 질의 Q 에 대한 조인 그래프 G Q = (N Q , E Q )가 주어질 때, 질의 통로
    Figure 112011501503549-pat00126
    = <v 1 e 1 v 2 e 2 e m-1 v m > (nm) 는 노드 v i N Q 와 에지 e i E Q (1≤im) 의 시퀀스이고, 여기서 노드 v 1 으로부터 출발하는 G Q 의 한번의 연속된 통과로, E Q 내의 모든 에지는 적어도 한번 방문됨.
  5. 제 4 항에 있어서,
    상기 벡터 시놉시스와 상기 매트릭스 시놉시스의 생성은 다음과 같이 이루어지는 것을 특징으로 하는 다중 조인 질의 처리 방법.
    h k
    Figure 112011501503549-pat00127
    (1≤km) 내의 조인 속성 도메인 a k 에 대하여 m k 버켓을 가지는 해쉬 함수라 할 때, 상기 질의 통로 내의 각 노드 v k (1≤km) 에 대하여, 만일 노드 v k 가 오직 하나의 에지를 가지거나(k=1 or m) 또는 상기 질의 통로
    Figure 112011501503549-pat00128
    에서 그것의 두 이웃한 에지의 조인 속성 도메인 a k-1 a k 가 동일한 경우 1×m k 벡터 시놉시스 M k 가 생성되고, 조인 속성 도메인 a k-1 a k 가 상이하다면, m k-1 ×m k 매트릭스 시놉시스 M k 가 생성됨.
  6. 제 5 항에 있어서,
    상기 소스 스트림의 투플의 상기 벡터 시놉시스 또는 상기 매트릭스 시놉시스에의 할당은 다음과 같이 이루어지는 것을 특징으로 하는 다중 조인 질의 처리 방법.
    상기 벡터 시놉시스 M k 에 대하여, 노드 v k 에 해당하는 소스 스트림 S i (S i N G )의 투플 xM k h k (x.a k ) 번째 엔트리, 즉 M k [h k (x.a k )] 에 할당되고(여기서 x.a k x 내의 속성 값 a k 를 나타냄), 상기 매트릭스 시놉시스 M k 에 대하여, 노드 v k 에 대응되는 소스 스트림 S i 의 투플 y 는 엔트리 M k [h k-1 (y.a k-1 ), h k (y.a k )] 에 할당됨.
  7. 제 2 항에 있어서,
    상기 매트릭스 곱셈 연산은 다음과 같이 정의되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
    1×m 1 벡터 시놉시스 Xm 1 ×m 2 매트릭스 시놉시스 Y 가 주어질 때, 1×m 2 결과 벡터 Z 는 매트릭스 곱셈 Z = X×Y에 의해 다음과 같이 산출되고,
    Figure 112011501503549-pat00129
    , 1≤j≤m 2
    1×m 벡터 시놉시스 XY 가 주어질 때, 1×m 결과 벡터 Z 는 엘리먼트-와이즈 배열 곱셈(element-wise array multiplication) Z = X
    Figure 112011501503549-pat00130
    Y 에 의해 다음과 같이 산출됨
    Z[i] = X[i] × Y[i], 1≤i≤ m
  8. 제 7 항에 있어서,
    상기 질의 방정식은 다음과 같이 정의되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
    n 개 소스 스트림 N G ={S 1 , S 2, …, S n } 상의 n-웨이 조인 질의 Q에 대한 조인 그래프 G Q =(N Q ,E Q )의 질의 통로
    Figure 112011501503549-pat00131
    = <v 1 e 1 v 2 e 2 e m-1 v m > (nm) 가 주어지고, 에지 e i 의 조인 속성 도메인의 해시 함수에 대한 버켓의 수를 m i . (1≤im)라 할 때, 질의 방정식 E(
    Figure 112011501503549-pat00132
    )는 다음과 같이
    Figure 112011501503549-pat00133
    내의 노드들 v i (1≤im)의 윈도우 시놉시스 W i 상에서의 매트릭스 곱셈 연산의 시퀀스임.
    E(
    Figure 112011501503549-pat00134
    ) = W 1 * W 2 * …* W m
    여기서, W i 1×m i 벡터 시놉시스 또는 m i-1 ×m i 매트릭스 시놉시스이며, E(
    Figure 112011501503549-pat00135
    ) 내에서 k 번째 곱셈 연산은, 만일 W k+1 이 2 차원 시놉시스라면, 매트릭스 곱셈(×)이 되고, 그렇지 않다면 엘리먼트-와이즈 배열 곱셈 (
    Figure 112011501503549-pat00136
    )이 됨.
  9. 제 3 항에 있어서,
    상기 (e1) 단계에서 k-부분 연결 시퀀스와 상기 완전 연결 시퀀스는 다음과 같이 정의되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
    n 개의 소스 스트림 N G = {S 1 ,S 2 ,…,S n } (nm)을 가지는 n-way 조인 질의 Q 에 대한 조인 그래프 G(N Q ,E Q )의 질의 통로
    Figure 112011501503549-pat00137
    = <v 1 e 1 e k-1 v k e k e m-1 v m >가 주어질 때, ξ k (⊆N Q )가
    Figure 112011501503549-pat00138
    (
    Figure 112011501503549-pat00139
    =<v 1 e 1 e k-1 v k >는
    Figure 112011501503549-pat00140
    (1≤km)의 길이 k 프리픽스(prefix)를 나타냄) 내의 개별 노드의 집합을 나타내고, c i S i ξ k 의 투플을 나타낸다고 할 때,
    Figure 112011501503549-pat00141
    k-부분 연결 시퀀스(k-partial connecting sequence)는
    Figure 112011501503549-pat00142
    내의 모든 에지 e j (1≤jk-1)의 조인 조건에 대한 버디 투플 쌍을 포함하는 │ξ k 투플들 <c 1 ,c 2 ,…
    Figure 112011501503549-pat00143
    >의 집합이고, 완전 연결 시퀀스는 n-부분 연결 시퀀스(n-partial connecting sequence)임.
  10. 제 3 항에 있어서, 상기 (e1) 단계에서,
    상기 질의 방정식이 W 1 * W 2 * …* W m 일 때, 상기 중간 결과 벡터를 V k (2≤k≤m)라 하고, 상기 리파인된 중간 결과 벡터를
    Figure 112011501503549-pat00144
    라 할 때,
    Figure 112011501503549-pat00145
    는 다음 수학식에 따라 구해지는 것을 특징으로 하는 다중 조인 질의 처리 방법.
    Figure 112011501503549-pat00146

    여기서, 1×m 1 벡터 시놉시스 Xm 1 ×m 2 매트릭스 시놉시스 Y 가 주어질 때, 매트릭스 곱셈 Z = X×Y는 다음과 같이 정의되고,
    Figure 112011501503549-pat00147
    , 1≤j≤m 2
    1×m 벡터 시놉시스 XY 가 주어질 때, 엘리먼트-와이즈 배열 곱셈(element-wise array multiplication) Z = X
    Figure 112011501503549-pat00148
    Y는 다음과 같이 정의됨
    Z[i] = X[i] × Y[i], 1≤i≤ m
  11. 제 3 항에 있어서, 상기 (e2) 단계는,
    상기 질의 방정식의 윈도우 인덱스 시놉시스들을 각각 대응하는 윈도우 인덱스 시놉시스로 대체하여 질의 인덱스 방정식을 생성하고, 상기 질의 인덱스 방정식에서 상기 특정 소스 스트림에 해당하는 윈도우 인덱스 시놉시스를 상기 특정 스트림에 해당하는 배치 인덱스 시놉시스로 대체하여 배치 질의 인덱스 방정식을 생성하고, 상기 배치 질의 인덱스 방정식을 이용하여 상기 결과 투플의 주소를 엔트리로 가지는 결과 인덱스 벡터를 생성하는 단계를 포함하는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 기재된 다중 조인 질의 처리 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  13. 컴퓨터 네트워크 내에서 컴퓨터로 구현되는 다중 조인 질의 처리 방법에 있어서,
    (a) 다중 조인 질의에 대하여 각 소스 스트림을 노드로 나타내고 조인 조건을 에지로 나타낸 조인 그래프에 대하여, 특정 노드로부터 출발하여 상기 조인 그래프의 연속된 통과로 상기 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 상기 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스인 질의 통로를 생성하는 단계;
    (b) 상기 질의 통로를 기반으로 각 노드에 대하여 매트릭스 기반 시놉시스를 생성하는 단계-여기서, 상기 매트릭스 기반 시놉시스는 엔트리에 할당되는 투플들의 수를 관리하는 윈도우 시놉시스, 엔트리에 할당되는 투플들에 대한 주소의 리스트를 관리하는 윈도우 인덱스 시놉시스, 상기 윈도우 시놉시스의 배치(batch)인 배치 시놉시스, 상기 윈도우 인덱스 시놉시스의 배치인 배치 인덱스 시놉시스를 포함함;
    (c) 상기 질의 통로의 각 조인 속성 도메인에 대한 해시 함수가 주어질 때, 소스 스트림이 입력되면 상기 소스 스트림의 투플을 상기 해시 함수로 해싱하여 상기 윈도우 시놉시스, 상기 윈도우 인덱스 시놉시스, 상기 배치 시놉시스, 상기 배치 인덱스 시놉시스를 채우는 단계; 및
    (d) 질의 방정식이 상기 질의 통로의 노드들에 대응하는 윈도우 시놉시스들의 매트릭스 곱셈 연산으로 정의되고, 배치 질의 방정식이 상기 질의 방정식에서 특정 스트림에 해당하는 윈도우 시놉시스가 상기 특정 스트림에 해당하는 배치 시놉시스로 대체된 질의 방정식으로 정의될 때, 상기 배치 질의 방정식을 계산하여 결과 벡터를 생성하는 단계를 포함하고,
    상기 (a) 내지 (d) 단계는, 상기 컴퓨터 네트워크 내의 프로세서에 의하여 수행되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  14. 제 13 항에 있어서, 상기 (b) 단계에서,
    상기 질의 통로의 각 노드에 대하여, 노드가 하나의 에지를 가지거나 노드의 두 이웃한 에지의 조인 속성 도메인이 동일한 경우 해당 해시 함수의 버켓 수만큼의 엔트리를 가지는 벡터 시놉시스가 생성되고, 노드의 이웃한 에지의 조인 속성 도메인이 상이한 경우 해당 두 해시 함수의 각 버켓 수에 대응하는 행과 열을 가지는 매트릭스 시놉시스가 생성되는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  15. 컴퓨터 네트워크 내에서 컴퓨터로 구현되는 다중 조인 질의 처리 방법에 있어서,
    다중 조인 질의에 대하여 각 소스 스트림을 노드로 나타내고 조인 조건을 에지로 나타낸 조인 그래프에 대하여, 특정 노드로부터 출발하여 상기 조인 그래프의 연속된 통과로 상기 조인 그래프에 속한 모든 에지가 적어도 한번 방문되도록 상기 조인 그래프에 속한 노드와 에지를 정렬한 시퀀스인 질의 통로가 정의되고, 상기 질의 통로의 각 노드에 대하여 매트릭스 기반 시놉시스가 정의될 때,
    (a) 입력되는 소스 스트림에 따라 상기 매트릭스 기반 시놉시스를 채우고, 상기 질의 통로의 노드들에 대응하는 매트릭스 기반 시놉시스들의 매트릭스 곱셈 연산으로 정의되는 질의 방정식을 계산하여 결과 벡터를 생성하는 단계; 및
    (b) 상기 결과 벡터에 기초하여, 상기 매트릭스 기반 시놉시스들로부터 상기 다중 조인 질의에 대한 결과 투플을 생성하는 단계를 포함하고,
    상기 (a) 내지 (b) 단계는, 상기 컴퓨터 네트워크 내의 프로세서에 의하여 수행되는 것을 특징으로 하는 다중 조인 질의 처리 방법..
  16. 제 15 항에 있어서,
    상기 매트릭스 기반 시놉시스는 엔트리에 할당되는 투플들의 수를 관리하는 윈도우 시놉시스, 엔트리에 할당되는 투플들에 대한 주소의 리스트를 관리하는 윈도우 인덱스 시놉시스, 상기 윈도우 시놉시스의 배치(batch)인 배치 시놉시스, 상기 윈도우 인덱스 시놉시스의 배치인 배치 인덱스 시놉시스를 포함하는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  17. 제 16 항에 있어서,
    배치 질의 방정식이 상기 질의 방정식에서 특정 스트림에 해당하는 윈도우 시놉시스가 상기 특정 스트림에 해당하는 배치 시놉시스로 대체된 질의 방정식으로 정의될 때,
    상기 (a) 단계는 상기 배치 질의 방정식을 계산하여 상기 결과 벡터를 생성하는 것을 특징으로 하는 다중 조인 질의 처리 방법.
  18. 제 17 항에 있어서,
    상기 (b) 단계는 상기 배치 인덱스 시놉시스와 상기 윈도우 인덱스 시놉시스로부터 상기 다중 조인 질의에 대한 결과 투플을 생성하는 것을 특징으로 하는 다중 조인 질의 처리 방법.
KR1020110047402A 2011-03-23 2011-05-19 데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법 KR101296683B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161466800P 2011-03-23 2011-03-23
US61/466,800 2011-03-23

Publications (2)

Publication Number Publication Date
KR20120108886A KR20120108886A (ko) 2012-10-05
KR101296683B1 true KR101296683B1 (ko) 2013-08-14

Family

ID=46878186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110047402A KR101296683B1 (ko) 2011-03-23 2011-05-19 데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법

Country Status (2)

Country Link
US (1) US8538953B2 (ko)
KR (1) KR101296683B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2682878A1 (en) * 2012-07-04 2014-01-08 Software AG Method of processing relational queries in a database system and corresponding database system
US9208254B2 (en) * 2012-12-10 2015-12-08 Microsoft Technology Licensing, Llc Query and index over documents
US9773041B2 (en) * 2013-03-06 2017-09-26 Oracle International Corporation Methods and apparatus of shared expression evaluation across RDBMS and storage layer
US9311380B2 (en) 2013-03-29 2016-04-12 International Business Machines Corporation Processing spatial joins using a mapreduce framework
US10733186B2 (en) * 2016-09-15 2020-08-04 Oracle International Corporation N-way hash join
US10621235B1 (en) * 2019-05-13 2020-04-14 Redis Labs Ltd. Methods, systems, and media for resolving database queries using algebraic expressions using matrix-matrix multiplication
KR102177064B1 (ko) * 2019-11-18 2020-11-10 재단법인대구경북과학기술원 다항 조인 연산자를 이용한 쿼리 처리 방법 및 그 장치
CN114943004B (zh) * 2022-07-26 2022-10-28 浙江大华技术股份有限公司 属性图查询方法、属性图查询装置以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042358A (ko) * 2002-11-14 2004-05-20 한국과학기술원 적응형 경로 인덱스를 이용한 xml 질의 수행 방법
KR20090002244A (ko) * 2006-12-04 2009-01-09 한국전자통신연구원 Xml 데이터 스트림에 대한 다중 질의 간 연산 공유를이용한 연속 질의 처리 장치 및 그 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461057B2 (en) * 2005-12-30 2008-12-02 Sap Ag Query plan execution by implementation of plan operations forming a join graph
US20070294217A1 (en) * 2006-06-14 2007-12-20 Nec Laboratories America, Inc. Safety guarantee of continuous join queries over punctuated data streams
US9092483B2 (en) * 2010-10-19 2015-07-28 Microsoft Technology Licensing, Llc User query reformulation using random walks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042358A (ko) * 2002-11-14 2004-05-20 한국과학기술원 적응형 경로 인덱스를 이용한 xml 질의 수행 방법
KR20090002244A (ko) * 2006-12-04 2009-01-09 한국전자통신연구원 Xml 데이터 스트림에 대한 다중 질의 간 연산 공유를이용한 연속 질의 처리 장치 및 그 방법

Also Published As

Publication number Publication date
KR20120108886A (ko) 2012-10-05
US20120246146A1 (en) 2012-09-27
US8538953B2 (en) 2013-09-17

Similar Documents

Publication Publication Date Title
KR101296683B1 (ko) 데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법
CN104756107B (zh) 采用位置信息剖析数据
CN102122291A (zh) 一种基于树形日志模式分析的博客好友推荐方法
KR101590976B1 (ko) 협업 필터링 기반 추천 성능을 향상 시키기 위한 의미 클러스터 기반 매트릭스 지역화 방법 및 장치
Gao et al. Shortest path computing in relational DBMSs
Khemmarat et al. Fast top-k path-based relevance query on massive graphs
Kim et al. Successive point-of-interest recommendation with local differential privacy
Liu et al. Cleaning framework for big data-object identification and linkage
Li et al. Zebra: When temporal graph neural networks meet temporal personalized pagerank
He et al. Stretching cube attacks: improved methods to recover massive superpolies
Javed et al. HOVA‐FPPM: Flexible Periodic Pattern Mining in Time Series Databases Using Hashed Occurrence Vectors and Apriori Approach
Mallick et al. Incremental mining of sequential patterns: Progress and challenges
Zhao et al. Efficient computation of cohesive subgraphs in uncertain bipartite graphs
Qin et al. An ontology-independent representation learning for similar disease detection based on multi-layer similarity network
Li et al. DSM-PLW: Single-pass mining of path traversal patterns over streaming Web click-sequences
CN106407254B (zh) 用户点击行为链的处理方法及装置
Kumar et al. Maintaining sliding-window neighborhood profiles in interaction networks
Ni et al. Efficient closeness centrality computation in time-evolving graphs
Li et al. Profiling entities over time in the presence of unreliable sources
Hadiji et al. Computer science on the move: Inferring migration regularities from the web via compressed label propagation
Suresh et al. Expressive and Efficient Representation Learning for Ranking Links in Temporal Graphs
Rekatsinas et al. CRUX: Adaptive Querying for Efficient Crowdsourced Data Extraction
Katoh et al. Mining frequent diamond episodes from event sequences
Zada et al. Large-scale Data Integration Using Graph Probabilistic Dependencies (GPDs)
Gillani et al. Spectra: Continuous query processing for rdf graph streams over sliding windows

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: 20160805

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee