전송된 정보를 수집하거나 정보를 전송할 때 사용되는 디지털 방식으로 암호화 된 일관된 신호의 흐름
짧은 대기 시간 처리를 목표로 계속해서 증분하는 방식으로 내보내지는 대용량 데이터
특징
- 시간순 중요성: 데이터 스트림의 각 요소에는 타임 스탬프가 포함된다.
- 지속적 흐름: 데이터 스트림에는 시작도 끝도 없다. 요구되는 만큼 데이터를 끊임없이 지속적으로 수집한다.
- 고유성: 정확한 실시간 데이터 처리가 중요하다.
- 비균질성: 데이터 변형을 처리할 수 있는 기능이 있어야 한다.
- 불완전성: 소스의 일시적인 오류는 스트리밍된 데이터 내의 요소에 손상 또는 누락을 유발할 수 있다.
사용되는 이유(중요한 이유)
- 무한한 데이터 볼륨:
스트림 소스로부터 생성된 데이터 볼륨은 굉장히 크기 마련이고, 이에 따라 스트리밍 데이터의 무결성, 구조, 속도를 규제하기 위한 실시간 분석이 까다로운 과제가 된다.
- 고급 데이터 처리 시스템:
스트리밍 데이터 알키텍처는 클라우드 기술을 사용하여 스트리밍 데이터를 필요한 만큼 소비,강화,분석 및 영구저장 한다.
사용 사례
- 데이터 분석
- IoT 애플리케이션
- 금융 분석
- 실시간 추천
- 서비스 보장
- 미디어 및 게임
- 위험 관리
스트리밍 처리 시스템은 새로운 동적 데이터가 지속적으로 생성되는 시나리오 대부분에서 유용하다. 대부분의 산업 부문과 빅 데이터 사용 사례가 이에 해당한다.
일반적으로 기업은 최소-최대 컴퓨팅 롤링 같은 기본적인 처리와 시스템 로그 수집 등 간단한 애플리케이션으로 시작한다. 그리고 이러한 애플리케이션이 좀 더 정교한 거의 실시간 처리로 진화하게 된다.
배치 데이터와 스트리밍 데이터의 차이점
배치 처리: 컴퓨터가 주기적으로 대량의 반복적인 데이터 작업을 완료하기 위해 사용하는 방식
배치 처리 | 스트림 처리 | |
---|---|---|
데이터 범위 | 데이터 세트의 모든 또는 대부분 데이터를 쿼리하거나 처리. | 롤링 타임 윈도우 내 데이터 또는 가장 최신 데이터 레코드의 데이터를 쿼리하거나 처리. |
데이터 크기 | 대규모 데이터 배치. | 일부 레코드로 구성된 마이크로 배치 또는 개별 레코드. |
성능 | 지연 시간이 몇 분에서 몇 시간. | 몇 초 또는 몇 밀리초의 지연 시간이 필요. |
분석 | 복잡한 분석. | 간단한 응답 기능, 수집 및 롤링 지표. |
배치 처리 → 포함되는 모든 데이터로부터 컴퓨팅 가능한 결과를 도출하고 빅 데이터 세트를 심층적으로 분석할 수 있게 해준다.
스트림 처리 → 데이터 시퀀스를 수집하고, 수신되는 각 데이터 레코드에 대한 응답으로 지표, 보고서 및 요약 통계를 증분식으로 업데이트 한다. (실시간 분석 및 응답 기능)
'Backend' 카테고리의 다른 글
MySQL vs PostgreSQL데이터베이스의 성능 및 확장성 비교 (4) | 2024.10.31 |
---|---|
비동기 처리를 지원하는 모델(스레드 기반/이벤트 루프 기반) (0) | 2024.06.23 |
Presigned Url 으로 S3에 이미지 업로드하기 (Kotlin) (0) | 2024.04.19 |
Kotlin+Spring Kinesis 비동기 처리 EFO(Coroutine) (0) | 2024.03.20 |