반응형
스트림이란 용어가 리액티브와 같이 참 많은 곳에서 사용이 된다.
데이터 스트림이란 용어도, 스트림이란 용어도 있는데 간략하게 알아보자.
데이터 스트림(Data stream)
일단 데이터 스트림이란 무엇일까?
다음과 같이 정의할 수 있다.
- 데이터가 열을 지어 흐르는 것처럼 입력되는 것
- 정해진 포맷을 사용하여 문자 또는 바이트 형식으로 송수신되는 데이터 항목의 연속적인 흐름
- 데이터의 양이 한정되어 있지 않고 지속적으로 생성되고, 시간에 따라 값이 변하는 데이터의 흐름
- 연속적으로 흘러들어오는 데이터 (예 : 바이트 배열)
- 예) 주식 가격, 사용자 클릭, IoT, 게임 데이터, 사용자 행동 정보, 채팅
실시간 처리(Real-time processing)
- 대량의 데이터를 빠르게 처리하기 위한 데이터 처리의 목표 또는 제약 사항
- 실시간은 마감시각(deadline)이 있고, 마감시각 내에 주어진 연산을 완료하지 못하면 실패로 처리
- 마감시각을 놓쳤을 때의 처리 결과에 따라 Hard/Firm/Soft real-time으로 구분
- 실시간 처리는 목표로 하는 시간 제약이 주어지고 그에 따른 실패 수준이 정해짐
스트림 처리(Stream processing)
- 대량의 데이터를 빠르게 처리하기 위한 데이터 처리 방식
- 범위가 한정되지 않고(unbounded) 끊임 없이 흘러가는(stream) 데이터에 대한 처리 방식
- 잘 설계된 스트림 처리는 배치 처리를 포함한다고 할 수 있음
- 스트림 처리가 끊임없이 흘러가는 데이터를 처리하다 보니 데이터 처리 결과를 빠르게 받아볼 수 있고 실시간 처리라고 불릴 수 있음
마이크로 배치(micro-batch)
- 작은 배치 처리를 무한히 하는 방식
- 스트림 처리에 포함됨
배치 처리(batch processing)
- 한정된(bounded) 데이터의 처리를 배치 처리(batch processing)
- unbounded 스트림 처리의 반대
Reference
[1] Spark streaming으로 실시간 처리 (http://readme.skplanet.com/?p=12465)
[2] http://radar.oreilly.com/2015/08/the-world-beyond-batch-streaming-101.html
반응형
'Devlopment > Reactive, Concurrency' 카테고리의 다른 글
ReactiveX (0) | 2017.01.17 |
---|---|
리액티브란 무엇인가? (What's in a Name : Reactive) (0) | 2017.01.10 |
리액티브 프로그래밍 대 리액티브 시스템 (Reactive Programming vs Reactive Systems) (0) | 2017.01.09 |
리액티브 스트림(Reactive Streams) (0) | 2017.01.04 |
동시성 관련 분류 (0) | 2016.12.27 |
vert.x VS Akka (0) | 2016.11.22 |
리액티브 프로그래밍이란 무엇입니까? What is reactive programming? (0) | 2016.11.21 |
1. 소프트웨어 패러다임 - 성능 그리고 동시성 (0) | 2016.11.17 |
동시성(Concurrency) vs 병렬성(Parallelism) (0) | 2016.11.17 |
synchronous, asynchronous, blocking, non-blocking (0) | 2016.10.31 |