KR101608495B1 - 데이터 스트림 처리 장치 및 방법 - Google Patents

데이터 스트림 처리 장치 및 방법 Download PDF

Info

Publication number
KR101608495B1
KR101608495B1 KR1020090123326A KR20090123326A KR101608495B1 KR 101608495 B1 KR101608495 B1 KR 101608495B1 KR 1020090123326 A KR1020090123326 A KR 1020090123326A KR 20090123326 A KR20090123326 A KR 20090123326A KR 101608495 B1 KR101608495 B1 KR 101608495B1
Authority
KR
South Korea
Prior art keywords
query
terminal
server
execution plan
data stream
Prior art date
Application number
KR1020090123326A
Other languages
English (en)
Other versions
KR20110066599A (ko
Inventor
김정자
진연호
노예진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090123326A priority Critical patent/KR101608495B1/ko
Priority to US12/826,529 priority patent/US9378244B2/en
Publication of KR20110066599A publication Critical patent/KR20110066599A/ko
Application granted granted Critical
Publication of KR101608495B1 publication Critical patent/KR101608495B1/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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/2454Optimisation of common expressions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 스트림 처리 장치 및 방법이 개시된다. 본 발명의 일 양상에 따르면, 데이터 스트림 처리를 위한 질의 실행 계획을 서버와 단말이 공유한다. 서버는 질의 실행 계획을 수립하고, 수립된 질의 실행 계획 중 일부를 단말이 실행할 것으로 결정한다. 단말은 질의 실행 계획 중 일부를 실행하고 그 실행 결과를 서버로 전송한다. 서버는 단말이 전송한 실행 결과에 기초해서 질의 실행 계획의 나머지 부분을 실행한다. 전체 질의 실행 계획 중 단말이 실행할 부분은 단말 별로 단말의 성능을 고려하여 결정한다.
데이터 스트림 관리 시스템(data stream management system, DSMS), 연속 질의(continuous query), 질의 연산자(query operator), 연산 비용(operation cost)

Description

데이터 스트림 처리 장치 및 방법{Apparatus and Method for processing data stream}
데이터 스트림 관리 시스템(data stream management system, DSMS)과 관련된다.
구조화된 데이터에서 특정한 정보를 추출하기 위하여 데이터베이스 관리 시스템(DBMS, DataBase Management System)을 사용하는 것이 일반적이다. 그러나 센서 네트워크(Sensor Network), 모바일 센싱(Mobile Sensing), 실시간 웹(Real Time Web) 등의 신기술이 등장하면서 데이터를 처리하는 새로운 방식이 출현하게 되었다. 왜냐하면 센서 네트워크(Sensor Network), 모바일 센싱(Mobile Sensing), 실시간 웹(Real Time Web) 등에서의 데이터는 정적으로 저장되는 것이 아니고 네트워크를 통해 끊임없이 흐르는 특징이 있기 때문이다.
이와 같이 동적인 데이터를 다루는 기술을 일반적으로 데이터 스트림 처리(Data Stream Processing)라 하며, 정적 데이터를 다루는 DBMS와 상대되는 용어로 데이트 스트림 관리 시스템(DSMS, Data Stream Management System)이라고 지칭하기도 한다.
데이터 스트림 처리 기술은 네트워크 모니터링, RFID를 이용한 물류 모니터링과 같은 특정 산업분야 또는 특정 전문분야에만 사용되었다. 그러나 최근에, 개인용 단말에 센서가 부착되면서 일반 사용자들에게도 데이터 스트림을 활용하는 서비스가 제공되기에 이르렀다. 데이터 스트림 기반의 서비스로는 모바일 위치 센서를 활용하여 교통흐름이나 사람들의 밀집도를 알려주는 서비스와 개인용 단말에 바이오 센서를 부착한 헬스 케어 서비스 등이 대표적이다.
이렇게 일반 사용자들이 쉽게 데이터 스트림 서비스를 접하게 됨에 따라, 지속적으로 변화하는 대량의 데이터 스트림을 처리해야 하는 시스템은 사용자들의 수 많은 질의를 처리해야 하는 부담을 갖는다. 특히 모바일 위치 센서를 활용하는 서비스에서 수 많은 모바일 기기가 보내는 위치 정보에 관한 데이터 스트림을 모니터링하면서 사용자들의 질의를 모두 처리해야 한다.
단말과 서버가 협업하여 데이터 스트림을 처리하는 데이터 스트림 처리 모델이 제공된다.
본 발명의 일 양상에 따른 데이터 스트림 장치는, 질의에 관한 질의 실행 계획에 기초하여 데이터 스트림을 처리하는 장치에 있어서, 질의 실행 계획 중 일부분을 실행하는 데이터 센싱 단말 및 데이터 센싱 단말의 질의 실행 결과를 수신하고, 수신된 질의 실행 결과에 기초하여 전체 질의 실행 계획 중 나머지 부분을 실행하는 데이터 스트림 관리 서버를 포함할 수 있다.
본 발명의 다른 양상에 따른 데이터 스트림 장치는, 질의에 관한 질의 실행 계획에서, 단말에서 실행될 부분으로 정의되는 제 1 부분과 서버에서 실행될 부분으로 정의되는 제 2 부분을 결정하는 결정부, 제 1 부분을 단말로 제공하는 제공부, 및 단말로부터 수신된 제 1 부분에 대응되는 질의 실행 결과를 제 2 부분과 결합하는 결합부를 포함할 수 있다.
본 발명의 또 다른 양상에 따른 데이터 스트림 장치는, 질의에 관한 질의 실행 계획에서, 단말에서 실행될 부분으로 결정된 제 1 부분을 수신하는 수신부, 및 질의 실행 계획의 제 1 부분을 실행하고 그 실행 결과를 서버로 전송하는 부분 질의 실행부를 포함할 수 있다.
본 발명의 일 양상에 따라, 제 1 부분은 질의 실행 계획에 포함된 질의 연산 자를 단말이 실행하는데 필요한 연산 비용의 추정 값을 기초로 결정될 수 있으며, 연산 비용은 단말의 성능 정보를 토대로 추정될 수 있다. 단말의 성능 정보는 단말이 서버에게 제공하거나 서버 관리자가 직접 입력할 수 있다.
한편, 본 발명의 일 양상에 따른 데이터 스트림 처리 방법은, 질의에 관한 질의 실행 계획에서, 단말에서 실행될 부분으로 정의되는 제 1 부분과 서버에서 실행될 부분으로 정의되는 제 2 부분을 결정하는 단계, 제 1 부분을 상기 단말로 제공하는 단계, 단말이 제 1 부분을 실행하고 그 실행 결과를 서버로 전송하는 단계 및 서버가 실행 결과를 제 2 부분과 결합하는 단계를 포함할 수 있다.
개시된 내용에 따르면, 전체 질의 실행 계획의 일부가 단말에서 실행되므로 서버와 단말 간의 부하를 분산시키고 네트워크 비용을 줄일 수가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터 스트림 처리 시스템(100)을 도시한다.
도 1에서, 데이터 스트림 처리 시스템(100)은 서버(101)와 단말(102)을 포함한다. 그리고 서버(101)와 단말(102)은 네트워크(103)를 통해 정보를 주고 받는다.
단말(102)은 각종 데이터를 센싱하기 위한 센서를 포함할 수 있다. 센서는 위치 센서, GPS 센서, 속도 센서, 온도 센서 등이 될 수 있다. 예컨대, 단말(102)은 이러한 센서가 장착된 모바일 폰(mobile phone), PDA(personal digital assistants), MP3 플레이어, 건강 관리 장치 등이 될 수 있다.
단말(102)은 센싱된 데이터를 서버(101)로 전송한다. 예컨대, 단말(102)이 GPS 정보를 수신하는 모바일 폰인 경우, 단말(102)은 GPS 정보를 주기적으로 서버(101)로 전송하는 것이 가능하다.
서버(101)는 데이터 스트림 관리 서버(data stream management server)가 될 수 있다. 서버(101)는 단말(102)로부터 수신된 데이터를 실시간으로 분석하고, 사용자에게 가치 있는 정보를 제공한다. 예컨대, 어떤 사용자가 특정한 지역에 몇 명의 사람이 존재하는지를 서버(101)에게 물어보면, 서버(101)는 단말(102)로부터 수신된 GPS 정보를 분석해서 해당 지역에 존재하는 사람의 수를 알려주는 것이 가능하다.
서버(101)와 단말(102)은 서로 협동하여 질의(query)를 처리한다. 질의의 처리란 사용자가 요청한 정보의 검색 및 제공이 될 수 있다. 예를 들어, 사용자가 원하는 정보는 수 많은 단말(102)의 데이터 중에서 사용자가 등록한 연속 질의에 의해 필터링될 수 있다.
위 예에서, 어떤 사용자가 특정한 지역에 몇 명의 사람이 존재하는지 물어보는 것은 질의에 대응되고, 이 질의에 따라 해당 지역에 존재하는 사람의 수를 알려주는 것은 질의의 처리에 대응될 수 있다. 질의 처리 과정은 특정한 순서에 따라 질의 연산자를 실행하는 과정을 포함한다.
즉, 다수의 단말(102)로부터 스트리밍되는 데이터는 서버(101)로 입력되고, 서버(101)는 실시간으로 입력되는 대량의 데이터 스트림에 대해 스트림 마이닝 및 연속 질의 처리를 실행할 수 있다.
본 실시예에 따라, 서버(101)와 단말(102)의 협동은 서버(101)와 단말(102)이 질의 실행 계획(query execution plan, QEP)을 공유함으로써 구현될 수 있다. 질의 실행 계획은 적어도 1 이상의 질의 연산자(query operator)와 질의 연산자들의 실행 순서(execution order)를 포함할 수 있다.
질의 실행 계획을 수립하는 방법은 다양한 방법이 알려져 있다. 예를 들어, 서버(101)가 사용자로부터 질의를 입력 받고, 입력된 질의를 파싱(parsing)하여 오류를 검사한 후, 각각의 질의 연산자의 연산 비용(operation cost)을 고려하여 최적의 질의 실행 계획을 생성하는 것이 가능하다.
본 실시예에 따라, 질의 실행 계획의 일부는 단말(102)에서 실행되고, 다른 일부는 서버(101)에서 실행된다.
예를 들어, 서버(101)는 수립된 질의 실행 계획을 분석해서 전체 질의 실행 계획 중 단말(102)에서 처리될 부분을 결정하고, 결정된 부분을 단말(102)에게 제공한다. 단말(102)은 전체 질의 실행 계획에서 일부분을 실행하고, 그 실행 결과를 서버(101)로 전달한다. 서버(101)는 단말(102)의 실행 결과를 이용하여 질의 실행 계획의 나머지 부분을 실행한다.
이와 같이, 서버(101)와 단말(102)이 질의 실행 계획을 공유하고 단말(102)이 질의 실행 계획 중 일부분을 실행하기 때문에, 서버(101)의 질의 처리 부담을 줄일 수 있다.
도 2는 본 발명의 일 실시예에 따른 데이터 스트림 처리 장치(200)를 도시한다. 이것은 도 1의 서버(101)의 일 구성이 될 수 있다.
도 2를 참조하면, 데이터 스트림 처리 장치(200)는 수립부(201), 결정부(202), 제공부(203), 결합부(204), 실행부(205), 질의 저장부(206), 및 단말 정보 저장부(207)를 포함한다.
수립부(201)는 질의에 대한 질의 실행 계획을 수립한다. 질의는 사용자에 의해 질의 저장부(206)에 등록 및 저장될 수 있다. 수립부(201)는 질의 저장부(206)에 저장된 질의에 대해 파싱 및 유효성 검사를 수행한 후, 최적의 질의 실행 계획을 수립한다. 질의 실행 계획의 수립이란, 질의 연산자들의 실행 순서를 결정하는 과정이 될 수 있다. 따라서 질의 실행 계획은 적어도 1 이상의 질의 연산자와 질의 연산자들의 실행 순서로 나타낼 수 있다.
결정부(202)는 수립된 질의 실행 계획을 분석해서 전체 질의 실행 계획 중 단말(102)에서 실행될 제 1 부분과 서버(101)에서 실행될 제 2 부분을 결정한다. 예를 들어, 단말(102)에서 실행될 제 1 부분은 질의 실행 계획 중 일부의 질의 연산자들의 집합으로 정의될 수 있고, 서버(101)에서 실행될 제 2 부분은 질의 실행 계획 중 제 1 부분을 제외한 나머지 질의 연산자들의 집합으로 정의될 수 있다.
전체 질의 실행 계획 중 어떠한 부분을 단말(102)에 할당할 지는 단말(102)의 연산 능력, 예컨대, 단말 정보 저장부(207)에 저장된 단말(102)의 CPU 성능 정보, 메모리 크기 정보, 네트워크 접근 속도 정보 등을 고려해서 결정하게 되는데, 구체적인 내용은 후술한다.
제공부(203)는 결정부(202)에서 결정된 제 1 부분을 단말(102)로 제공한다. 예를 들어, 제공부(203)는 제 1 부분에 대응되는 질의 연산자 집합을 단말(102)로 전송하거나 통보하는 것이 가능하다.
결합부(204)는 단말(102)로부터 전체 질의 실행 계획 중 제 1 부분에 대응되는 질의 실행 결과를 수신한다. 결합부(204)는 수신된 실행 결과와 제 2 부분을 결합한다. 결합부(204)는 단말 정보 저장부(207)에 저장된 단말(102)의 식별 정보에 기초하여 수신된 실행 결과와 제 2 부분을 결합할 수 있다.
실행부(205)는 전체 질의 실행 계획 중 제 2 부분을 실행한다. 이 때, 제 1 부분은 단말(102)에서 실행되었고 그 실행 결과가 제 2 부분과 결합되었기 때문에 실행부(205)가 제 2 부분을 실행함으로써 전체 질의 실행 계획이 모두 실행될 수 있다.
도 3은 본 발명의 일 실시예에 따른 질의 실행 계획(300)을 도시한다.
도 3에서, ⓐ, ⓑ, ⓒ, ⓓ, 및 ⓔ는 「select」, 「project」, 「join」, 「union」등과 같은 질의 연산자를 나타내고, 화살표는 질의 연산자들의 실행 순서를 나타낸다.
질의 실행 계획(300)은 수립부(201)에 의해 수립되며, 수립되는 질의 실행 계획(300)은 질의의 종류, 단말(102) 및 단말(102)로부터 수신되는 데이터 스트림의 종류에 따라 달라질 수 있다. 예를 들어, 동일한 질의를 처리하는 경우라도 단말(102)이 상이하면 단말(102) 별로 상이한 질의 실행 계획이 수립될 수 있다.
도 3을 참조해서 결정부(202)가 제 1 부분(301)을 결정하는 방법을 설명하면 다음과 같다. 설명의 편의를 위해, 도 3의 질의 실행 계획(300)은 어느 하나의 단말(102)로부터 수신된 데이터 스트림을 처리하기 위해 수립된 것으로 가정한다.
결정부(202)는 단말(102)이 질의 연산자를 실행할 때의 연산 비용을 추정한다. 예를 들어, 추정된 연상 비용은, 단말(102)이, ⓐ 만을 실행할 때의 제 1 연산 비용(310), ⓐ 및 ⓑ 를 실행할 때의 제 2 연산 비용(320), ⓐ, ⓑ, 및 ⓒ 를 실행할 때의 제 3 연산 비용(330), ⓐ, ⓑ, ⓒ, 및 ⓓ 를 실행할 때의 제 4 연산 비용(340), 및 ⓐ, ⓑ, ⓒ, ⓓ, 및 ⓔ 를 실행할 때의 제 5 연산 비용(350)을 포함할 수 있다.
결정부(202)는 추정된 연산 비용을 임계 값과 비교하여 제 1 부분(301)을 결정한다. 임계 값은 단말(102)의 연산 능력의 한계치에 대응될 수 있다. 예를 들어, 임계 값이 제 2 연산 비용(320)과 제 3 연산 비용(330) 사이에 있는 경우, 단말(102)의 연산 능력의 한계는 ⓐ 및 ⓑ 를 실행할 때로 제한되고, 이 때, 결정부(202)는 전체 질의 실행 계획(300) 중에서 ⓐ 및 ⓑ 를 제 1 부분(301)으로 결정할 수 있다. 그리고 제 1 부분(301)을 제외한 나머지 부분은 제 2 부분(302)으로 결정한다.
연산 비용은 단말 정보 저장부(207)에 저장된 단말(102)의 CPU 성능 정보, 메모리 크기 정보, 네트워크 접근 속도 정보 등에 기초하여 추정될 수 있다. 단말(102)에 관한 정보는 단말(102)이 서버(101)로 전송하거나 서버(101)의 운영자가 단말(102)의 디바이스 카탈로그를 참조하여 입력할 수 있다.
또한, 앞서 설명하였듯이, 질의 실행 계획(300)은 데이터 스트림 별로 달라질 수 있고, 단말(102)의 성능도 단말(102) 별로 상이하므로, 어떤 질의 실행 계획(300)의 제 1 부분(301)은 단말(102) 별로 달라질 수가 있다.
도 4는 본 발명의 다른 실시예에 따른 데이터 스트림 처리 장치(400)를 도시한다. 이것은 도 1의 단말(102)의 일 구성이 될 수 있다.
도 4를 참조하면, 데이터 스트림 처리 장치(400)는 수신부(401) 및 부분 질의 실행부(402)를 포함한다.
수신부(401)는 질의에 관한 전체 질의 실행 계획 중 단말에서 실행될 부분으로 결정된 제 1 부분을 수신한다. 예컨대, 수신부(401)는 도 3의 ⓐ, ⓑ 질의 연산자를 수신하거나, 또는 ⓐ, ⓑ 질의 연산자 실행에 관한 실행 명령을 수신할 수 있다.
부분 질의 실행부(402)는 전체 질의 실행 계획 중 제 1 부분을 실행하고 실행 결과를 서버로 전송한다. 예컨대, 수신부(401)는 도 3의 전체 질의 실행 계획(300)에서 ⓐ, ⓑ 질의 연산자를 실행하고, 그 실행 결과를 서버로 전송할 수 있다.
부분 질의 실행부(402)는 실행 결과를 서버(101)로 전송할 때, 실행 결과와 함께 단말(102)의 식별 정보를 전송한다. 실행 결과와 함께 전송되는 단말(102)의 식별 정보는 부분 질의 실행부(402)의 실행 결과가 어떠한 단말로부터 스트리밍된 데이터인지를 판별하는 기준을 제공할 수 있다.
또한, 본 발명의 일 실시예에 따라, 데이터 스트림 처리 장치(400)는 센싱된 데이터에서 오류를 제거하고 변화 량이 많은 원시 데이터 스트림을 일정 수준으로 유지하기 위한 전-처리기를 더 포함할 수도 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 스트림 처리 방법(5000)을 도시한다.
도 5에서, 단말(102)은 단말(102)의 식별 정보, CPU 성능, 메모리 크기, 및 네트워크 접근 속도 중 적어도 1 이상을 포함하는 단말 정보를 서버(101)로 전송한다(5001). 전송된 단말 정보는 서버(101)에 저장된다.
또한, 선택적으로, 단말(102)이 단말 정보를 전송하지 아니하고 서버(101)의 관리자가 단말(102)의 카탈로그에 기재된 하드웨어 스펙을 참조하여 직접 입력할 수도 있다.
한편 서버(101)는 등록된 질의에 대해 질의 실행 계획을 수립한다(5002). 질의 실행 계획은 적어도 1 이상의 질의 연산자 및 질의 연산자들의 실행 순서를 포함한다. 질의 실행 계획은 질의의 종류, 단말의 종류, 단말로부터 수신되는 데이터 스트림의 종류에 따라 달라질 수 있다.
그리고 서버(101)는 질의 실행 계획 중 단말(102)에서 실행될 부분과 서버(101)에서 실행될 부분을 결정한다(5003). 예를 들어, 결정부(202)가 질의 실행 계획(300)에서 제 1 부분(301)과 제 2 부분(302)을 결정하는 것이 가능하다. 제 1 부분(301)과 제 2 부분(302)은 저장된 단말 정보 중 CPU 성능, 메모리 크기, 및 네트워크 접근 속도와 같은 성능 정보를 토대로 추정된 연산 비용을 임계 값과 비교하여 결정할 수 있다.
그리고 서버(101)는 단말(102)에서 실행될 부분인 제 1 부분(301)을 단말(102)로 전송한다. 예를 들어, 제공부(203)가 제 1 부분(301)에 대응되는 질의 연산자를 단말(102)로 전송하거나, 또는 제 1 부분(301)에 대응되는 질의 연산자를 단말(102)이 실행하도록 하는 실행 명령을 전송하는 것이 가능하다.
제 1 부분(301)을 수신한 단말(102)은 제 1 부분(301)에 대응되는 질의 연산자를 실행한다(5005). 예를 들어, 부분 질의 실행부(402)가 전체 질의 실행 계획 중 일부를 실행할 수가 있다.
그리고 단말(102)은 제 1 부분(301)의 실행 결과를 서버(101)로 전송한다(5006). 예를 들어, 단말(102)이 ⓐ 및 ⓑ 질의 연산자를 실행하고, 그 실행 결과를 서버로 전송할 수 있다. 또한, 단말(102)은 실행 결과와 함께 자신의 식별 정보를 전송할 수도 있다.
제 1 부분(301)에 대응되는 질의 실행 결과를 수신한 서버(101)는 수신된 실행 결과를 제 2 부분(302)과 결합한다(5007). 이 때, 서버(101)는 저장된 단말 정보 중 단말(102)의 식별 정보를 토대로 실행 결과가 어떠한 단말(102)에서 실행된 결과인지를 판별할 수 있다.
그리고 서버(101)는 단말(102)이 전송한 실행 결과에 이어서 전체 질의 실행 계획(300) 중 나머지 제 2 부분(302)을 실행하고(5008), 전체 실행 결과를 단말(102)로 전송한다(5009).
이상에서 살펴본 바와 같이, 질의에 기초하여 데이터 스트림을 처리하는 경우에 있어서, 질의 실행 계획을 단말과 서버가 공유하고 질의 실행 계획 중 일부를 단말이 실행하기 때문에 서버의 질의 실행 부담을 줄일 수가 있다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시예에 한정되지 아니할 것이다.
도 1은 본 발명의 일 실시예에 따른 데이터 스트림 처리 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 데이터 스트림 처리 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 질의 실행 계획을 도시한다.
도 4는 본 발명의 다른 실시예에 따른 데이터 스트림 처리 장치를 도시한다.
도 5는 본 발명의 일 실시예에 따른 데이터 스트림 처리 방법을 도시한다.

Claims (15)

  1. 질의에 관한 적어도 1 이상의 질의 연산자 및 상기 질의 연산자들의 실행순서를 포함하는 질의 실행 계획에서, 단말에서 실행될 부분으로 정의되는 제 1 부분과 서버에서 실행될 부분으로 정의되는 제 2 부분을 결정하는 결정부;
    상기 제 1 부분을 상기 단말로 제공하는 제공부; 및
    상기 단말로부터 수신된 상기 제 1 부분에 대응되는 질의 실행 결과를 상기 제 2 부분과 결합하는 결합부; 를 포함하는 데이터 스트림 처리 장치.
  2. 제 1 항에 있어서, 상기 결정부는,
    상기 질의 실행 계획에 포함된 질의 연산자를 실행하는데 필요한 단말의 연산 비용을 추정하고, 추정된 연산 비용에 기초하여 상기 제 1 부분을 결정하는 데이터 스트림 처리 장치.
  3. 제 2 항에 있어서,
    상기 단말의 식별 정보, 상기 단말의 CPU 성능, 상기 단말의 메모리 크기, 및 상기 단말의 네트워크 접근 속도 중 적어도 1 이상을 포함하는 단말 정보를 저장하는 단말 정보 저장부; 를 더 포함하는 데이터 스트림 처리 장치.
  4. 제 3 항에 있어서, 상기 연산 비용은,
    상기 단말 정보에 기초하여 추정되는 데이터 스트림 처리 장치.
  5. 제 3 항에 있어서, 상기 결합부는,
    상기 단말 정보에 기초하여 상기 제 1 부분에 대응되는 질의 실행 결과를 상기 제 2 부분 질의와 결합하는 데이터 스트림 처리 장치.
  6. 삭제
  7. 질의에 관한 적어도 1 이상의 질의 연산자 및 상기 질의 연산자들의 실행순서를 포함하는 질의 실행 계획에서, 단말에서 실행될 부분으로 결정된 제 1 부분을 수신하는 수신부; 및
    상기 질의 실행 계획의 상기 제 1 부분을 실행하고 실행 결과를 서버로 전송하는 부분 질의 실행부; 를 포함하는 데이터 스트림 처리 장치.
  8. 제 7 항에 있어서, 상기 부분 질의 실행부는,
    상기 실행 결과와 함께 상기 단말의 식별 정보를 상기 서버로 전송하는 데이터 스트림 처리 장치.
  9. 삭제
  10. 질의에 관한 질의 실행 계획에 기초하여 데이터 스트림을 처리하는 장치에 있어서,
    적어도 1 이상의 질의 연산자 및 상기 질의 연산자들의 실행순서를 포함하는 질의 실행 계획 중 일부분을 실행하는 데이터 센싱 단말; 및
    상기 데이터 센싱 단말의 질의 실행 결과를 수신하고, 수신된 질의 실행 결과에 기초하여 상기 질의 실행 계획 중 나머지 부분을 실행하는 데이터 스트림 관리 서버; 를 포함하는 데이터 스트림 처리 장치.
  11. 제 10 항에 있어서, 상기 데이터 스트림 관리 서버는,
    상기 질의 실행 계획에 포함된 질의 연산자를 실행하는데 필요한 상기 데이터 센싱 단말의 연산 비용을 추정하고, 추정된 연산 비용에 기초하여 상기 데이터 센싱 단말에서 실행될 상기 질의 실행 계획 중 일부분을 결정하는 데이터 스트림 처리 장치.
  12. 서버가, 질의에 관한 적어도 1 이상의 질의 연산자 및 상기 질의 연산자들의 실행순서를 포함하는 질의 실행 계획에서, 단말에서 실행될 부분으로 정의되는 제 1 부분과 상기 서버에서 실행될 부분으로 정의되는 제 2 부분을 결정하는 단계;
    상기 서버가, 상기 제 1 부분을 상기 단말로 제공하는 단계;
    상기 단말이, 상기 제 1 부분을 실행하고 실행 결과를 상기 서버로 전송하는 단계; 및
    상기 서버가, 상기 실행 결과를 상기 제 2 부분과 결합하는 단계; 를 포함하는 데이터 스트림 처리 방법.
  13. 제 12 항에 있어서, 상기 제 1 부분 및 상기 제 2 부분을 결정하는 단계는,
    상기 질의 실행 계획에 포함된 질의 연산자를 실행하는데 필요한 단말의 연산 비용을 추정하고, 추정된 연산 비용에 기초하여 상기 제 1 부분을 결정하는 과정을 포함하는 데이터 스트림 처리 방법.
  14. 제 13 항에 있어서, 상기 연산 비용은,
    상기 단말의 CPU 성능, 상기 단말의 메모리 크기, 및 상기 단말의 네트워크 접근 속도 중 적어도 1 이상에 기초하여 추정되는 데이터 스트림 처리 방법.
  15. 제 12 항에 있어서, 상기 결합하는 단계는,
    상기 단말의 식별 정보에 기초하여 상기 실행 결과를 상기 제 2 부분과 결합하는 과정을 포함하는 데이터 스트림 처리 방법.
KR1020090123326A 2009-12-11 2009-12-11 데이터 스트림 처리 장치 및 방법 KR101608495B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090123326A KR101608495B1 (ko) 2009-12-11 2009-12-11 데이터 스트림 처리 장치 및 방법
US12/826,529 US9378244B2 (en) 2009-12-11 2010-06-29 Apparatus and method for processing a data stream

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090123326A KR101608495B1 (ko) 2009-12-11 2009-12-11 데이터 스트림 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110066599A KR20110066599A (ko) 2011-06-17
KR101608495B1 true KR101608495B1 (ko) 2016-04-01

Family

ID=44144032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090123326A KR101608495B1 (ko) 2009-12-11 2009-12-11 데이터 스트림 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US9378244B2 (ko)
KR (1) KR101608495B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101694285B1 (ko) * 2013-02-14 2017-01-23 한국전자통신연구원 질의 분할을 이용한 데이터 스트림 처리 장치 및 방법
US10628417B2 (en) * 2013-12-01 2020-04-21 Paraccel Llc Physical planning of database queries using partial solutions
US9881480B2 (en) * 2013-12-20 2018-01-30 International Business Machines Corporation Mobile device loss prevention
US9389909B1 (en) * 2015-04-28 2016-07-12 Zoomdata, Inc. Prioritized execution of plans for obtaining and/or processing data
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
WO2021084572A1 (ja) * 2019-10-28 2021-05-06 日本電信電話株式会社 データベースシステム、分散処理装置、データベース装置、分散処理方法、および、分散処理プログラム

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0964840A (ja) 1995-08-24 1997-03-07 Sony Corp 情報処理装置および方法、放送装置、並びにデータ収集方法
US5943666A (en) * 1997-09-15 1999-08-24 International Business Machines Corporation Method and apparatus for optimizing queries across heterogeneous databases
US6526403B1 (en) * 1999-12-17 2003-02-25 International Business Machines Corporation Method, computer program product, and system for rewriting database queries in a heterogenous environment
KR20020079327A (ko) 2001-04-07 2002-10-19 오정석 이동통신단말기를 이용한 실시간/주문형 현지방송시스템및 그 방법
US20030158842A1 (en) * 2002-02-21 2003-08-21 Eliezer Levy Adaptive acceleration of retrieval queries
US7010521B2 (en) * 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
EP1546822A4 (en) * 2002-09-18 2008-07-02 Netezza Corp ASYMMETRIC DATA STREAMING ARCHITECTURE WITH AN AUTONOMOUS AND ASYNCHRONOUS JOB PROCESSING UNIT
US7500111B2 (en) * 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
WO2005029280A2 (en) * 2003-09-19 2005-03-31 Netezza Corporation Performing sequence analysis as a multipart plan storing intermediate results as a relation
TWI261184B (en) 2003-12-02 2006-09-01 Benq Corp Automatic data collection method and data collection system
US7704611B2 (en) 2004-04-19 2010-04-27 Pivot A.S. Hard, wear-resistant aluminum nitride based coating
US7395258B2 (en) * 2004-07-30 2008-07-01 International Business Machines Corporation System and method for adaptive database caching
US20060217116A1 (en) 2005-03-18 2006-09-28 Cassett Tia M Apparatus and methods for providing performance statistics on a wireless communication device
US8126870B2 (en) * 2005-03-28 2012-02-28 Sybase, Inc. System and methodology for parallel query optimization using semantic-based partitioning
US7640230B2 (en) * 2005-04-05 2009-12-29 Microsoft Corporation Query plan selection control using run-time association mechanism
US7454407B2 (en) * 2005-06-10 2008-11-18 Microsoft Corporation Techniques for estimating progress of database queries
US7818313B1 (en) * 2005-07-18 2010-10-19 Sybase, Inc. Method for distributing processing of queries over a cluster of servers in a continuous processing system
US7383247B2 (en) * 2005-08-29 2008-06-03 International Business Machines Corporation Query routing of federated information systems for fast response time, load balance, availability, and reliability
US7512700B2 (en) 2005-09-30 2009-03-31 International Business Machines Corporation Real-time mining and reduction of streamed data
US7969922B2 (en) 2006-01-31 2011-06-28 Qualcomm Incorporated Apparatus and methods for providing configurable task management of a wireless device
US7877381B2 (en) * 2006-03-24 2011-01-25 International Business Machines Corporation Progressive refinement of a federated query plan during query execution
US8244718B2 (en) * 2006-08-25 2012-08-14 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries
US7865515B2 (en) * 2006-08-28 2011-01-04 Microsoft Corporation Server side bucketization of parameterized queries
JP4571609B2 (ja) * 2006-11-08 2010-10-27 株式会社日立製作所 リソース割当方法、リソース割当プログラム、および、管理コンピュータ
US7779031B2 (en) * 2007-02-15 2010-08-17 International Business Machines Corporation Multidimensional query simplification using data access service having local calculation engine
US8417762B2 (en) * 2007-04-10 2013-04-09 International Business Machines Corporation Mechanism for execution of multi-site jobs in a data stream processing system
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
US20100005077A1 (en) * 2008-07-07 2010-01-07 Kickfire, Inc. Methods and systems for generating query plans that are compatible for execution in hardware
US8538985B2 (en) * 2008-03-11 2013-09-17 International Business Machines Corporation Efficient processing of queries in federated database systems
US8402469B2 (en) * 2008-04-08 2013-03-19 Infosys Limited Allocating resources for parallel execution of query plans
US7865502B2 (en) * 2008-04-10 2011-01-04 International Business Machines Corporation Optimization of extensible markup language path language (XPATH) expressions in a database management system configured to accept extensible markup language (XML) queries
US7974967B2 (en) * 2008-04-15 2011-07-05 Sap Ag Hybrid database system using runtime reconfigurable hardware
US8190595B2 (en) * 2009-03-28 2012-05-29 Microsoft Corporation Flexible query hints in a relational database
US8745036B2 (en) * 2009-07-07 2014-06-03 Teradata Us, Inc. System, method, and computer-readable medium for enhancing query execution by an optimizer in a database system
US8166022B2 (en) * 2009-08-18 2012-04-24 International Business Machines Corporation System, method, and apparatus for parallelizing query optimization
US8392403B2 (en) * 2009-09-18 2013-03-05 Microsoft Corporation Management of data and computation in data centers

Also Published As

Publication number Publication date
KR20110066599A (ko) 2011-06-17
US20110145221A1 (en) 2011-06-16
US9378244B2 (en) 2016-06-28

Similar Documents

Publication Publication Date Title
KR101608495B1 (ko) 데이터 스트림 처리 장치 및 방법
US9003030B2 (en) Detecting relative crowd density via client devices
US9241027B2 (en) System and method for managing an online social network
US20120124136A1 (en) Context information sharing apparatus and method for providing intelligent service by sharing context information between one or more terminals
US8812577B2 (en) Mobile middleware supporting context monitoring and context monitoring method using the same
EP2791891B1 (en) Method and system for sharing content by using context information
US8103617B2 (en) Distributed directory server, distributed directory system, distributed directory managing method, and program of same
US8954524B1 (en) Access to network content
Zhu et al. Emergent technologies in big data sensing: a survey
JP5310399B2 (ja) 索引管理装置の処理方法および索引管理装置
CN101341713A (zh) 报告多媒体使能设备对多媒体内容的使用的方法和装置
US7734693B2 (en) Methods and apparatuses for managing resources within a collaboration system
KR20110055166A (ko) 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법
US20100306189A1 (en) Sensor network managing apparatus and method thereof
CN103942197A (zh) 数据监控处理方法及设备
Reza et al. A new approach for road networks-a vehicle xml device collaboration with big data
KR100782067B1 (ko) 사용자 상황 정보를 이용한 동적 서비스 조합 시스템 및서비스 제공 방법
CN110166441B (zh) 一种路网环境下基于隐私偏好的语义位置隐私保护方法
CN105516271A (zh) 业务处理系统、业务处理方法及装置
Yu et al. Location-based and time-aware service recommendation in mobile edge computing
WO2021042541A1 (zh) 新零售模式下的商品导购方法、装置、设备及存储介质
CN114973524A (zh) 共享设备的归还处理方法、装置、计算机设备
JP2019502969A (ja) スーパーコンピュータの保守および最適化を支援するための方法およびシステム
KR102067079B1 (ko) IoT에 기반한 주변 기기 탐색 방법 및 장치
EP3432593B1 (en) Data-flow control device and data-flow control method

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
FPAY Annual fee payment

Payment date: 20190221

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 5