본 논문에서는 다변량 데이터 스트림 대상의 샘플링 및 필터링 문제를 다룬다. 데이터 스트림은 지속적으로 끊임없이 생성되므로, 이러한 데이터 스트림 전체를 수집하고 분석하는 것은 매우 비효율적이다. 그러므로, 데이터 스트림을 대표할 수 있는 일부 데이터를 샘플링하거나 불필요한 데이터를 걸러내는 필터링 과정이 필요하다. 또한, 대용량으로 빠르게 생성되는 데이터 스트림을 단일 서버에서 처리하는 것은 한계가 있다. 아파치 스톰(Apache Storm)은 대용량 데이터 스트림 처리를 위한 실시간 분산 병렬 프레임워크이다. 그런데, 스톰은 입력 데이터의 구조나 처리 알고리즘의 변경 시 작업 전체를 중단하고, 코드를 수정하고, 재배포하고, 재시작해야만 한다. 본 논문에서는 이와 같이 기존 분산 환경이나 스톰에서 샘플링 및 필터링 기능을 개발했을 때의 문제점을 도출하고, 이를 해결하기 위한 요구사항을 정의한다. 또한, 데이터 스트림의 입력, 처리, 출력 모듈의 조합으로 구성되는 플랜(plan) 모델을 제시한다. 플랜 매니저는(plan manager)는 스톰, 카프카, 그리고 데이터베이스를 하나의 시스템처럼 운용하며, 플랜을 통해 데이터 스트림에 대한 샘플링과 필터링을 동적으로 적용할 수 있는 동적 플랫폼이다. 특히, 웹 클라이언트를 통해 플랜을 시각적으로 생성, 실행, 모니터링할 수 있는 특징을 가진다. 본 논문에서는 제안하는 플랜 매니저에 대한 설계, 구현, 실험 결과를 차례로 제시하여 그 유용성을 보인다.
In this thesis, we deal with sampling and filtering problems of multivariate data streams. Since data streams are being generated constantly and continuously, it is not practical to collect and process the entire streams of big data. Thus, there are many demands for sampling methods for extracting good samples and/or filtering methods for extracting necessary data from the entire data stream. In addition, there is a critical limitation in processing big data streams in a single server. Apache Storm is a real-time distributed parallel processing framework for efficiently processing large data streams. However, Storm needs to modify the source code, redistribute the code, and restart the process when changing the input data structures or the processing algorithms. In this paper, we describe the problem of sampling and filtering techniques in the existing distributed environment, especially in Storm, and define the requirements to solve the problem. We then design a novel plan model consisting of the input, processing, and output modules in the data stream. Plan manager is a dynamic platform that manages Storm, Kafka, and the database in a integrated framework, and it can dynamically apply sampling and filtering techniques to rapid data streams through the plan. In addition, the plan manager has a useful feature that can visually create, execute, and monitor the plan through the Web client. In this paper, we present the design, implementation, and experimental results of the proposed plan manager in order to demonstrate its usefulness and effectiveness.
목 차1 서 론 12 관련 연구 42.1 샘플링 및 필터링 42.2 분산 컴퓨팅 오픈 소스 52.2.1 아파치 스톰(Apache Storm) 52.2.2 아파치 카프카(Apache Kafka) 72.2.3 스트림플로우(StreamFlow) 83 문제 및 요구사항 분석 104 플랜 매니저(Plan Manager) 설계 124.1 플랜(Plan) 134.2 웹 클라이언트(Web Client) 144.3 RPC 인터페이스 194.4 플랜 핸들러(Plan Handler) 194.5 소스 핸들러(Source Handler) 204.6 데스티네이션 핸들러(Destination Handler) 215 플랜 매니저 구현 및 평가 225.1 실험 환경 225.2 웹 클라이언트 동작 절차 235.3 샘플링 및 필터링 실험 325.3.1 계통 샘플링 325.3.2 해시 샘플링 335.3.3 질의 필터링 345.3.4 칼만 필터링 356 결 론 377 참고 문헌 38