KR101594577B1 - 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법 - Google Patents

클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법 Download PDF

Info

Publication number
KR101594577B1
KR101594577B1 KR1020090112078A KR20090112078A KR101594577B1 KR 101594577 B1 KR101594577 B1 KR 101594577B1 KR 1020090112078 A KR1020090112078 A KR 1020090112078A KR 20090112078 A KR20090112078 A KR 20090112078A KR 101594577 B1 KR101594577 B1 KR 101594577B1
Authority
KR
South Korea
Prior art keywords
query
cluster
received
collected
representative
Prior art date
Application number
KR1020090112078A
Other languages
English (en)
Other versions
KR20110055166A (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 KR1020090112078A priority Critical patent/KR101594577B1/ko
Priority to US12/815,752 priority patent/US9009157B2/en
Publication of KR20110055166A publication Critical patent/KR20110055166A/ko
Application granted granted Critical
Publication of KR101594577B1 publication Critical patent/KR101594577B1/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/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

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

클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법이 개시된다. 본 발명의 일 양상에 의하면, 수집된 질의는 특징 벡터에 따라 소정의 벡터 공간 상에서 클러스터링된다. 사용자로부터 질의가 수신되면 수신된 질의를 클러스터에 따라 분류하고 분류된 클러스터의 중심 질의로 대체한다. 스트림 처리 장치는 대체된 중심 질의를 처리하여 대략적인 결과를 사용자에게 제공한다.
데이터 스트림 관리 시스템(data stream management system, DSMS), 클러스터(cluster), 질의(query), 특징 벡터(feature vector)

Description

클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법{Apparatus and Method for processing data stream using clustered query}
데이터 스트림 관리 시스템(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 이상의 클러스터를 생성하고, 생성된 클러스터의 대표 질의를 추출하는 클러스터 생성부, 사용자로부터 질의가 수신되면 수신된 질의가 어느 클러스터에 속하는지 결정하고 수신된 질의를 결정된 클러스터의 대표 질의로 매핑하는 질의 분류부를 포함할 수 있다.
또한, 수신된 질의가 매핑된 대표 질의를 실행함으로써 수신된 질의를 실행하는 질의 실행부를 더 포함할 수도 있다.
본 발명의 일 양상에 따라, 클러스터는, 수집된 질의의 특징 벡터에 기초하여 생성될 수 있다. 특징 벡터는 수집된 질의에 관한 질의문의 조건절 내의 문자열 또는 연산자에 기초하여 정의될 수 있다. 이 때, 클러스터 생성부는, 특징 벡터에 따라 소정의 벡터 공간을 정의하고, 수집된 질의를 벡터 공간 상에서 클러스터링하는 것이 가능하다.
클러스터의 수는, 수집된 질의의 통계량 또는 데이터 스트림 처리 장치의 성능 통계량에 기초하여 결정될 수 있다.
또한, 클러스터는, 임의의 시간 별로 또는 기본 질의 별로 생성될 수 있다.
또한, 대표 질의는, 클러스터의 중심을 포함할 수 있다.
한편, 본 발명의 일 양상에 따른 데이터 스트림 처리 방법은, 수집된 질의에 대하여 적어도 1 이상의 클러스터를 생성하고, 생성된 클러스터의 대표 질의를 추출하는 단계, 및 사용자로부터 질의가 수신되면, 수신된 질의가 어느 클러스터에 속하는지 결정하고, 수신된 질의를 결정된 클러스터의 대표 질의로 매핑하는 단계를 포함할 수 있다.
사용자의 질의 결과에 대한 기대를 고려하여 수 많은 질의를 클러스터링하기 때문에 응답에 대한 지연을 낮추고 자원 활용도를 높일 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 시스템 환경(100)을 도시한다.
도 1을 참조하면, 시스템 환경(100)은 서버(101), 단말(102), 및 네트워크(103)를 포함한다. 서버(101)와 단말(102)은 네트워크(103)를 통해 정보를 주고 받는다. 서버(101)와 단말(102)이 네트워크(103)를 통해 주고 받는 정보는 데이터 스트림(data stream)과 질의(query)를 포함한다.
단말(102)에는 각종 데이터를 센싱하기 위한 센서가 구비된다. 센서는 위치 센서, GPS 센서, 속도 센서, 온도 센서 등이 될 수 있다. 단말(102)은 이러한 센서가 장착된 모바일 폰(mobile phone), PDA(personal digital assistants), MP3 플 레이어, 건강 관리 장치 등이 될 수 있다.
단말(102)은 센싱된 데이터를 서버(101)로 전송한다. 예를 들어, 단말(102)이 GPS 정보를 수신하는 모바일 폰인 경우, 단말(102)은 GPS 정보를 주기적으로 서버(101)로 전송할 수 있다.
서버(101)는 단말(102)로부터 수신된 데이터 스트림을 실시간으로 분석하고, 사용자에게 가치 있는 정보를 제공한다. 서버(101)는 데이터 스트림 관리 서버(data stream management server)가 될 수 있다. 예컨대, 어떤 사용자가 특정한 지역에 몇 명의 사람이 존재하는지를 서버(101)에게 물어보면, 서버(101)는 단말(102)로부터 수신된 GPS 정보를 분석해서 해당 지역에 존재하는 사람의 수를 알려주는 것이 가능하다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 데이터 스트림 처리 장치를 대략적으로 도시한다.
도 2를 참조하면, 데이터 스트림 처리 장치(200)는 다수의 단말(102)로부터 데이터 스트림과 질의를 입력 받는다. 그리고 질의에 따라 데이터 스트림을 처리하여 결과를 제공한다.
예를 들어, 각각의 질의 A, B, C가 다음과 같다고 가정한다.
- 질의 A : 강남역 6번 출구 주변에 몇 명의 사람이 있는가?
- 질의 B : 강남역 XX 제과점 주변에 몇 명의 사람이 있는가?
- 질의 C : 강남역 주변에 몇 명의 사람이 있는가?
데이터 스트림 처리 장치(200)는 위와 같은 질의를 각각 처리하여 다음과 같 은 결과를 사용자에게 제공한다.
- 결과 A : 약 1100명
- 결과 B : 약 1180명
- 결과 C : 약 1200명
데이터 스트림 처리 장치(200)가 사용자에게 제공하는 결과는 근사치 값이다. 데이터 스트림 자체가 시간에 따라 동적으로 변하기 때문에 정확한 값을 제공하기에는 처리 부담이 너무 크다. 따라서 데이터 스트림 처리 장치(200)는 처리 부담을 줄이기 위해 들어오는 데이터 스트림을 필터링하거나 샘플링하게 된다. 이러한 특성으로 근사치 값을 제공하더라도 사용자는 1100명이냐 1180명이냐 하는 것은 크게 문제삼지 않고 대략 1000명~2000명 정도의 사람이 있다라는 수준에서 결과를 수긍하기 때문에 데이터 스트림 처리 장치(200)는 각각의 질의에 대해 충실하게 근사치를 내었지만 비효율적으로 운영하게 된 셈이다.
따라서 비슷한 유형의 질의들을 묶어서 한 번에 처리하고 동일한 결과를 전달하면 데이터 스트림을 처리하는 데에 소요되는 시간과 노력을 줄이면서 동시에 사용자의 만족도도 유지시키는 것이 가능하다.
도 3을 참조하면, 데이터 스트림 처리 장치(300)는 질의 A, 질의 B, 질의 C를 어떤 질의(301)로 매핑한다. 여기서 어떤 질의(301)는 대표 질의, 대체 질의, 클러스터 질의 등의 용어로 표현할 수 있다.
예를 들어, 각각의 질의 A, B, C가 다음과 같다고 가정하자.
- 질의 A : 강남역 6번 출구 주변에 몇 명의 사람이 있는가?
- 질의 B : 강남역 XX 제과점 주변에 몇 명의 사람이 있는가?
- 질의 C : 강남역 주변에 몇 명의 사람이 있는가?
데이터 스트림 처리 장치(300)는 질의 A, B, C를 다음과 같은 대표 질의에 매핑하거나 대체한다.
- 대표 질의 : 강남역 주변에 몇 명의 사람이 있는가?
대표 질의(301)는 질의 A, B, C 중에 어느 하나가 될 수도 있고 그러하지 아니할 수도 있다. 여기서는 대표 질의(301)로 질의 C가 선택되는 것을 예시하였다.
그리고 데이터 스트림 처리 장치(300)는 대표 질의(301)를 이용해서 데이터 스트림을 처리하고 다음과 같은 결과를 사용자에게 제공한다.
- 결과 : 약 1200명
이와 같이, 데이터 스트림 처리에 관한 질의 실행 결과는 대략적인 결과만 제공하더라도 사용자는 만족하기 때문에 비슷한 유형의 질의를 묶어서 하나의 질의를 만들고 그 하나의 질의만 처리해서 사용자에게 제공하면 데이터 스트림 처리 부담을 줄일 수 있다.
도 4는 본 발명의 일 실시예에 따른 데이터 스트림 처리 장치를 구체적으로 도시한다.
도 4를 참조하면, 본 실시예에 따른 데이터 스트림 장치(400)는 질의 수집부(401), 질의 저장부(402), 클러스터 생성부(403), 클러스터 저장부(404), 통계량 저장부(405), 질의 수신부(406), 질의 분류부(407), 및 질의 실행부(408)를 포함한다.
질의 수집부(401)는 질의를 수집한다. 수집 대상이 되는 질의는 사용자가 요청할 것이라고 예측되는 질의들, 시스템의 베타 테스트 기간 동안 수신된 질의들, 또는 사용자로부터 실시간으로 수신되는 질의들이 될 수 있다.
질의 수집부(401)는 수집된 질의를 정규화하고 정규화된 질의를 질의 저장부(402)에 저장한다. 여기서 정규화란 동일한 조건임에도 표현만 다르게 된 질의들을 동일한 표현으로 변환하는 과정을 말한다.
클러스터 생성부(403)는 수집된 질의에 대해 클러스터를 생성하고, 생성된 클러스터의 대표 질의를 추출한다. 생성된 클러스터와 대표 질의는 클러스터 저장부(404)에 저장된다.
클러스터 생성부(403)는 수집된 질의의 특징 벡터에 기초하여 클러스터를 생성한다. 특징 벡터는 질의의 공통적인 부분을 제외한 나머지 부분, 예컨대, 질의문의 조건절 내의 문자열 또는 연산자가 될 수 있다.
클러스터 생성부(403)는 수집된 질의의 특징 벡터에 따라 소정의 벡터 공간을 정의하고, 수집된 질의를 벡터 공간 상에서 클러스터링한다. 벡터 공간은 특징 벡터에 따라 결정된 소정의 차원을 갖는 차원 그래프가 될 수 있다.
클러스터 생성부(403)는 벡터 공간 상에서 클러스터링된 수집된 질의 중 어느 하나를 클러스터의 대표 질의로 추출하고, 클러스터 별로 추출된 대표 질의를 클러스터 저장부(404)에 저장한다.
예를 들어, 수집된 질의가 다음과 같다고 가정하자.
- 질의 A : 강남역 6번 출구 주변에 몇 명의 사람이 있는가?
- 질의 B : 강남역 XX 제과점 주변에 몇 명의 사람이 있는가?
- 질의 C : 강남역 주변에 몇 명의 사람이 있는가?
위 질의 A, B, C 중에서 「사람의 수」, 즉 「몇 명의 사람이 있는가?」 는 공통적인 부분이다. 따라서 특징 벡터는 「위치」, 즉 「강남역 6번 출구 주변에」, 「강남역 XX 제과점 주변에」, 「강남역 주변에 」등이 될 수 있다. 이러한 경우 특징 벡터의 종류는 「위치」와 관련된 1가지 종류이므로 벡터 공간은 1차원의 공간으로 정의될 수 있다.
따라서 클러스터 생성부(403)는 임의의 직선 위에 질의 A, B, C를 점으로 표시할 수 있다. 그리고 클러스터 생성부(403)는 직선 위의 점으로 표시된 질의 A, B, C를 k 개로 클러스터링한다. 여기서 k 값은 질의 통계량 및 시스템 성능 통계량에 따라 결정될 수 있다. 질의 통계량은 특정한 시간 대에 어떠한 질의가 많이 수신되었는지 또는 특정한 질의가 어떠한 시간 대에 많이 수신되었는지 등에 대한 정보가 될 수 있고, 시스템 성능 통계량은, 예컨대, 도 1의 서버(101)의 CPU 연산 능력, 메모리 크기와 같은 성능 정보가 될 수 있다. 이러한 통계량은 통계량 저장부(405)에 저장된다. 그리고 클러스터 생성부(403)는 클러스터 내에 존재하는 질의 중 어느 하나를 대표 질의로 선택한다.
클러스터 생성부(403)는 클러스터를 기본 질의 별 또는 정해진 시간 별로 생성한다. 기본 질의란 다수의 질의에서 공통적인 부분이 될 수 있고, 정해진 시간이란 일정한 시간 간격 또는 특정한 시간 대가 될 수 있다.
질의 수신부(405)는 사용자로부터 질의를 수신한다. 질의 수신부(405)에 의 해 수신된 질의는 선택적으로 질의 수집부(401)로 입력될 수도 있다.
질의 분류부(407)는 사용자로부터 수신된 질의가 어느 클러스터에 속하는지 결정한다. 다수의 아이템으로 구성된 다수의 클러스터가 존재할 때, 새롭게 유입된 아이템이 어떠한 클러스터에 속하는지를 판단하는 방법은 다양한 방법이 알려져 있다. 예를 들어, 질의 분류부(407)는 수신된 질의의 특징 벡터와 클러스터의 대표 질의의 특징 벡터 간의 유사도를 비교하여 수신된 질의의 클러스터 분류를 결정할 수 있으나, 반드시 이에 한정되는 것은 아니다.
질의 분류부(407)는 결정된 클러스터(즉 수신된 질의와 유사한 성질을 갖는 클러스터)의 대표 질의를 클러스터 저장부(404)에서 로드한다. 질의 분류부(407)는 수신된 질의를 로드된 대표 질의로 대체한다. 다시 말해, 수신된 질의가 대표 질의에 매핑되는 것으로 이해될 수 있다.
일 예로써, 질의 A, B, C가 하나의 클러스터로 묶이고 대표 질의로서 질의 C가 추출된 경우에 있어서, 「강남역 1번 출구 주변에 몇 명의 사람이 있는가?」라는 질의가 수신된 경우를 살펴보자.
수신된 질의는 질의 분류부(407)에 의해 질의 A, B, C가 속한 클러스터로 분류될 수 있다. 왜냐하면, 질의 A, B, C 및 수신된 질의 모두 공통적으로 강남역과 관련된 특징 벡터를 갖고 있기 때문이다. 따라서 질의 분류부(407)는 수신된 질의를 대표 질의인 질의 C로 대체할 수 있다.
질의 실행부(408)는 대표 질의를 실행한다. 위 예에서, 수신된 질의는 대표 질의인 질의 C로 매핑되었고, 질의 C는 「강남역 주변에 몇 명의 사람이 있는가?」 를 나타낸다. 즉, 사용자가 「강남역 1번 출구 주변」의 사람 수를 요청하더라도 질의 실행부(408)의 결과는 「강남역 주변」의 사람 수를 나타낸다. 그러나 앞서 설명하였듯이 동적으로 변하는 데이터 스트림에서 사용자는 대략적인 결과에 만족하므로 사용자가 요청한 질의를 대표 질의에 매핑시켜서 처리하는 것이 가능하다.
선택적으로, 질의 실행부(408)는 통계량 저장부(405)에 저장된 시스템 성능을 고려하여 질의 처리 비용이 시스템 성능을 초과하는 경우, 대표 질의를 실행하지 않고 수신된 질의를 그냥 실행할 수도 있다.
도 5는 본 발명의 일 실시예에 따른 클러스터 생성부를 도시한다.
도 5를 참조하면, 클러스터 생성부(500)는 특징 벡터 추출부(501), 차원 그래프 생성부(502), 클러스터링부(503), 대표 질의 추출부(504)를 포함한다.
특징 벡터 추출부(501)는 수집된 질의에서 특징 벡터를 추출한다. 특징 벡터는 질의문의 조건절 내의 문자열 또는 연산자에 기초하여 정의될 수 있다.
차원 그래프 생성부(502)는 특징 벡터에 따라 소정의 차원을 갖는 벡터 공간을 정의하고, 정의된 벡터 공간 상에 특징 벡터에 따라 수집된 질의를 표현한다. 벡터 공간의 차원은 특징 벡터의 종류에 따라 달라진다. 예를 들어, 특징 벡터가 위치에 관한 것이면, 벡터 공간은 1차원을 갖는다. 그리고 특징 벡터가 위치 외에 다른 조건 예컨대, 사람의 성별도 포함하는 경우, 벡터 공간은 2차원을 갖는다. 예를 들어, 수집된 질의가 다음과 같다고 가정하자.
- 질의 A : 강남역 6번 출구 주변에 몇 명의 사람이 있는가?
- 질의 B : 강남역 XX 제과점 주변에 몇 명의 사람이 있는가?
- 질의 C : 강남역 주변에 몇 명의 사람이 있는가?
질의 A, B, C에서 「몇 명의 사람이 있는가? 」는 공통적인 부분이므로, 「강남역 6번 출구 주변」, 「강남역 XX 제과점 주변」, 「강남역 주변」 등과 같은 위치가 특징 벡터가 될 수 있다. 특징 벡터의 종류는 위치와 관련된 한 가지 종류이므로 질의 A, B, C는 1차원 벡터 공간 상에서 특정한 점으로 표현될 수 있다.
다른 예로써, 수집된 질의가 다음과 같다고 가정하자.
- 질의 A1 : 강남역 6번 출구 주변에 몇 명의 남자 사람이 있는가?
- 질의 A2 : 강남역 6번 출구 주변에 몇 명의 여자 사람이 있는가?
- 질의 B1 : 강남역 XX 제과점 주변에 몇 명의 남자 사람이 있는가?
- 질의 B2 : 강남역 XX 제과점 주변에 몇 명의 여자 사람이 있는가?
- 질의 C1 : 강남역 주변에 몇 명의 남자 사람이 있는가?
- 질의 C2 : 강남역 주변에 몇 명의 여자 사람이 있는가?
질의 A1, A2, B1, B2, C1, C2에서, 「몇 명의 사람이 있는가? 」 부분은 공통적인 부분이므로 특징 벡터는 「위치」와 「성별」에 대응되는 부분이다. 따라서 이러한 경우 각각의 질의는 2차원 벡터 공간 상에서 특정한 점으로 표현될 수 있다. 예컨대, 2차원 공간에서 X축은 위치에 대응되고 Y축은 성별에 대응될 수 있다.
클러스터링부(503)는 차원 그래프 생성부(502)가 생성한 벡터 공간 상의 질의 표현을 이용하여 질의를 클러스터링한다. 클러스터링이란 비슷한 성질을 갖는 몇 개의 아이템을 하나의 그룹으로 묶어주는 것을 말한다. 여기서 비슷한 성질로 묶인 하나의 그룹을 하나의 클러스터라고 한다.
클러스터링부(503)가 몇 개의 클러스터를 생성할지는 질의 통계량 및 시스템 성능을 고려해서 결정한다. 클러스터가 많을수록 질의 결과의 정확도는 높아지지만 처리 로드 역시 올라간다. 데이터 스트림의 처리 결과는 앞서 설명했듯이 높은 정확도를 요구하지 아니하므로 처리 로드와 정확도를 적절히 조율해서 클러스터의 개수를 설정할 수 있다.
대표 질의 추출부(504)는 각각의 클러스터에서 대표 질의를 선택한다. 대표 질의는 각각의 클러스터의 중심(centroid)이 될 수 있으나 반드시 이에 한정하는 것은 아니며 중심 부근의 질의를 대표 질의로 선택해도 무방하다.
도 6은 본 발명의 일 실시예에 따른 질의 클러스터를 도시한다.
도 6을 참조하면, 수집된 질의가 1차원 벡터 공간에 표현되었다. 1차원 벡터 공간을 정의하기 위한 X축은, 예컨대, 「위치」에 관한 특징 벡터가 될 수 있다. 그리고 각각의 질의는 1차원 벡터 공간 상에서 질의 포인트로 표현된다.
예를 들어, 포인트 a는 「강남역 6번 출구 주변에 몇 명의 사람이 있는가? 」를 물어보는 질의에 대응될 수 있다. 포인트 b는 「강남역 XX 제과점 주변에 몇 명의 사람이 있는가? 」를 물어보는 질의에 대응될 수 있다. 포인트 c는 「강남역 주변에 몇 명의 사람이 있는가? 」를 물어보는 질의에 대응될 수 있다. 포인트 d는 「역삼역 1번 출구 주변에 몇 명의 사람이 있는가? 」를 물어보는 질의에 대응될 수 있다. 포인트 e는 「역삼역 OO치과 주변에 몇 명의 사람이 있는가? 」를 물어보는 질의에 대응될 수 있다.
포인트 간의 거리는 질의문의 조건절 내의 문자열 또는 연산자 간의 유사도에 따라 결정될 수 있다. 예컨대, 포인트 a와 b는 공통적으로 「강남역」이라는 문자열을 가지기 때문에 가깝게 위치할 수가 있다.
클러스터 1은 포인트 a, b, c를 포함하고 클러스터 2는 포인트 d, e를 포함할 수 있다. 여기서 몇 개의 클러스터를 생성하느냐에 따라 포인트 a, b, c, d, e가 모두 같은 클러스터에 속할 수도 있고 모두 다른 클러스터에 속할 수도 있다. 클러스터의 개수는 시스템 성능 및 질의 통계량을 고려하여 적절하게 조절한다.
클러스터 1의 대표 질의는 포인트 a에 대응되는 질의가 될 수 있고, 클러스터 2의 대표 질의는 포인트 d에 대응되는 질의가 될 수 있다. 대표 질의는 클러스터의 중심과 동일할 수도 있고 다를 수도 있다.
도 7은 본 발명의 다른 실시예에 따른 질의 클러스터를 도시한다.
도 7을 참조하면, 수집된 질의가 2차원 벡터 공간에 표현되었다. 2차원 벡터 공간을 정의하기 위한 X축은, 예컨대, 「통화 건수」에 관한 특징 벡터이고 Y축은 「회원 등급」에 관한 특징 벡터일 수 있다.
예를 들어, 포인트 x 는 「Gold 등급을 갖는 회원의 최근 100건의 평균 통화시간은 얼마인가? 」를 물어보는 질의가 될 수 있다. 여기서 「평균 통화시간」은 수집된 질의 중 공통되는 부분이고, 「Gold 등급」은 제 1 특징 벡터를, 「최근 100건」은 제 2 특징 벡터를 나타낼 수 있다.
마찬가지로, 포인트 y는 「Gold 등급을 갖는 회원의 최근 200건의 평균 통화시간은 얼마인가? 」를 물어보는 질의가 될 수 있고, 포인트 z는 「Silver 등급을 갖는 회원의 최근 200건의 평균 통화시간은 얼마인가? 」를 물어보는 질의가 될 수 있다.
각각의 포인트들은 도 6과 같이 유사한 성질을 갖는 포인트들끼리 동일한 클러스터로 묶인다. 그리고 클러스터 내의 어떤 포인트는 대표 질의로써 선택된다.
도 8은 본 발명의 일 실시예에 따른 질의 클러스터링 방법을 도시한다.
도 8을 참조하면, 질의 클러스터를 생성하기 위하여 먼저 질의를 수집한다(8001). 수집 대상이 되는 질의는 사용자가 요청할 것이라고 예측되는 질의들, 시스템의 베타 테스트 기간 동안 수신된 질의들, 또는 사용자로부터 실시간으로 수신되는 질의들이 될 수 있다.
그리고 수집된 질의의 특징 벡터를 추출한다(8002). 특징 벡터는 수집된 질의들 중에서 공통적인 부분을 제외한 나머지 부분, 예컨대, 조건절 내의 문자열 또는 연산자가 될 수 있다.
그리고 수집된 질의를 특징 벡터에 따라 벡터 공간 상에 표현한 차원 그래프를 생성한다(8003). 차원 그래프의 예는 도 6 및 도 7과 같다.
그리고 벡터 공간 상에서 수집된 질의를 클러스터링한다(8004). 클러스터링 알고리즘은 다양한 방법이 알려져 있으므로 그 중 어떠한 방법을 사용해도 무방하다. 그러나 어느 하나의 클러스터에는 유사한 성질을 갖는 질의들이 모여 있어야 의미가 있는 바, 질의의 성질은 특징 벡터에 기초하여 정하도록 한다.
그리고 각각의 클러스터에서 대표 질의를 추출한다(8005). 대표 질의는 클러스터의 중심(centroid)을 이용할 수도 있고 중심 부근의 질의를 이용할 수도 있 다.
도 8에서 설명한 질의 클러스터링 방법은 주어진 시간 별로 또는 기본 질의 별로 실행될 수 있다. 예를 들어, 일정한 시간 간격으로 클러스터가 생성될 수도 있으므로 어떠한 질의가 어떠한 클러스터에 속하게 되는지는 동적으로 변할 수 있다.
도 9는 본 발명의 일 실시예에 따른 질의 실행 방법을 도시한다.
도 9를 참조하면, 사용자로부터 수신된 질의를 실행하기 위하여, 먼저 수신된 질의를 분류한다(9001). 여기서 질의의 분류란 수신된 질의가 어떠한 클러스터에 속하는지를 결정하고 결정된 클러스터의 대표 질의를 선택해서 수신된 질의를 대표 질의로 대체하는 과정을 포함한다. 또한, 질의의 대체는 수신된 질의를 대표 질의로 매핑하는 것으로 이해될 수도 있다.
수신된 질의가 분류되면, 대표 질의를 이용해서 질의를 실행한다(9002). 수신된 질의와 대표 질의는 유사한 성질, 즉 유사한 특징 벡터를 공유하므로 수신된 질의의 실행 결과나 대표 질의의 실행 결과나 대략적인 측면에서 보면 사용자에게 모두 의미 있는 정보가 될 수 있다.
선택적으로, 도 9에서, 질의가 수신되었을 때, 수신된 질의를 처리하기 위한 연산 비용과 대표 질의를 처리하기 위한 연산 비용을 비교해서 오히려 대표 질의를 처리하는 경우에 연산 비용이 더 크면 질의를 분류하지 아니하고 직접 수신된 질의를 처리할 수도 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
도 1은 본 발명의 일 실시예에 따른 시스템 실행 환경을 도시한다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 데이터 스트림 처리 장치의 대략적인 구성을 도시한다.
도 4는 본 발명의 일 실시예에 따른 데이터 스트림 처리 장치의 구체적인 구성을 도시한다.
도 5는 본 발명의 일 실시예에 따른 클러스터 생성부의 구성을 도시한다.
도 6은 본 발명의 일 실시예에 따른 질의 클러스터를 도시한다.
도 7은 본 발명의 다른 실시예에 따른 질의 클러스터를 도시한다.
도 8은 본 발명의 일 실시예에 따른 클러스터 생성 방법을 도시한다.
도 9는 본 발명의 일 실시예에 따른 질의 실행 방법을 도시한다.

Claims (15)

  1. 수집된 질의에 대하여 적어도 1 이상의 클러스터를 생성하고, 생성된 클러스터의 대표 질의를 추출하는 클러스터 생성부; 및
    사용자로부터 질의가 수신되면, 수신된 질의가 어느 클러스터에 속하는지 결정하고, 수신된 질의를 결정된 클러스터의 대표 질의로 매핑하는 질의 분류부; 를 포함하고,
    상기 클러스터의 수는, 수집된 질의의 통계량 또는 데이터 스트림 처리 장치의 성능 통계량에 기초하여 결정되는 클러스터 질의를 이용한 데이터 스트림 처리 장치.
  2. 제 1 항에 있어서,
    상기 수신된 질의가 매핑된 대표 질의를 실행함으로써 상기 수신된 질의를 실행하는 질의 실행부; 를 더 포함하는 클러스터 질의를 이용한 데이터 스트림 처리 장치.
  3. 제 1 항에 있어서,
    상기 클러스터는, 상기 수집된 질의의 특징 벡터에 기초하여 생성되는, 클러스터 질의를 이용한 데이터 스트림 처리 장치.
  4. 제 3 항에 있어서,
    상기 특징 벡터는 상기 수집된 질의에 관한 질의문의 조건절 내의 문자열 또는 연산자에 기초하여 정의되는, 클러스터 질의를 이용한 데이터 스트림 처리 장 치.
  5. 제 4 항에 있어서,
    상기 클러스터 생성부는, 상기 특징 벡터에 따라 소정의 벡터 공간을 정의하고, 상기 수집된 질의를 상기 벡터 공간 상에서 클러스터링하는, 클러스터 질의를 이용한 데이터 스트림 처리 장치.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 클러스터는, 임의의 시간 별로 또는 기본 질의 별로 생성되는, 클러스터 질의를 이용한 데이터 스트림 처리 장치.
  8. 제 1 항에 있어서,
    상기 대표 질의는, 상기 클러스터의 중심을 포함하는, 클러스터 질의를 이용한 데이터 스트림 처리 장치.
  9. 수집된 질의에 대하여 적어도 1 이상의 클러스터를 생성하고, 생성된 클러스터의 대표 질의를 추출하는 단계; 및
    사용자로부터 질의가 수신되면, 수신된 질의가 어느 클러스터에 속하는지 결정하고, 수신된 질의를 결정된 클러스터의 대표 질의로 매핑하는 단계; 를 포함하고,
    상기 클러스터의 수는, 수집된 질의의 통계량 또는 데이터 스트림 처리 장치의 성능 통계량에 기초하여 결정되는 클러스터 질의를 이용한 데이터 스트림 처리 방법.
  10. 제 9 항에 있어서,
    상기 수신된 질의가 매핑된 대표 질의를 실행함으로써 상기 수신된 질의를 실행하는 단계; 를 더 포함하는 클러스터 질의를 이용한 데이터 스트림 처리 방법.
  11. 제 9 항에 있어서,
    상기 클러스터는, 상기 수집된 질의의 특징 벡터에 기초하여 생성되는, 클러스터 질의를 이용한 데이터 스트림 처리 방법.
  12. 제 11 항에 있어서,
    상기 특징 벡터는 상기 수집된 질의에 관한 질의문의 조건절 내의 문자열 또는 연산자에 기초하여 정의되는, 클러스터 질의를 이용한 데이터 스트림 처리 방법.
  13. 제 12 항에 있어서,
    상기 클러스터를 생성하는 단계는, 상기 특징 벡터에 따라 소정의 벡터 공간을 정의하고, 상기 수집된 질의를 상기 벡터 공간 상에서 클러스터링하는 과정을 포함하는, 클러스터 질의를 이용한 데이터 스트림 처리 방법.
  14. 제 9 항에 있어서,
    상기 클러스터는, 임의의 시간 별로 또는 기본 질의 별로 생성되는, 클러스터 질의를 이용한 데이터 스트림 처리 방법.
  15. 제 9 항에 있어서,
    상기 대표 질의는, 상기 클러스터의 중심을 포함하는, 클러스터 질의를 이용한 데이터 스트림 처리 방법.
KR1020090112078A 2009-11-19 2009-11-19 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법 KR101594577B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090112078A KR101594577B1 (ko) 2009-11-19 2009-11-19 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법
US12/815,752 US9009157B2 (en) 2009-11-19 2010-06-15 Apparatus and method for processing a data stream

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090112078A KR101594577B1 (ko) 2009-11-19 2009-11-19 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110055166A KR20110055166A (ko) 2011-05-25
KR101594577B1 true KR101594577B1 (ko) 2016-02-16

Family

ID=44012098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090112078A KR101594577B1 (ko) 2009-11-19 2009-11-19 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US9009157B2 (ko)
KR (1) KR101594577B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239363B2 (en) * 2010-06-11 2012-08-07 Microsoft Corporation Query context selection using graphical properties
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
US8326821B2 (en) * 2010-08-25 2012-12-04 International Business Machines Corporation Transforming relational queries into stream processing
US9665643B2 (en) 2011-12-30 2017-05-30 Microsoft Technology Licensing, Llc Knowledge-based entity detection and disambiguation
KR101951747B1 (ko) 2012-01-18 2019-02-26 삼성전자 주식회사 Dsms에서 사용자 정의 연산자의 스케쥴링 장치 및 방법
US9864817B2 (en) * 2012-01-28 2018-01-09 Microsoft Technology Licensing, Llc Determination of relationships between collections of disparate media types
US9740773B2 (en) * 2012-11-02 2017-08-22 Qualcomm Incorporated Context labels for data clusters
US9087082B2 (en) 2013-03-07 2015-07-21 International Business Machines Corporation Processing control in a streaming application
US9152689B2 (en) 2013-06-25 2015-10-06 International Business Machines Corporation Managing passthru connections on an operator graph
US9313110B2 (en) 2014-01-22 2016-04-12 International Business Machines Corporation Managing processing branches in an operator graph
US10191956B2 (en) 2014-08-19 2019-01-29 New England Complex Systems Institute, Inc. Event detection and characterization in big data streams
JP6710907B2 (ja) * 2015-07-16 2020-06-17 Tis株式会社 嗜好学習方法、嗜好学習プログラム、及び嗜好学習装置
CN108509532B (zh) * 2018-03-15 2020-09-29 浙江大华技术股份有限公司 一种应用于地图的聚点方法和装置
KR102215263B1 (ko) * 2019-04-09 2021-02-15 카페24 주식회사 Sql 쿼리의 유형을 분류하는 방법, 이상 상황 발생 여부 결정 방법 및 컴퓨팅 디바이스

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030006201A (ko) * 2001-07-12 2003-01-23 서정연 홈페이지 자동 검색을 위한 통합형 자연어 질의-응답시스템
KR20030013656A (ko) 2001-08-08 2003-02-15 한국전자통신연구원 동적 질의어 튜닝 시스템 및 그 방법
US7149732B2 (en) 2001-10-12 2006-12-12 Microsoft Corporation Clustering web queries
US20040249810A1 (en) * 2003-06-03 2004-12-09 Microsoft Corporation Small group sampling of data for use in query processing
US8666983B2 (en) * 2003-06-13 2014-03-04 Microsoft Corporation Architecture for generating responses to search engine queries
US7249120B2 (en) 2003-06-27 2007-07-24 Microsoft Corporation Method and apparatus for selecting candidate statistics to estimate the selectivity value of the conditional selectivity expression in optimize queries based on a set of predicates that each reference a set of relational database tables
US7689585B2 (en) 2004-04-15 2010-03-30 Microsoft Corporation Reinforced clustering of multi-type data objects for search term suggestion
US7620628B2 (en) 2004-12-06 2009-11-17 Yahoo! Inc. Search processing with automatic categorization of queries
US7359913B1 (en) 2005-05-13 2008-04-15 Ncr Corp. K-means clustering using structured query language (SQL) statements and sufficient statistics
KR100810257B1 (ko) 2006-02-07 2008-03-11 연세대학교 산학협력단 데이터스트림 관리 시스템에서 다수의 연속질의들에 표현된선택조건들의 효율적인 처리장치 및 처리방법
US7536396B2 (en) 2006-03-21 2009-05-19 At&T Intellectual Property Ii, L.P. Query-aware sampling of data streams
KR100835290B1 (ko) * 2006-11-07 2008-06-05 엔에이치엔(주) 문서 분류 시스템 및 문서 분류 방법
KR100888364B1 (ko) 2006-11-08 2009-03-11 한국전자통신연구원 다양한 센서 네트워크로의 통합 질의를 처리하기 위한 센서데이터 통합 처리 장치 및 그 방법
US8131722B2 (en) * 2006-11-20 2012-03-06 Ebay Inc. Search clustering
US20080133465A1 (en) 2006-12-04 2008-06-05 Electronics And Telecommunications Research Institute Continuous query processing apparatus and method using operation sharable among multiple queries on xml data stream
KR100872149B1 (ko) 2006-12-04 2008-12-08 부산대학교 산학협력단 연속 질의 색인을 이용한 rfid 미들웨어 장치 및 방법
US7840556B1 (en) * 2007-07-31 2010-11-23 Hewlett-Packard Development Company, L.P. Managing performance of a database query
US8055653B2 (en) 2007-08-09 2011-11-08 International Business Machines Corporation Processing overlapping continuous queries
US8296316B2 (en) 2007-10-17 2012-10-23 Oracle International Corporation Dynamically sharing a subtree of operators in a data stream management system operating on existing queries
US7996388B2 (en) 2007-10-17 2011-08-09 Oracle International Corporation Adding new continuous queries to a data stream management system operating on existing queries
US7739265B2 (en) 2007-10-18 2010-06-15 Oracle International Corporation Deleting a continuous query from a data stream management system continuing to operate on other queries
US20090192981A1 (en) 2008-01-29 2009-07-30 Olga Papaemmanouil Query Deployment Plan For A Distributed Shared Stream Processing System
US8291006B2 (en) * 2008-05-30 2012-10-16 International Business Machines Corporation Method for generating a distributed stream processing application

Also Published As

Publication number Publication date
US9009157B2 (en) 2015-04-14
KR20110055166A (ko) 2011-05-25
US20110119270A1 (en) 2011-05-19

Similar Documents

Publication Publication Date Title
KR101594577B1 (ko) 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법
CN111614690B (zh) 一种异常行为检测方法及装置
KR101939554B1 (ko) 일시적 거래 한도 결정
JinHuaXu et al. Web user clustering analysis based on KMeans algorithm
JP5896382B2 (ja) ノンパラメトリック、多次元、空間的および一時的な人間の挙動または広範な技術的観測値を処理するネットワークサーバー装置構成およびそれに関連する方法
Mehdiyev et al. Determination of rule patterns in complex event processing using machine learning techniques
KR102020551B1 (ko) 모바일 컨텍스트 정보 기반의 음식점 추천방법 및 그를 위한 장치
JP5805169B2 (ja) 行動パターン分析装置および行動パターン分析方法
CN106682686A (zh) 一种基于手机上网行为的用户性别预测方法
JP2013536488A5 (ko)
CN109033281B (zh) 一种知识资源库的智能推送系统
CN107908616B (zh) 预测趋势词的方法和装置
US20190026761A1 (en) Method and system for automated detection, classification and prediction of multi-scale, multidimensional trends
CN115688760B (zh) 一种智能化导诊方法、装置、设备及存储介质
Minegishi et al. Detection of fraud use of credit card by extended VFDT
CN113051324A (zh) 基于大数据的用户画像构建方法、装置及存储介质
CN108537291A (zh) 一种样本分类方法和装置
CN115204881A (zh) 一种数据处理方法、装置、设备及存储介质
Wang et al. A Comparative Study on Contract Recommendation Model: Using Macao Mobile Phone Datasets
CN113516302B (zh) 业务风险分析方法、装置、设备及存储介质
CN116701935A (zh) 敏感度预测模型训练方法、敏感信息处理方法及装置
KR20160093489A (ko) 컨텐츠 수집, 추천 시스템 및 방법
CN112765022B (zh) 一种基于数据流的Webshell静态检测方法及电子设备
CN110677269A (zh) 通信用户关系的确定方法、装置和计算机可读存储介质
Nadaf et al. Data mining in telecommunication

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

Year of fee payment: 5