D030

less than 1 minute read

Stream Model

스트림 모델은 입력 데이터(튜플)이 매우 빨리, 하나 이상의 포트로 들어와
전체 스트림을 저장하지 못하는 상황을 가정합니다.

기존 DBMS 와 같은 경우는 입력을 시스템 내에 있어 제어할 수 있지만,
Data-Stream Management System 은 입력의 속도나 양을 제어할 수 없기 때문에 기존의 데이터 처리와는 다른 방식을 사용해야합니다.

스트림 모델에서는 다음과 같은 처리 방식을 사용할 있습니다.
첫번째 방식은 최근에 입력받은 데이터의 slinding window 를 유지하는 것이고,
두번째 방식은 스트림을 요약(샘플)하여 보유하고 있는 것입니다.

Two Forms of Query

스트림 모델에서는 두가지 유형의 쿼리를 구분하여 유형별 처리 전략을 세웁니다.

  1. Ad-hoc queries
    스트림의 현재 상태에 대해 한번 물어보는 쿼리입니다.
    스트림 전체에 대한 정보를 갖고 있어야 하므로, 스트림의 일부를 적절하게 유지하거나 요약 정보를 유지하고 있어야합니다.
    예를들어, 스트림 전체에서 최대 값을 찾는 것 입니다.
  2. Standing queries
    모든 시간에 대해 스트림에 대해 물어보는 쿼리입니다.
    영구적으로(permantly) 실행이 되는 쿼리입니다.
    예를 들어, 스트림에서 나타나는 새로운 최대값들을 출력하는 것 입니다.

Sliding Window

Ad-hoc 쿼리에서 사용하기 적합한 모델입니다.
최근 n개의 데이터나 t 시간의 단위로 일부 데이터를 저장해 놓는 것 입니다.
윈도우가 움직이면서 새로 입력받은 데이터를 저장하고
가장 오래된 데이터는 삭제하면서 윈도우를 유지합니다.

이번 포스팅에서는 스트림 모델의 기본적인 내용을 다뤘습니다.
이후 포스팅 부터는 스트림 처리 문제들을 하나씩 다뤄보겠습니다.

Updated:

Comments